From 2b865244365050b36bd40069f1df4a9ca658323d Mon Sep 17 00:00:00 2001 From: Marko Djordjevic Date: Sun, 15 Feb 2026 21:09:47 +0100 Subject: [PATCH] fix(ml): correct CCI indicator signature to use HLC prices --- .../annotation_ingestion.cpython-313.pyc | Bin 0 -> 20451 bytes .../talib_features.cpython-313.pyc | Bin 8396 -> 8391 bytes services/ml/features/talib_features.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 services/ml/app/__pycache__/annotation_ingestion.cpython-313.pyc diff --git a/services/ml/app/__pycache__/annotation_ingestion.cpython-313.pyc b/services/ml/app/__pycache__/annotation_ingestion.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9007ce58be358198d289e26452ab06285413caa3 GIT binary patch literal 20451 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 literal 0 HcmV?d00001 diff --git a/services/ml/features/__pycache__/talib_features.cpython-313.pyc b/services/ml/features/__pycache__/talib_features.cpython-313.pyc index 8ff5382cd49776c2e297ad9237006ecf32a69536..dc0448b255ab3ec61538598d89e8b79a5859828b 100644 GIT binary patch delta 67 zcmX@(c-)cqGcPX}0}wn{pOhK4k@uniqs-*{0#=jd1n0BfVs>`++c+w52V(ngW|lj`1OVKX6Mz5! diff --git a/services/ml/features/talib_features.py b/services/ml/features/talib_features.py index e6d5dfb..16b5cc4 100644 --- a/services/ml/features/talib_features.py +++ b/services/ml/features/talib_features.py @@ -130,7 +130,7 @@ def _call_talib_function( """ # Price indicators (close only) price_only = ['RSI', 'EMA', 'SMA', 'WMA', 'TEMA', 'DEMA', 'TRIMA', 'KAMA', - 'MAMA', 'T3', 'CCI', 'CMO', 'MOM', 'ROC', 'ROCP', 'ROCR', + 'MAMA', 'T3', 'CMO', 'MOM', 'ROC', 'ROCP', 'ROCR', 'TRIX', 'WILLR', 'DX', 'MINUS_DI', 'PLUS_DI', 'MINUS_DM', 'PLUS_DM', 'TSF', 'HT_DCPERIOD', 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDMODE']