polars-ta 0.4.4__tar.gz → 0.4.5__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.
Files changed (73) hide show
  1. {polars_ta-0.4.4 → polars_ta-0.4.5}/PKG-INFO +1 -1
  2. polars_ta-0.4.5/polars_ta/_version.py +1 -0
  3. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/tdx.py +13 -0
  4. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/__init__.py +1 -0
  5. polars_ta-0.4.5/polars_ta/tdx/_chip.py +121 -0
  6. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/logical.py +15 -12
  7. polars_ta-0.4.5/polars_ta/tdx/pattern.py +49 -0
  8. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/reference.py +6 -1
  9. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta.egg-info/PKG-INFO +1 -1
  10. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta.egg-info/SOURCES.txt +2 -0
  11. polars_ta-0.4.4/polars_ta/_version.py +0 -1
  12. {polars_ta-0.4.4 → polars_ta-0.4.5}/LICENSE +0 -0
  13. {polars_ta-0.4.4 → polars_ta-0.4.5}/README.md +0 -0
  14. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/__init__.py +0 -0
  15. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/candles/__init__.py +0 -0
  16. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/candles/cdl1.py +0 -0
  17. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/candles/cdl1_limit.py +0 -0
  18. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/candles/cdl2.py +0 -0
  19. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/noise.py +0 -0
  20. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/performance/__init__.py +0 -0
  21. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/performance/drawdown.py +0 -0
  22. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/performance/returns.py +0 -0
  23. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/__init__.py +0 -0
  24. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/cdl.py +0 -0
  25. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/reports.py +0 -0
  26. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/ta.py +0 -0
  27. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/talib.py +0 -0
  28. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/prefix/wq.py +0 -0
  29. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/reports/__init__.py +0 -0
  30. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/reports/cicc.py +0 -0
  31. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/__init__.py +0 -0
  32. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/momentum.py +0 -0
  33. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/operators.py +0 -0
  34. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/overlap.py +0 -0
  35. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/price.py +0 -0
  36. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/statistic.py +0 -0
  37. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/transform.py +0 -0
  38. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/volatility.py +0 -0
  39. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/ta/volume.py +0 -0
  40. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/talib/__init__.py +0 -0
  41. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/_nb.py +0 -0
  42. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/_slow.py +0 -0
  43. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/arithmetic.py +0 -0
  44. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/choice.py +0 -0
  45. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/energy.py +0 -0
  46. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/moving_average.py +0 -0
  47. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/over_bought_over_sold.py +0 -0
  48. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/pressure_support.py +0 -0
  49. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/statistic.py +0 -0
  50. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/trend.py +0 -0
  51. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/tdx/volume.py +0 -0
  52. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/__init__.py +0 -0
  53. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/helper.py +0 -0
  54. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/numba_.py +0 -0
  55. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/pandas_.py +0 -0
  56. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/pit.py +0 -0
  57. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/utils/wrapper.py +0 -0
  58. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/__init__.py +0 -0
  59. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/_nb.py +0 -0
  60. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/_slow.py +0 -0
  61. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/arithmetic.py +0 -0
  62. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/cross_sectional.py +0 -0
  63. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/logical.py +0 -0
  64. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/preprocess.py +0 -0
  65. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/time_series.py +0 -0
  66. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/transformational.py +0 -0
  67. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta/wq/vector.py +0 -0
  68. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta.egg-info/dependency_links.txt +0 -0
  69. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta.egg-info/requires.txt +0 -0
  70. {polars_ta-0.4.4 → polars_ta-0.4.5}/polars_ta.egg-info/top_level.txt +0 -0
  71. {polars_ta-0.4.4 → polars_ta-0.4.5}/pyproject.toml +0 -0
  72. {polars_ta-0.4.4 → polars_ta-0.4.5}/setup.cfg +0 -0
  73. {polars_ta-0.4.4 → polars_ta-0.4.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: polars_ta
3
- Version: 0.4.4
3
+ Version: 0.4.5
4
4
  Summary: polars expressions
5
5
  Author-email: wukan <wu-kan@163.com>
6
6
  License: MIT License
@@ -0,0 +1 @@
1
+ __version__ = "0.4.5"
@@ -56,28 +56,41 @@ from polars_ta.tdx.over_bought_over_sold import MFI as ts_MFI # noqa
56
56
  from polars_ta.tdx.over_bought_over_sold import MTM as ts_MTM # noqa
57
57
  from polars_ta.tdx.over_bought_over_sold import RSI as ts_RSI # noqa
58
58
  from polars_ta.tdx.over_bought_over_sold import RSV as ts_RSV # noqa
59
+ from polars_ta.tdx.pattern import ts_WINNER_COST # noqa
59
60
  from polars_ta.tdx.pressure_support import BOLL as ts_BOLL # noqa
60
61
  from polars_ta.tdx.pressure_support import BOLL_M as ts_BOLL_M # noqa
61
62
  from polars_ta.tdx.reference import BARSLAST as ts_BARSLAST # noqa
62
63
  from polars_ta.tdx.reference import BARSLASTCOUNT as ts_BARSLASTCOUNT # noqa
63
64
  from polars_ta.tdx.reference import BARSSINCE as ts_BARSSINCE # noqa
64
65
  from polars_ta.tdx.reference import BARSSINCEN as ts_BARSSINCEN # noqa
66
+ from polars_ta.tdx.reference import COUNT as ts_COUNT # noqa
65
67
  from polars_ta.tdx.reference import CUMSUM as ts_CUMSUM # noqa
68
+ from polars_ta.tdx.reference import DIFF as ts_DIFF # noqa
66
69
  from polars_ta.tdx.reference import DMA as ts_DMA # noqa
67
70
  from polars_ta.tdx.reference import EMA as ts_EMA # noqa
68
71
  from polars_ta.tdx.reference import EXPMA as ts_EXPMA # noqa
69
72
  from polars_ta.tdx.reference import EXPMEMA as ts_EXPMEMA # noqa
70
73
  from polars_ta.tdx.reference import FILTER as ts_FILTER # noqa
74
+ from polars_ta.tdx.reference import HHV as ts_HHV # noqa
75
+ from polars_ta.tdx.reference import HHVBARS as ts_HHVBARS # noqa
71
76
  from polars_ta.tdx.reference import HOD as ts_HOD # noqa
77
+ from polars_ta.tdx.reference import LLV as ts_LLV # noqa
78
+ from polars_ta.tdx.reference import LLVBARS as ts_LLVBARS # noqa
72
79
  from polars_ta.tdx.reference import LOD as ts_LOD # noqa
80
+ from polars_ta.tdx.reference import MA as ts_MA # noqa
73
81
  from polars_ta.tdx.reference import MAX # noqa
74
82
  from polars_ta.tdx.reference import MEMA as ts_MEMA # noqa
75
83
  from polars_ta.tdx.reference import MIN # noqa
84
+ from polars_ta.tdx.reference import MULAR as ts_MULAR # noqa
76
85
  from polars_ta.tdx.reference import RANGE # noqa
86
+ from polars_ta.tdx.reference import REF as ts_REF # noqa
87
+ from polars_ta.tdx.reference import REFX as ts_REFX # noqa
77
88
  from polars_ta.tdx.reference import SMA_CN as ts_SMA_CN # noqa
89
+ from polars_ta.tdx.reference import SUM as ts_SUM # noqa
78
90
  from polars_ta.tdx.reference import SUMIF as ts_SUMIF # noqa
79
91
  from polars_ta.tdx.reference import TMA as ts_TMA # noqa
80
92
  from polars_ta.tdx.reference import TR as ts_TR # noqa
93
+ from polars_ta.tdx.reference import WMA as ts_WMA # noqa
81
94
  from polars_ta.tdx.statistic import AVEDEV as ts_AVEDEV # noqa
82
95
  from polars_ta.tdx.statistic import COVAR as ts_COVAR # noqa
83
96
  from polars_ta.tdx.statistic import DEVSQ as ts_DEVSQ # noqa
@@ -4,6 +4,7 @@ from polars_ta.tdx.energy import * # noqa
4
4
  from polars_ta.tdx.logical import * # noqa
5
5
  from polars_ta.tdx.moving_average import * # noqa
6
6
  from polars_ta.tdx.over_bought_over_sold import * # noqa
7
+ from polars_ta.tdx.pattern import * # noqa
7
8
  from polars_ta.tdx.pressure_support import * # noqa
8
9
  from polars_ta.tdx.reference import * # noqa
9
10
  from polars_ta.tdx.statistic import * # noqa
@@ -0,0 +1,121 @@
1
+ import numba
2
+ import numpy as np
3
+
4
+
5
+ @numba.jit(nopython=True, nogil=True, fastmath=True, cache=True)
6
+ def nb_chip(high, low, avg, turnover,
7
+ start=None, stop=None, step=0.2):
8
+ """筹码分布,可用于WINNER或COST指标
9
+
10
+ 不可能完全还原真实的筹码分布,只能接近。所以做了一下特别处理
11
+
12
+ 1. 三角分布,比平均分布更接近
13
+ 2. 步长。没有必要每个价格都统计,特别是复权后价格也无法正好是0.01间隔
14
+ 高价股建议步长设大些,低价股步长需设小些
15
+
16
+ Parameters
17
+ ----------
18
+ high
19
+ low
20
+ avg
21
+ 一维序列
22
+ turnover:
23
+ 换手率,需要在外转成0~1范围内
24
+ start
25
+ 开始价格
26
+ stop
27
+ 结束价格
28
+ step
29
+ 步长。一字涨停时,三角分布的底为1,高为2。但无法当成梯形计算面积,所以从中用半步长切开计算
30
+
31
+ Returns
32
+ -------
33
+ out
34
+ 筹码分布
35
+ columns
36
+ 价格表头
37
+
38
+ """
39
+ # 网格范围
40
+ if start is None:
41
+ start = np.min(low)
42
+ if stop is None:
43
+ stop = np.max(high)
44
+
45
+ left = round(start / step) * 2 - 1
46
+ right = round(stop / step) * 2 + 1
47
+
48
+ # 最小最大值左右要留半格,range是左闭右开,长度必须为2n+1
49
+ columns = np.arange(left, right + 1)
50
+ grid_shape = (len(turnover), len(columns))
51
+
52
+ # numba中round写法特殊
53
+ _high = np.empty_like(high)
54
+ _low = np.empty_like(low)
55
+ _avg = np.empty_like(avg)
56
+
57
+ # high和low必须落到边缘上
58
+ _high = np.round(high / step, 0, _high) * 2 + 1
59
+ _low = np.round(low / step, 0, _low) * 2 - 1
60
+ # avg必须落在实体上
61
+ _avg = np.round(avg / step, 0, _avg) * 2
62
+ tri_height = 2 / ((_high - _low) // 2) # 三角形高度
63
+
64
+ # 得到三组值在网格中的位置
65
+ high_arg = np.argwhere(columns == _high.reshape(-1, 1))[:, 1]
66
+ avg_arg = np.argwhere(columns == _avg.reshape(-1, 1))[:, 1]
67
+ low_arg = np.argwhere(columns == _low.reshape(-1, 1))[:, 1]
68
+
69
+ # 高度表
70
+ height = np.zeros(grid_shape)
71
+ for i in range(len(height)):
72
+ la = low_arg[i]
73
+ aa = avg_arg[i]
74
+ ha = high_arg[i]
75
+ th = tri_height[i]
76
+ height[i, la:aa + 1] = np.linspace(0, th, aa - la + 1)
77
+ height[i, aa:ha + 1] = np.linspace(th, 0, ha - aa + 1)
78
+
79
+ # 计算半块面积, 三角形的高变成了梯形的上下底,梯形高固定为0.5,*0.5/2=/4
80
+ # 宽度-1,例如,原长度为5,-1后为4
81
+ area = (height[:, :-1] + height[:, 1:]) / 4
82
+ # 合成一块。宽度/2,例如原长度为4,/2后为2
83
+ weight = area[:, ::2] + area[:, 1::2]
84
+
85
+ # 输出
86
+ out = np.zeros_like(weight)
87
+ # 剩余换手率
88
+ turnover2 = 1 - turnover
89
+ # 第一天其实应当用上市发行价,过于麻烦,还是将第一天等权
90
+ # 取巧方法,利用-1的特性,可减少if判断,
91
+ out[-1] = weight[0]
92
+ # 这里现在用的numpy, 还要快可考虑numba
93
+ for i in range(len(turnover)):
94
+ out[i] = out[i - 1] * turnover2[i] + weight[i] * turnover[i]
95
+
96
+ # print(out.sum(axis=1))
97
+ return out, (step / 2) * columns[1::2]
98
+
99
+
100
+ @numba.jit(nopython=True, nogil=True, fastmath=True, cache=True)
101
+ def _WINNER_COST(high, low, avg, turnover, close, cost, step):
102
+ out, columns = nb_chip(high, low, avg, turnover, step=step)
103
+
104
+ # WINNER
105
+ cheap = np.where(columns <= close.reshape(-1, 1), out, 0)
106
+ sum_cheap = np.sum(cheap, axis=1)
107
+
108
+ # COST
109
+ # cum = np.cumsum(out, axis=1)
110
+ cum = np.copy(out)
111
+ for i in range(0, out.shape[0]):
112
+ cum[i, :] = np.cumsum(out[i, :])
113
+
114
+ prices = np.where(cum <= cost.reshape(-1, 1), columns, 0)
115
+
116
+ # np.max(prices, axis=1)
117
+ max_price = prices[:, 0]
118
+ for i in range(0, out.shape[0]):
119
+ max_price[i] = np.max(prices[i, :])
120
+
121
+ return sum_cheap, max_price
@@ -15,22 +15,25 @@ def CROSS(a: Expr, b: Expr) -> Expr:
15
15
  'a': [None, -1, 1, 1, 2],
16
16
  'b': [None, -1, 0, 1, 2],
17
17
  'c': [None, 0, 0, 0, 0],
18
+ 'd': [None, False, False, True, True],
18
19
  }).with_columns(
19
20
  out1=CROSS(pl.col('a'), pl.col('c')),
20
21
  out2=CROSS(pl.col('b'), pl.col('c')),
22
+ out3=CROSS(0, pl.col('b')),
23
+ out4=CROSS(pl.col('d'), 0.5),
21
24
  )
