pytafast 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pytafast-0.1.0/.gitignore +12 -0
- pytafast-0.1.0/.gitmodules +6 -0
- pytafast-0.1.0/.python-version +1 -0
- pytafast-0.1.0/CMakeLists.txt +22 -0
- pytafast-0.1.0/GEMINI.md +70 -0
- pytafast-0.1.0/PKG-INFO +10 -0
- pytafast-0.1.0/README.md +0 -0
- pytafast-0.1.0/pyproject.toml +58 -0
- pytafast-0.1.0/src/pytafast/__init__.py +197 -0
- pytafast-0.1.0/src/pytafast/aio.py +35 -0
- pytafast-0.1.0/src/pytafast_ext.cpp +480 -0
- pytafast-0.1.0/tests/test_async_leak.py +53 -0
- pytafast-0.1.0/tests/test_benchmark.py +24 -0
- pytafast-0.1.0/tests/test_ta_lib.py +169 -0
- pytafast-0.1.0/third_party/nanobind/.github/ISSUE_TEMPLATE/all-other.yml +23 -0
- pytafast-0.1.0/third_party/nanobind/.github/ISSUE_TEMPLATE/bug-report.yml +33 -0
- pytafast-0.1.0/third_party/nanobind/.github/workflows/ci.yml +286 -0
- pytafast-0.1.0/third_party/nanobind/.github/workflows/nvcc-win.yml +45 -0
- pytafast-0.1.0/third_party/nanobind/.gitignore +43 -0
- pytafast-0.1.0/third_party/nanobind/.gitmodules +3 -0
- pytafast-0.1.0/third_party/nanobind/.readthedocs.yaml +18 -0
- pytafast-0.1.0/third_party/nanobind/CMakeLists.txt +160 -0
- pytafast-0.1.0/third_party/nanobind/LICENSE +26 -0
- pytafast-0.1.0/third_party/nanobind/README.md +117 -0
- pytafast-0.1.0/third_party/nanobind/cmake/collect-symbols-pypy.py +29 -0
- pytafast-0.1.0/third_party/nanobind/cmake/collect-symbols.py +42 -0
- pytafast-0.1.0/third_party/nanobind/cmake/darwin-ld-cpython.sym +991 -0
- pytafast-0.1.0/third_party/nanobind/cmake/darwin-ld-pypy.sym +1135 -0
- pytafast-0.1.0/third_party/nanobind/cmake/darwin-python-path.py +15 -0
- pytafast-0.1.0/third_party/nanobind/cmake/nanobind-config.cmake +739 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/.clang-format +1 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/.codecov.yml +5 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/.git +1 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/.github/workflows/ci.yml +136 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/CMakeLists.txt +87 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/LICENSE +21 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/README.md +521 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/cmake/tsl-robin-mapConfig.cmake.in +9 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/doxygen.conf +2483 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/include/tsl/robin_growth_policy.h +415 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/include/tsl/robin_hash.h +1589 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/include/tsl/robin_map.h +815 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/include/tsl/robin_set.h +668 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/CMakeLists.txt +26 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/custom_allocator_tests.cpp +138 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/main.cpp +26 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/policy_tests.cpp +97 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/robin_map_tests.cpp +1462 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/robin_set_tests.cpp +174 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tests/utils.h +443 -0
- pytafast-0.1.0/third_party/nanobind/ext/robin_map/tsl-robin-map.natvis +78 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/eigen/dense.h +481 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/eigen/sparse.h +290 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/eval.h +61 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/intrusive/counter.h +261 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/intrusive/counter.inl +148 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/intrusive/ref.h +153 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/make_iterator.h +160 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nanobind.h +66 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_accessor.h +258 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_attr.h +445 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_call.h +152 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_cast.h +750 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_class.h +864 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_defs.h +207 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_descr.h +155 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_enums.h +26 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_error.h +152 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_func.h +436 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_lib.h +584 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_misc.h +125 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_python.h +61 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_traits.h +226 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_tuple.h +80 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/nb_types.h +1012 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/ndarray.h +597 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/operators.h +149 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/array.h +22 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/bind_map.h +181 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/bind_vector.h +225 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/chrono.h +229 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/complex.h +54 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/chrono.h +299 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/nb_array.h +67 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/nb_dict.h +95 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/nb_list.h +83 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/nb_optional.h +49 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/nb_set.h +81 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/detail/traits.h +92 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/filesystem.h +89 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/function.h +95 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/list.h +22 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/map.h +23 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/optional.h +30 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/pair.h +92 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/set.h +24 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/shared_ptr.h +137 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/string.h +39 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/string_view.h +39 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/tuple.h +109 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/unique_ptr.h +178 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/unordered_map.h +23 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/unordered_set.h +24 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/variant.h +113 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/vector.h +22 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/stl/wstring.h +39 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/trampoline.h +76 -0
- pytafast-0.1.0/third_party/nanobind/include/nanobind/typing.h +36 -0
- pytafast-0.1.0/third_party/nanobind/pyproject.toml +58 -0
- pytafast-0.1.0/third_party/nanobind/src/__init__.py +26 -0
- pytafast-0.1.0/third_party/nanobind/src/__main__.py +36 -0
- pytafast-0.1.0/third_party/nanobind/src/buffer.h +166 -0
- pytafast-0.1.0/third_party/nanobind/src/common.cpp +1295 -0
- pytafast-0.1.0/third_party/nanobind/src/error.cpp +314 -0
- pytafast-0.1.0/third_party/nanobind/src/hash.h +33 -0
- pytafast-0.1.0/third_party/nanobind/src/implicit.cpp +75 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_abi.h +102 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_combined.cpp +87 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_enum.cpp +304 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_ft.cpp +56 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_ft.h +39 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_func.cpp +1586 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_internals.cpp +590 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_internals.h +577 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_ndarray.cpp +1051 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_static_property.cpp +76 -0
- pytafast-0.1.0/third_party/nanobind/src/nb_type.cpp +2271 -0
- pytafast-0.1.0/third_party/nanobind/src/stubgen.py +1553 -0
- pytafast-0.1.0/third_party/nanobind/src/trampoline.cpp +188 -0
- pytafast-0.1.0/third_party/nanobind/src/version.py +131 -0
- pytafast-0.1.0/third_party/nanobind/tests/CMakeLists.txt +231 -0
- pytafast-0.1.0/third_party/nanobind/tests/common.py +42 -0
- pytafast-0.1.0/third_party/nanobind/tests/conftest.py +6 -0
- pytafast-0.1.0/third_party/nanobind/tests/inter_module.cpp +13 -0
- pytafast-0.1.0/third_party/nanobind/tests/inter_module.h +15 -0
- pytafast-0.1.0/third_party/nanobind/tests/object_py.h +28 -0
- pytafast-0.1.0/third_party/nanobind/tests/pattern_file.nb +25 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_recursive_stub_test/__init__.py +3 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_recursive_stub_test/__init__.pyi.ref +4 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_recursive_stub_test/bar.py +1 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_recursive_stub_test/bar.pyi.ref +3 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_stub_test.py +69 -0
- pytafast-0.1.0/third_party/nanobind/tests/py_stub_test.pyi.ref +50 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_accessor.cpp +39 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_accessor.py +41 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_callbacks.cpp +138 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_callbacks.py +58 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_chrono.cpp +93 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_chrono.py +340 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_classes.cpp +815 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_classes.h +21 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_classes.py +994 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_classes_ext.pyi.ref +399 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_classes_extra.cpp +22 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_eigen.cpp +281 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_eigen.py +485 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_enum.cpp +99 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_enum.py +204 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_enum_ext.pyi.ref +131 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_eval.cpp +87 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_eval.py +44 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_exception.cpp +62 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_exception.py +104 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_functions.cpp +526 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_functions.py +792 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_functions_ext.pyi.ref +269 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_holders.cpp +261 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_holders.py +449 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_inter_module.py +89 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_inter_module_1.cpp +8 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_inter_module_2.cpp +10 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_intrusive.cpp +66 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_intrusive.py +58 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_intrusive_impl.cpp +1 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_issue.cpp +68 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_issue.py +37 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_jax.cpp +25 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_jax.py +97 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_jax_ext.pyi.ref +4 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_make_iterator.cpp +102 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_make_iterator.py +48 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_make_iterator_ext.pyi.ref +33 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_ndarray.cpp +557 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_ndarray.py +1036 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_ndarray_ext.pyi.ref +215 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_specialization.py +103 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl.cpp +537 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl.py +881 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl_bind_map.cpp +95 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl_bind_map.py +219 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl_bind_vector.cpp +56 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl_bind_vector.py +188 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stl_ext.pyi.ref +276 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_stubs.py +74 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_tensorflow.cpp +27 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_tensorflow.py +97 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_tensorflow_ext.pyi.ref +4 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_thread.cpp +93 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_thread.py +118 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_typing.cpp +124 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_typing.py +12 -0
- pytafast-0.1.0/third_party/nanobind/tests/test_typing_ext.pyi.ref +80 -0
- pytafast-0.1.0/third_party/ta-lib/.editorconfig +14 -0
- pytafast-0.1.0/third_party/ta-lib/.github/actions/diffs/action.yml +34 -0
- pytafast-0.1.0/third_party/ta-lib/.github/workflows/dev-nightly-tests.yml +114 -0
- pytafast-0.1.0/third_party/ta-lib/.github/workflows/docs.yml +35 -0
- pytafast-0.1.0/third_party/ta-lib/.github/workflows/main-nightly-tests.yml +92 -0
- pytafast-0.1.0/third_party/ta-lib/.github/workflows/release-step-1.yml +214 -0
- pytafast-0.1.0/third_party/ta-lib/.github/workflows/release-step-2.yml +87 -0
- pytafast-0.1.0/third_party/ta-lib/.gitignore +92 -0
- pytafast-0.1.0/third_party/ta-lib/.vscode/settings.json +9 -0
- pytafast-0.1.0/third_party/ta-lib/CHANGELOG.md +65 -0
- pytafast-0.1.0/third_party/ta-lib/CLAUDE.md +52 -0
- pytafast-0.1.0/third_party/ta-lib/CMakeLists.txt +711 -0
- pytafast-0.1.0/third_party/ta-lib/CNAME +1 -0
- pytafast-0.1.0/third_party/ta-lib/LICENSE +26 -0
- pytafast-0.1.0/third_party/ta-lib/Makefile.am +22 -0
- pytafast-0.1.0/third_party/ta-lib/README-DEVS.md +86 -0
- pytafast-0.1.0/third_party/ta-lib/README.md +11 -0
- pytafast-0.1.0/third_party/ta-lib/RUST_CONVERSION_PLAN.md +93 -0
- pytafast-0.1.0/third_party/ta-lib/VERSION +1 -0
- pytafast-0.1.0/third_party/ta-lib/autogen.sh +16 -0
- pytafast-0.1.0/third_party/ta-lib/bin/.cvsignore +7 -0
- pytafast-0.1.0/third_party/ta-lib/bin/HOLDER +2 -0
- pytafast-0.1.0/third_party/ta-lib/cmake/toolchain-linux-arm64.cmake +4 -0
- pytafast-0.1.0/third_party/ta-lib/cmake/toolchain-linux-i386.cmake +4 -0
- pytafast-0.1.0/third_party/ta-lib/cmake/toolchain-linux-x86_64.cmake +4 -0
- pytafast-0.1.0/third_party/ta-lib/configure.ac +51 -0
- pytafast-0.1.0/third_party/ta-lib/include/Makefile.am +11 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_abstract.h +553 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_common.h +160 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_config.h +36 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_config.h.cmake +36 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_defs.h +408 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_func.h +5346 -0
- pytafast-0.1.0/third_party/ta-lib/include/ta_libc.h +51 -0
- pytafast-0.1.0/third_party/ta-lib/install +74 -0
- pytafast-0.1.0/third_party/ta-lib/lib/HOLDER +2 -0
- pytafast-0.1.0/third_party/ta-lib/m4/HOLDER +2 -0
- pytafast-0.1.0/third_party/ta-lib/mkdocs.yml +83 -0
- pytafast-0.1.0/third_party/ta-lib/rust/Cargo.lock +606 -0
- pytafast-0.1.0/third_party/ta-lib/rust/Cargo.toml +35 -0
- pytafast-0.1.0/third_party/ta-lib/rust/src/lib.rs +13 -0
- pytafast-0.1.0/third_party/ta-lib/rust/src/ta_func/mod.rs +57 -0
- pytafast-0.1.0/third_party/ta-lib/rust/src/ta_func/mult.rs +103 -0
- pytafast-0.1.0/third_party/ta-lib/rust/tests/mult_test.rs +177 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/README.md +3 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/install_tests/__init__.py +1 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/install_tests/python.py +73 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/merge-ta-lib-temp.py +73 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/merge.py +88 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/package.py +1001 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/post-release-brew.py +254 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/post-release-docs.py +88 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/pre-release-checks.py +138 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/sync.py +155 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/test-dist.py +68 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/__init__.py +1 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/common.py +485 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/files.py +255 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/package_digest.py +239 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/versions.py +604 -0
- pytafast-0.1.0/third_party/ta-lib/scripts/utilities/windows.py +99 -0
- pytafast-0.1.0/third_party/ta-lib/src/Makefile.am +12 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/Makefile.am +48 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/frames/ta_frame.c +3469 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/frames/ta_frame.h +1508 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_abstract.c +1313 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_def_ui.c +573 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_def_ui.h +293 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_frame_priv.h +128 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_func_api.c +9159 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_group_idx.c +453 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/ta_java_defs.h +366 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_a.c +441 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_b.c +196 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_c.c +1885 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_d.c +129 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_e.c +102 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_f.c +76 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_g.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_h.c +246 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_i.c +99 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_j.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_k.c +98 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_l.c +188 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_m.c +739 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_n.c +127 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_o.c +96 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_p.c +186 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_q.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_r.c +206 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_s.c +630 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_t.c +277 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_u.c +142 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_v.c +98 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_w.c +149 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_x.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_y.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/tables/table_z.c +72 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/CoreAnnotated.java.template +69 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/Makefile.am.template +11 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/excel_glue.c.template +45 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_frame.c.template +63 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_frame.h.template +60 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_func.h.template +66 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_func.swg.template +45 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_func_api.c.template +55 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_func_mod.rs.template +57 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_group_idx.c.template +56 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_java_defs.h.template +45 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_retcode.c.template +92 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_x.c.template +84 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_abstract/templates/ta_x.rs.template +55 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/Makefile.am +13 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_global.c +178 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_global.h +119 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_magic_nb.h +31 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_memory.h +362 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_pragma.h +87 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_retcode.c +109 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_retcode.csv +18 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_common/ta_version.c +97 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/Makefile.am +171 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ACCBANDS.c +568 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ACOS.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_AD.c +370 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ADD.c +306 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ADOSC.c +545 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ADX.c +844 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ADXR.c +433 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_APO.c +674 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_AROON.c +511 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_AROONOSC.c +514 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ASIN.c +293 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ATAN.c +295 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ATR.c +512 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_AVGDEV.c +378 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_AVGPRICE.c +334 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_BBANDS.c +722 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_BETA.c +545 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_BOP.c +335 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CCI.c +475 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL2CROWS.c +412 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3BLACKCROWS.c +440 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3INSIDE.c +431 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3LINESTRIKE.c +453 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3OUTSIDE.c +394 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3STARSINSOUTH.c +508 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDL3WHITESOLDIERS.c +532 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLABANDONEDBABY.c +519 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLADVANCEBLOCK.c +604 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLBELTHOLD.c +432 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLBREAKAWAY.c +439 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLCLOSINGMARUBOZU.c +433 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLCONCEALBABYSWALL.c +442 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLCOUNTERATTACK.c +435 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLDARKCLOUDCOVER.c +444 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLDOJI.c +393 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLDOJISTAR.c +425 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLDRAGONFLYDOJI.c +422 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLENGULFING.c +404 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLEVENINGDOJISTAR.c +487 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLEVENINGSTAR.c +473 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLGAPSIDESIDEWHITE.c +441 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLGRAVESTONEDOJI.c +421 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHAMMER.c +470 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHANGINGMAN.c +470 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHARAMI.c +444 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHARAMICROSS.c +439 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHIGHWAVE.c +415 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHIKKAKE.c +455 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHIKKAKEMOD.c +513 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLHOMINGPIGEON.c +427 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLIDENTICAL3CROWS.c +476 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLINNECK.c +430 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLINVERTEDHAMMER.c +446 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLKICKING.c +463 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLKICKINGBYLENGTH.c +464 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLLADDERBOTTOM.c +418 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLLONGLEGGEDDOJI.c +421 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLLONGLINE.c +415 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLMARUBOZU.c +416 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLMATCHINGLOW.c +402 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLMATHOLD.c +516 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLMORNINGDOJISTAR.c +485 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLMORNINGSTAR.c +471 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLONNECK.c +429 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLPIERCING.c +420 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLRICKSHAWMAN.c +454 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLRISEFALL3METHODS.c +480 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSEPARATINGLINES.c +462 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSHOOTINGSTAR.c +446 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSHORTLINE.c +415 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSPINNINGTOP.c +399 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSTALLEDPATTERN.c +512 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLSTICKSANDWICH.c +408 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLTAKURI.c +444 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLTASUKIGAP.c +441 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLTHRUSTING.c +431 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLTRISTAR.c +422 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLUNIQUE3RIVER.c +431 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLUPSIDEGAP2CROWS.c +433 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CDLXSIDEGAP3METHODS.c +406 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CEIL.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CMO.c +660 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_CORREL.c +465 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_COS.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_COSH.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_DEMA.c +545 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_DIV.c +306 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_DX.c +751 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_EMA.c +559 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_EXP.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_FLOOR.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_DCPERIOD.c +615 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_DCPHASE.c +733 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_PHASOR.c +638 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_SINE.c +752 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_TRENDLINE.c +695 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_HT_TRENDMODE.c +848 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_IMI.c +386 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_KAMA.c +555 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LINEARREG.c +412 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LINEARREG_ANGLE.c +412 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LINEARREG_INTERCEPT.c +410 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LINEARREG_SLOPE.c +406 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LN.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_LOG10.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MA.c +539 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MACD.c +865 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MACDEXT.c +792 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MACDFIX.c +365 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MAMA.c +780 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MAVP.c +563 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MAX.c +431 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MAXINDEX.c +426 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MEDPRICE.c +318 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MFI.c +632 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MIDPOINT.c +403 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MIDPRICE.c +415 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MIN.c +431 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MININDEX.c +426 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MINMAX.c +490 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MINMAXINDEX.c +490 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MINUS_DI.c +762 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MINUS_DM.c +637 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MOM.c +393 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_MULT.c +304 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_NATR.c +545 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_NVI.c +197 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_OBV.c +338 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_PLUS_DI.c +762 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_PLUS_DM.c +638 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_PPO.c +422 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_PVI.c +197 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ROC.c +404 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ROCP.c +405 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ROCR.c +406 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ROCR100.c +405 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_RSI.c +664 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SAR.c +774 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SAREXT.c +1078 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SIN.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SINH.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SMA.c +478 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SQRT.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_STDDEV.c +570 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_STOCH.c +884 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_STOCHF.c +794 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_STOCHRSI.c +583 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SUB.c +307 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_SUM.c +391 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_T3.c +587 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TAN.c +293 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TANH.c +294 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TEMA.c +539 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TRANGE.c +383 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TRIMA.c +706 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TRIX.c +508 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TSF.c +412 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_TYPPRICE.c +326 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_ULTOSC.c +648 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_VAR.c +549 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_WCLPRICE.c +325 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_WILLR.c +512 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_WMA.c +483 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_utility.c +134 -0
- pytafast-0.1.0/third_party/ta-lib/src/ta_func/ta_utility.h +362 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/Makefile.am +2 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/Makefile.am +16 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/gen_code.c +4895 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/gen_rust.c +518 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/java/Main.java +90 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/java/PrettyCode.java +224 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/gen_code/mcpp.exe +0 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/post-build-bin.sh +17 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/Makefile.am +43 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ReadMe.txt +12 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_error_number.h +297 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_gDataClose.c +723 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_gDataHigh.c +723 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_gDataLow.c +719 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_gDataOpen.c +667 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_regtest.c +301 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_1in_1out.c +507 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_1in_2out.c +469 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_adx.c +682 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_avgdev.c +256 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_bbands.c +533 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_candlestick.c +744 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_imi.c +293 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_ma.c +816 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_macd.c +603 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_minmax.c +834 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_mom.c +553 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_per_ema.c +307 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_per_hl.c +640 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_per_hlc.c +651 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_per_hlcv.c +710 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_per_ohlc.c +527 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_po.c +440 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_rsi.c +507 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_sar.c +301 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_stddev.c +265 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_stoch.c +794 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func/test_trange.c +349 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_func.h +28 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/ta_test_priv.h +210 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/test_abstract.c +788 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/test_data.c +145 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/test_internals.c +274 -0
- pytafast-0.1.0/third_party/ta-lib/src/tools/ta_regtest/test_util.c +1338 -0
- pytafast-0.1.0/third_party/ta-lib/ta-lib.dpkg.in +16 -0
- pytafast-0.1.0/third_party/ta-lib/ta-lib.pc.in +11 -0
- pytafast-0.1.0/third_party/ta-lib/ta-lib.spec.in +70 -0
- pytafast-0.1.0/third_party/ta-lib/ta_func_api.xml +6903 -0
- pytafast-0.1.0/third_party/ta-lib/ta_func_list.txt +161 -0
- pytafast-0.1.0/third_party/ta-lib/uninstall +121 -0
- pytafast-0.1.0/uv.lock +361 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15...3.27)
|
|
2
|
+
project(pytalib VERSION 0.1.0)
|
|
3
|
+
|
|
4
|
+
# Build ta-lib
|
|
5
|
+
# ta-lib provides a configure script, but CMake can build it directly if we list its sources.
|
|
6
|
+
# Since ta-lib v0.6.4 is already a robust C library, a clean approach is either to use its configure/make (ExternalProject_Add)
|
|
7
|
+
# or just compile its `src` folder directly. Let's use `add_subdirectory` if it has CMake, else we build the sources.
|
|
8
|
+
# Let's inspect ta-lib after checkout.
|
|
9
|
+
add_subdirectory(third_party/ta-lib)
|
|
10
|
+
|
|
11
|
+
# include nanobind
|
|
12
|
+
find_package(Python 3.11 COMPONENTS Interpreter Development.Module REQUIRED)
|
|
13
|
+
add_subdirectory(third_party/nanobind)
|
|
14
|
+
|
|
15
|
+
# The main python module
|
|
16
|
+
nanobind_add_module(pytafast_ext src/pytafast_ext.cpp)
|
|
17
|
+
|
|
18
|
+
# Link against ta-lib
|
|
19
|
+
target_link_libraries(pytafast_ext PRIVATE ta-lib-static)
|
|
20
|
+
|
|
21
|
+
# Install extension in package
|
|
22
|
+
install(TARGETS pytafast_ext DESTINATION pytafast)
|
pytafast-0.1.0/GEMINI.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# pytafast
|
|
2
|
+
|
|
3
|
+
A high-performance Python wrapper for the `ta-lib` C library using `nanobind`.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
- **Core Technology:** Uses `nanobind` for efficient C++/Python bindings and `scikit-build-core` for the build system.
|
|
8
|
+
- **Architecture:**
|
|
9
|
+
- A C++ extension (`pytafast_ext`) wraps the raw `ta-lib` functions.
|
|
10
|
+
- A Python layer (`pytafast`) provides a high-level API that supports both `numpy` arrays and `pandas` Series.
|
|
11
|
+
- **Key Features:**
|
|
12
|
+
- Preservation of `pandas.Series` metadata (index, name).
|
|
13
|
+
- Automatic `TA_Initialize()` and `TA_Shutdown()` management.
|
|
14
|
+
- Performance-oriented, utilizing `nb::ndarray` for zero-copy data access where possible.
|
|
15
|
+
|
|
16
|
+
## Building and Running
|
|
17
|
+
|
|
18
|
+
### Prerequisites
|
|
19
|
+
|
|
20
|
+
- C++ compiler (supporting C++17 or later)
|
|
21
|
+
- CMake (3.15+)
|
|
22
|
+
- Python (3.11+)
|
|
23
|
+
|
|
24
|
+
### Installation
|
|
25
|
+
|
|
26
|
+
For development, it is recommended to use `uv` or `pip` in editable mode:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Using uv (recommended)
|
|
30
|
+
uv pip install -v -e .
|
|
31
|
+
|
|
32
|
+
# Using pip
|
|
33
|
+
pip install -v -e .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The `-v` flag is helpful to see the CMake build output.
|
|
37
|
+
|
|
38
|
+
### Testing
|
|
39
|
+
|
|
40
|
+
Tests are managed with `pytest`.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Run all tests
|
|
44
|
+
pytest
|
|
45
|
+
|
|
46
|
+
# Run tests with benchmarking
|
|
47
|
+
pytest tests/test_benchmark.py
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Development Conventions
|
|
51
|
+
|
|
52
|
+
### Project Structure
|
|
53
|
+
|
|
54
|
+
- `src/pytafast_ext.cpp`: The main C++ binding file. All `ta-lib` function wrappings should be added here.
|
|
55
|
+
- `src/pytafast/__init__.py`: The public Python API. New functions added to the C++ extension should be exposed here with appropriate documentation and type handling.
|
|
56
|
+
- `third_party/`: Contains git submodules for `ta-lib` and `nanobind`.
|
|
57
|
+
- `tests/`: Contains `pytest` test cases.
|
|
58
|
+
|
|
59
|
+
### Coding Standards
|
|
60
|
+
|
|
61
|
+
- **C++:**
|
|
62
|
+
- Use `nanobind` (`nb::ndarray`) for array passing.
|
|
63
|
+
- Use `check_ta_retcode` to handle `TA_RetCode` and raise appropriate Python exceptions.
|
|
64
|
+
- Ensure memory safety by using `nb::capsule` for data ownership when returning arrays allocated in C++.
|
|
65
|
+
- **Python:**
|
|
66
|
+
- Support both `numpy.ndarray` and `pandas.Series` in public functions.
|
|
67
|
+
- Achieve true zero-copy data passing by ensuring array continuity (`np.ascontiguousarray`) and explicitly typing C++ arguments as `const double` references (`nb::ndarray<nb::numpy, const double, nb::c_contig>`) which safely accepts Pandas' read-only memory views without enforcing deep copies.
|
|
68
|
+
- **Testing:**
|
|
69
|
+
- Always compare results against the official `TA-Lib` Python package for verification.
|
|
70
|
+
- Include benchmarks for new functions to ensure performance remains competitive.
|
pytafast-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: pytafast
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Python wrapper for ta-lib using nanobind
|
|
5
|
+
Author-Email: curry tang <twn39@163.com>
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
Requires-Dist: numpy
|
|
8
|
+
Requires-Dist: pandas
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
|
pytafast-0.1.0/README.md
ADDED
|
File without changes
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["scikit-build-core>=0.4.3", "nanobind>=2.11.0"]
|
|
3
|
+
build-backend = "scikit_build_core.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pytafast"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Python wrapper for ta-lib using nanobind"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"numpy",
|
|
13
|
+
"pandas"
|
|
14
|
+
]
|
|
15
|
+
authors = [
|
|
16
|
+
{name = "curry tang", email = "twn39@163.com"}
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[tool.scikit-build]
|
|
20
|
+
minimum-version = "0.4"
|
|
21
|
+
cmake.build-type = "Release"
|
|
22
|
+
sdist.include = [
|
|
23
|
+
"third_party/ta-lib/src/**/*",
|
|
24
|
+
"third_party/ta-lib/include/**/*",
|
|
25
|
+
"third_party/ta-lib/CMakeLists.txt",
|
|
26
|
+
"third_party/ta-lib/ta_lib.cmake",
|
|
27
|
+
"third_party/ta-lib/ta-lib-config.cmake.in",
|
|
28
|
+
"third_party/nanobind/src/**/*",
|
|
29
|
+
"third_party/nanobind/include/**/*",
|
|
30
|
+
"third_party/nanobind/ext/**/*",
|
|
31
|
+
"third_party/nanobind/cmake/**/*",
|
|
32
|
+
"third_party/nanobind/CMakeLists.txt",
|
|
33
|
+
]
|
|
34
|
+
sdist.exclude = [
|
|
35
|
+
"third_party/ta-lib/ide/**/*",
|
|
36
|
+
"third_party/ta-lib/dist/**/*",
|
|
37
|
+
"third_party/ta-lib/dotnet/**/*",
|
|
38
|
+
"third_party/ta-lib/java/**/*",
|
|
39
|
+
"third_party/ta-lib/docs/**/*",
|
|
40
|
+
"third_party/ta-lib/swig/**/*",
|
|
41
|
+
"third_party/nanobind/docs/**/*",
|
|
42
|
+
"third_party/**/*.deb",
|
|
43
|
+
"third_party/**/*.msi",
|
|
44
|
+
"third_party/**/*.zip",
|
|
45
|
+
"third_party/**/*.dll",
|
|
46
|
+
"third_party/**/*.class",
|
|
47
|
+
"third_party/**/*.pdf",
|
|
48
|
+
"third_party/**/*.sdf",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[dependency-groups]
|
|
52
|
+
dev = [
|
|
53
|
+
"ta-lib>=0.6.8",
|
|
54
|
+
"pytest-benchmark>=4.0.0",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.pytest.ini_options]
|
|
58
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
# We import the compiled extension module
|
|
4
|
+
from . import pytafast_ext
|
|
5
|
+
from .pytafast_ext import MAType
|
|
6
|
+
|
|
7
|
+
__version__ = "0.1.0"
|
|
8
|
+
|
|
9
|
+
def _is_pandas_series(obj):
|
|
10
|
+
try:
|
|
11
|
+
import pandas as pd
|
|
12
|
+
return isinstance(obj, pd.Series)
|
|
13
|
+
except ImportError:
|
|
14
|
+
return False
|
|
15
|
+
|
|
16
|
+
def SMA(inReal, timeperiod=30):
|
|
17
|
+
"""
|
|
18
|
+
Simple Moving Average.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
inReal: 1D array-like (numpy ndarray, pandas Series, list, etc.) of floats.
|
|
22
|
+
timeperiod: Integer time period.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
A numpy array or pandas Series (matching input) with the SMA values.
|
|
26
|
+
The leading (timeperiod - 1) elements will be NaN.
|
|
27
|
+
"""
|
|
28
|
+
is_series = _is_pandas_series(inReal)
|
|
29
|
+
|
|
30
|
+
# We use copy=False and ascontiguousarray to achieve zero-copy whenever possible
|
|
31
|
+
arr = np.asarray(inReal, dtype=np.float64)
|
|
32
|
+
arr = np.ascontiguousarray(arr)
|
|
33
|
+
|
|
34
|
+
# Call the C++ nanobind wrapper
|
|
35
|
+
out_arr = pytafast_ext.SMA(arr, timeperiod)
|
|
36
|
+
|
|
37
|
+
# Cast back to pandas Series if input was a Series
|
|
38
|
+
if is_series:
|
|
39
|
+
import pandas as pd
|
|
40
|
+
return pd.Series(out_arr, index=inReal.index, name=inReal.name)
|
|
41
|
+
|
|
42
|
+
return out_arr
|
|
43
|
+
|
|
44
|
+
def EMA(inReal, timeperiod=30):
|
|
45
|
+
"""
|
|
46
|
+
Exponential Moving Average.
|
|
47
|
+
"""
|
|
48
|
+
is_series = _is_pandas_series(inReal)
|
|
49
|
+
arr = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
50
|
+
out_arr = pytafast_ext.EMA(arr, timeperiod)
|
|
51
|
+
if is_series:
|
|
52
|
+
import pandas as pd
|
|
53
|
+
return pd.Series(out_arr, index=inReal.index, name=inReal.name)
|
|
54
|
+
return out_arr
|
|
55
|
+
|
|
56
|
+
def RSI(inReal, timeperiod=14):
|
|
57
|
+
"""
|
|
58
|
+
Relative Strength Index.
|
|
59
|
+
"""
|
|
60
|
+
is_series = _is_pandas_series(inReal)
|
|
61
|
+
arr = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
62
|
+
out_arr = pytafast_ext.RSI(arr, timeperiod)
|
|
63
|
+
if is_series:
|
|
64
|
+
import pandas as pd
|
|
65
|
+
return pd.Series(out_arr, index=inReal.index, name=inReal.name)
|
|
66
|
+
return out_arr
|
|
67
|
+
|
|
68
|
+
def MACD(inReal, fastperiod=12, slowperiod=26, signalperiod=9):
|
|
69
|
+
"""
|
|
70
|
+
Moving Average Convergence/Divergence.
|
|
71
|
+
Returns: (macd, macdsignal, macdhist)
|
|
72
|
+
"""
|
|
73
|
+
is_series = _is_pandas_series(inReal)
|
|
74
|
+
arr = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
75
|
+
macd, macdsignal, macdhist = pytafast_ext.MACD(arr, fastperiod, slowperiod, signalperiod)
|
|
76
|
+
if is_series:
|
|
77
|
+
import pandas as pd
|
|
78
|
+
return (
|
|
79
|
+
pd.Series(macd, index=inReal.index, name="MACD"),
|
|
80
|
+
pd.Series(macdsignal, index=inReal.index, name="MACD_Signal"),
|
|
81
|
+
pd.Series(macdhist, index=inReal.index, name="MACD_Hist")
|
|
82
|
+
)
|
|
83
|
+
return macd, macdsignal, macdhist
|
|
84
|
+
|
|
85
|
+
def BBANDS(inReal, timeperiod=5, nbdevup=2.0, nbdevdn=2.0, matype=MAType.SMA):
|
|
86
|
+
"""
|
|
87
|
+
Bollinger Bands.
|
|
88
|
+
Returns: (upperband, middleband, lowerband)
|
|
89
|
+
"""
|
|
90
|
+
is_series = _is_pandas_series(inReal)
|
|
91
|
+
arr = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
92
|
+
# Convert Enum to int for C++ call if necessary, though nanobind handles enum bindings
|
|
93
|
+
upper, middle, lower = pytafast_ext.BBANDS(arr, timeperiod, nbdevup, nbdevdn, int(matype.value) if hasattr(matype, 'value') else int(matype))
|
|
94
|
+
|
|
95
|
+
if is_series:
|
|
96
|
+
import pandas as pd
|
|
97
|
+
return (
|
|
98
|
+
pd.Series(upper, index=inReal.index, name="UpperBand"),
|
|
99
|
+
pd.Series(middle, index=inReal.index, name="MiddleBand"),
|
|
100
|
+
pd.Series(lower, index=inReal.index, name="LowerBand")
|
|
101
|
+
)
|
|
102
|
+
return upper, middle, lower
|
|
103
|
+
|
|
104
|
+
def ATR(inHigh, inLow, inClose, timeperiod=14):
|
|
105
|
+
"""
|
|
106
|
+
Average True Range.
|
|
107
|
+
"""
|
|
108
|
+
is_series = _is_pandas_series(inClose)
|
|
109
|
+
arr_h = np.ascontiguousarray(np.asarray(inHigh, dtype=np.float64))
|
|
110
|
+
arr_l = np.ascontiguousarray(np.asarray(inLow, dtype=np.float64))
|
|
111
|
+
arr_c = np.ascontiguousarray(np.asarray(inClose, dtype=np.float64))
|
|
112
|
+
out_arr = pytafast_ext.ATR(arr_h, arr_l, arr_c, timeperiod)
|
|
113
|
+
if is_series:
|
|
114
|
+
import pandas as pd
|
|
115
|
+
return pd.Series(out_arr, index=inClose.index, name="ATR")
|
|
116
|
+
return out_arr
|
|
117
|
+
|
|
118
|
+
def ADX(inHigh, inLow, inClose, timeperiod=14):
|
|
119
|
+
"""
|
|
120
|
+
Average Directional Movement Index.
|
|
121
|
+
"""
|
|
122
|
+
is_series = _is_pandas_series(inClose)
|
|
123
|
+
arr_h = np.ascontiguousarray(np.asarray(inHigh, dtype=np.float64))
|
|
124
|
+
arr_l = np.ascontiguousarray(np.asarray(inLow, dtype=np.float64))
|
|
125
|
+
arr_c = np.ascontiguousarray(np.asarray(inClose, dtype=np.float64))
|
|
126
|
+
out_arr = pytafast_ext.ADX(arr_h, arr_l, arr_c, timeperiod)
|
|
127
|
+
if is_series:
|
|
128
|
+
import pandas as pd
|
|
129
|
+
return pd.Series(out_arr, index=inClose.index, name="ADX")
|
|
130
|
+
return out_arr
|
|
131
|
+
|
|
132
|
+
def CCI(inHigh, inLow, inClose, timeperiod=14):
|
|
133
|
+
"""
|
|
134
|
+
Commodity Channel Index.
|
|
135
|
+
"""
|
|
136
|
+
is_series = _is_pandas_series(inClose)
|
|
137
|
+
arr_h = np.ascontiguousarray(np.asarray(inHigh, dtype=np.float64))
|
|
138
|
+
arr_l = np.ascontiguousarray(np.asarray(inLow, dtype=np.float64))
|
|
139
|
+
arr_c = np.ascontiguousarray(np.asarray(inClose, dtype=np.float64))
|
|
140
|
+
out_arr = pytafast_ext.CCI(arr_h, arr_l, arr_c, timeperiod)
|
|
141
|
+
if is_series:
|
|
142
|
+
import pandas as pd
|
|
143
|
+
return pd.Series(out_arr, index=inClose.index, name="CCI")
|
|
144
|
+
return out_arr
|
|
145
|
+
|
|
146
|
+
def OBV(inReal, inVolume):
|
|
147
|
+
"""
|
|
148
|
+
On Balance Volume.
|
|
149
|
+
"""
|
|
150
|
+
is_series = _is_pandas_series(inReal)
|
|
151
|
+
arr_c = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
152
|
+
arr_v = np.ascontiguousarray(np.asarray(inVolume, dtype=np.float64))
|
|
153
|
+
out_arr = pytafast_ext.OBV(arr_c, arr_v)
|
|
154
|
+
if is_series:
|
|
155
|
+
import pandas as pd
|
|
156
|
+
return pd.Series(out_arr, index=inReal.index, name="OBV")
|
|
157
|
+
return out_arr
|
|
158
|
+
|
|
159
|
+
def ROC(inReal, timeperiod=10):
|
|
160
|
+
"""
|
|
161
|
+
Rate of change : ((price/prevPrice)-1)*100
|
|
162
|
+
"""
|
|
163
|
+
is_series = _is_pandas_series(inReal)
|
|
164
|
+
arr = np.ascontiguousarray(np.asarray(inReal, dtype=np.float64))
|
|
165
|
+
out_arr = pytafast_ext.ROC(arr, timeperiod)
|
|
166
|
+
if is_series:
|
|
167
|
+
import pandas as pd
|
|
168
|
+
return pd.Series(out_arr, index=inReal.index, name="ROC")
|
|
169
|
+
return out_arr
|
|
170
|
+
|
|
171
|
+
def STOCH(inHigh, inLow, inClose, fastk_period=5, slowk_period=3, slowk_matype=MAType.SMA, slowd_period=3, slowd_matype=MAType.SMA):
|
|
172
|
+
"""
|
|
173
|
+
Stochastic.
|
|
174
|
+
Returns: (slowk, slowd)
|
|
175
|
+
"""
|
|
176
|
+
is_series = _is_pandas_series(inClose)
|
|
177
|
+
arr_h = np.ascontiguousarray(np.asarray(inHigh, dtype=np.float64))
|
|
178
|
+
arr_l = np.ascontiguousarray(np.asarray(inLow, dtype=np.float64))
|
|
179
|
+
arr_c = np.ascontiguousarray(np.asarray(inClose, dtype=np.float64))
|
|
180
|
+
|
|
181
|
+
sk_t = int(slowk_matype.value) if hasattr(slowk_matype, 'value') else int(slowk_matype)
|
|
182
|
+
sd_t = int(slowd_matype.value) if hasattr(slowd_matype, 'value') else int(slowd_matype)
|
|
183
|
+
|
|
184
|
+
slowk, slowd = pytafast_ext.STOCH(arr_h, arr_l, arr_c, fastk_period, slowk_period, sk_t, slowd_period, sd_t)
|
|
185
|
+
|
|
186
|
+
if is_series:
|
|
187
|
+
import pandas as pd
|
|
188
|
+
return (
|
|
189
|
+
pd.Series(slowk, index=inClose.index, name="SlowK"),
|
|
190
|
+
pd.Series(slowd, index=inClose.index, name="SlowD")
|
|
191
|
+
)
|
|
192
|
+
return slowk, slowd
|
|
193
|
+
|
|
194
|
+
# Initialize TA-Lib context when the module is loaded
|
|
195
|
+
pytafast_ext.initialize()
|
|
196
|
+
|
|
197
|
+
from pytafast import aio
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import pytafast
|
|
3
|
+
|
|
4
|
+
async def SMA(*args, **kwargs):
|
|
5
|
+
return await asyncio.to_thread(pytafast.SMA, *args, **kwargs)
|
|
6
|
+
|
|
7
|
+
async def EMA(*args, **kwargs):
|
|
8
|
+
return await asyncio.to_thread(pytafast.EMA, *args, **kwargs)
|
|
9
|
+
|
|
10
|
+
async def RSI(*args, **kwargs):
|
|
11
|
+
return await asyncio.to_thread(pytafast.RSI, *args, **kwargs)
|
|
12
|
+
|
|
13
|
+
async def MACD(*args, **kwargs):
|
|
14
|
+
return await asyncio.to_thread(pytafast.MACD, *args, **kwargs)
|
|
15
|
+
|
|
16
|
+
async def BBANDS(*args, **kwargs):
|
|
17
|
+
return await asyncio.to_thread(pytafast.BBANDS, *args, **kwargs)
|
|
18
|
+
|
|
19
|
+
async def ATR(*args, **kwargs):
|
|
20
|
+
return await asyncio.to_thread(pytafast.ATR, *args, **kwargs)
|
|
21
|
+
|
|
22
|
+
async def ADX(*args, **kwargs):
|
|
23
|
+
return await asyncio.to_thread(pytafast.ADX, *args, **kwargs)
|
|
24
|
+
|
|
25
|
+
async def CCI(*args, **kwargs):
|
|
26
|
+
return await asyncio.to_thread(pytafast.CCI, *args, **kwargs)
|
|
27
|
+
|
|
28
|
+
async def OBV(*args, **kwargs):
|
|
29
|
+
return await asyncio.to_thread(pytafast.OBV, *args, **kwargs)
|
|
30
|
+
|
|
31
|
+
async def ROC(*args, **kwargs):
|
|
32
|
+
return await asyncio.to_thread(pytafast.ROC, *args, **kwargs)
|
|
33
|
+
|
|
34
|
+
async def STOCH(*args, **kwargs):
|
|
35
|
+
return await asyncio.to_thread(pytafast.STOCH, *args, **kwargs)
|