22
- shape: (5, 5)
23
- ┌──────┬──────┬──────┬───────┬───────┐
24
- │ a ┆ b ┆ c ┆ out1 ┆ out2 │
25
- │ --- ┆ --- ┆ --- ┆ --- ┆ --- │
26
- │ i64 ┆ i64 ┆ i64 ┆ bool ┆ bool │
27
- ╞══════╪══════╪══════╪═══════╪═══════╡
28
- │ null ┆ null ┆ null ┆ null ┆ null │
29
- │ -1 ┆ -1 ┆ 0 ┆ false ┆ false │
30
- │ 1 ┆ 0 ┆ 0 ┆ true ┆ false │
31
- │ 1 ┆ 1 ┆ 0 ┆ false ┆ true │
32
- │ 2 ┆ 2 ┆ 0 ┆ false ┆ false │
33
- └──────┴──────┴──────┴───────┴───────┘
25
+ shape: (5, 8)
26
+ ┌──────┬──────┬──────┬───────┬───────┬───────┬───────┬───────┐
27
+ │ a ┆ b ┆ c ┆ d ┆ out1 ┆ out2 ┆ out3 ┆ out4
28
+ │ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ ---
29
+ │ i64 ┆ i64 ┆ i64 ┆ bool ┆ bool ┆ bool ┆ bool ┆ bool
30
+ ╞══════╪══════╪══════╪═══════╪═══════╪═══════╪═══════╪═══════╡
31
+ │ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null
32
+ │ -1 ┆ -1 ┆ 0 ┆ false ┆ false ┆ false ┆ null ┆ false
33
+ │ 1 ┆ 0 ┆ 0 ┆ false ┆ true ┆ false ┆ false ┆ false
34
+ │ 1 ┆ 1 ┆ 0 ┆ true ┆ false ┆ true ┆ false ┆ true
35
+ │ 2 ┆ 2 ┆ 0 ┆ true ┆ false ┆ false ┆ false ┆ false
36
+ └──────┴──────┴──────┴───────┴───────┴───────┴───────┴───────┘
34
37
  ```
35
38
 
36
39
  """
@@ -0,0 +1,49 @@
1
+ from polars import Expr, Struct, Field, Float64, struct
2
+
3
+ from polars_ta.tdx._chip import _WINNER_COST
4
+ from polars_ta.utils.numba_ import batches_i2_o2
5
+
6
+
7
+ def ts_WINNER_COST(high: Expr, low: Expr, avg: Expr, turnover: Expr, close: Expr, cost: Expr = 0.5, step: float = 0.1) -> Expr:
8
+ """
9
+ 获利盘比例
10
+ WINNER(CLOSE),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例
11
+
12
+ 成本分布价
13
+ COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘
14
+
15
+ Parameters
16
+ ----------
17
+ high
18
+ 最高价
19
+ low
20
+ 最低价
21
+ avg
22
+ 平均价。可以用vwap
23
+ turnover:
24
+ 换手率。需要在外转成0~1范围内
25
+ close
26
+ 判断获利比例的价格,可以用收盘价,也可以用均价
27
+ cost
28
+ 成本比例,0~1
29
+ step
30
+ 步长。一字涨停时,三角分布的底为1,高为2。但无法当成梯形计算面积,所以从中用半步长切开计算
31
+
32
+ Returns
33
+ -------
34
+ winner
35
+ 获利盘比例
36
+ cost
37
+ 成本分布价
38
+
39
+ Examples
40
+ --------
41
+ >>> WINNER_COST = ts_WINNER_COST(HIGH, LOW, VWAP, turnover_ratio / 100, CLOSE, 0.5)
42
+
43
+ Notes
44
+ -----
45
+ 该函数仅对日线分析周期有效
46
+
47
+ """
48
+ dtype = Struct([Field(f"column_{i}", Float64) for i in range(2)])
49
+ return struct([high, low, avg, turnover, close, cost]).map_batches(lambda xx: batches_i2_o2([xx.struct[i].to_numpy().astype(float) for i in range(6)], _WINNER_COST, step), return_dtype=dtype)
@@ -154,7 +154,7 @@ def SMA_CN(X: Expr, N: int, M: int) -> Expr:
154
154
 
155
155
 
156
156
  def SUMIF(condition: Expr, close: Expr, N: int = 30) -> Expr:
157
- return SUM(condition.cast(Int32) * close, N)
157
+ return SUM(condition.cast(Boolean).cast(Int32) * close, N)
158
158
 
159
159
 
160
160
  def TMA(close: Expr, N: int = 30) -> Expr:
@@ -164,3 +164,8 @@ def TMA(close: Expr, N: int = 30) -> Expr:
164
164
 
165
165
  def FILTER(close: Expr, N: int = 30) -> Expr:
166
166
  raise
167
+
168
+
169
+ def REFX(close: Expr, N: int = 30) -> Expr:
170
+ """属于未来函数,引用若干周期后的数据"""
171
+ return REF(close, -N)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: polars_ta
3
- Version: 0.4.4
3
+ Version: 0.4.5
4
4
  Summary: polars expressions
5
5
  Author-email: wukan <wu-kan@163.com>
6
6
  License: MIT License
@@ -37,6 +37,7 @@ polars_ta/ta/volatility.py
37
37
  polars_ta/ta/volume.py
38
38
  polars_ta/talib/__init__.py
39
39
  polars_ta/tdx/__init__.py
40
+ polars_ta/tdx/_chip.py
40
41
  polars_ta/tdx/_nb.py
41
42
  polars_ta/tdx/_slow.py
42
43
  polars_ta/tdx/arithmetic.py
@@ -45,6 +46,7 @@ polars_ta/tdx/energy.py
45
46
  polars_ta/tdx/logical.py
46
47
  polars_ta/tdx/moving_average.py
47
48
  polars_ta/tdx/over_bought_over_sold.py
49
+ polars_ta/tdx/pattern.py
48
50
  polars_ta/tdx/pressure_support.py
49
51
  polars_ta/tdx/reference.py
50
52
  polars_ta/tdx/statistic.py
@@ -1 +0,0 @@
1
- __version__ = "0.4.4"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes