investfly-sdk 1.6__py3-none-any.whl → 1.8__py3-none-any.whl

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.
@@ -1,52 +1,29 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: investfly-sdk
3
- Version: 1.6
3
+ Version: 1.8
4
4
  Summary: Investfly SDK
5
5
  Author-email: "Investfly.com" <admin@investfly.com>
6
- License: The MIT License (MIT)
7
-
8
- Copyright (c) 2023+ Investfly, Finverse LLC
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
6
+ License: MIT
27
7
  Project-URL: Homepage, https://www.investfly.com
28
8
  Classifier: Programming Language :: Python :: 3
29
- Classifier: License :: OSI Approved :: MIT License
30
9
  Classifier: Operating System :: OS Independent
31
10
  Requires-Python: >=3.7
32
11
  Description-Content-Type: text/markdown
33
12
  License-File: LICENSE.txt
34
- Requires-Dist: certifi ==2023.7.22
35
- Requires-Dist: charset-normalizer ==3.2.0
36
- Requires-Dist: idna ==3.4
37
- Requires-Dist: pandas ==2.0.3
38
- Requires-Dist: pandas-stubs ==2.0.3.230814
39
- Requires-Dist: pandas-ta ==0.3.14b0
40
- Requires-Dist: python-dateutil ==2.8.2
41
- Requires-Dist: pytz ==2023.3
42
- Requires-Dist: requests ==2.31.0
43
- Requires-Dist: types-requests ==2.31.0.2
44
- Requires-Dist: six ==1.16.0
45
- Requires-Dist: tzdata ==2023.3
46
- Requires-Dist: urllib3 ==1.26.15
47
- Requires-Dist: numpy ==1.26.4
48
- Requires-Dist: TA-Lib ==0.4.28
49
- Requires-Dist: mypy ==1.12.1
13
+ Requires-Dist: certifi==2023.7.22
14
+ Requires-Dist: charset-normalizer==3.2.0
15
+ Requires-Dist: idna==3.4
16
+ Requires-Dist: pandas==2.0.3
17
+ Requires-Dist: pandas-stubs==2.0.3.230814
18
+ Requires-Dist: python-dateutil==2.8.2
19
+ Requires-Dist: pytz==2023.3
20
+ Requires-Dist: requests==2.31.0
21
+ Requires-Dist: types-requests==2.31.0.2
22
+ Requires-Dist: six==1.16.0
23
+ Requires-Dist: tzdata==2023.3
24
+ Requires-Dist: urllib3==1.26.15
25
+ Requires-Dist: numpy==1.26.4
26
+ Requires-Dist: mypy==1.12.1
50
27
 
51
28
  # About
52
29
 
@@ -183,13 +160,24 @@ Using IDE editor will assist with auto-completion and type hints. Additionally,
183
160
  When using the IDE, open `investfly` directory created above as a project with your IDE.
184
161
  Make sure that Python Interpreter is configured to the virtual environment `investfly/venv/bin/python` created above.
185
162
 
163
+ ### TA-Lib Stubs
164
+ TA-Lib is a technical analysis library https://github.com/TA-Lib/ta-lib-python used to compute technical indicators by Investfly.
165
+ This library can also be used in custom indicators and strategies. However, installing Python ta-lib wrapper requires installing native ta-lib, which is challenging based on the OS you are working with.
166
+ So investfly-sdk ships with ta-lib stubs, so when you install investfly-sdk, pip does not try to install ta-lib.
167
+ This means that you can develop your code, but cannot run them locally if you are using ta-lib in your code. This is generally OK, because you will use the CLI
168
+ to upload your code to Investfly server, where it will be run.
169
+ If you want also want to run your code locally to test it, then follow the installation method described in the link above and then install ta-lib with the following command
170
+ ```commandline
171
+ pip install ta-lib==0.4.28
172
+ ```
173
+
186
174
 
187
175
  # API Docs
188
176
 
189
- API Docs are published at https://www.investfly.com/guides/docs/index.html
177
+ API Docs are published at https://www.investfly.com/apidocs/investfly.html
190
178
 
191
179
  # Getting Help
192
- Please email [admin@investfly.com](admin@investfly.com) for any support or bug report
180
+ Please email support@investfly.com for any support or bug report
193
181
 
194
182
 
195
183
 
@@ -10,16 +10,16 @@ investfly/api/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  investfly/cli/InvestflyCli.py,sha256=2dnJuGOL_qe3HeWqc0cyLss4H3HxDTXrvsHtJ6sIYSw,12114
11
11
  investfly/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  investfly/models/CommonModels.py,sha256=kbyWsez1voii2K2wyflYCW7i9lYQh49nbrts4bTvvG4,2348
13
- investfly/models/Indicator.py,sha256=9v46Ozs2O8UPUjDzVC1MpoGx2iwnA__ZyrySVXxX8Qo,10660
14
- investfly/models/MarketData.py,sha256=NbyOh472uIXyHaTW9eYCBbiTu2szSq47iCz8i3qI1v0,6081
13
+ investfly/models/Indicator.py,sha256=7P6rnqAPxWdOy3Z4om0M1olups6QC-uctu6YsvP5Th0,14110
14
+ investfly/models/MarketData.py,sha256=UuTYxgMrxFoeWAmfKACd3l-xq7Hix7xxLVByNpVev4w,6330
15
15
  investfly/models/MarketDataIds.py,sha256=CTNCb7G8NgLb84LYCqqxwlhO8e6RV-AUGwJH9GDv53A,3248
16
- investfly/models/ModelUtils.py,sha256=fdKO0hswgRALfSj8UvNSdtQyDo0QzDc10j3YXa0YIIA,1040
17
- investfly/models/PortfolioModels.py,sha256=wEHzaxEMEmliNR1OXS0WNzzao7ZA5qhKIPzAjWQuUOM,8658
16
+ investfly/models/ModelUtils.py,sha256=_VLDYu_PjT_G7zFQBZcSys7d68obbE_ZLUuARm77TDI,1178
17
+ investfly/models/PortfolioModels.py,sha256=lIsgK2dmx127Dt8_hgpkOMobSR8K_ab-4nTKQy1vZbI,8704
18
18
  investfly/models/SecurityFilterModels.py,sha256=4baTBBI-XOKh8uTpvqVvk3unD-xHoyooO3dd5lKWbXA,5806
19
- investfly/models/SecurityUniverseSelector.py,sha256=N2cYhgRz3PTh6T98liiiTbJNg27SBpaUaIQGgDHFbF4,8645
19
+ investfly/models/SecurityUniverseSelector.py,sha256=Be3yh98cJCvNFyDWsRr5fhsuvLU3TAYu_XahjtYndcY,12178
20
20
  investfly/models/StrategyModels.py,sha256=n9MVOJFPtc_Wkiq5TyhdQnaiTUeXGMYqLmBE9IEiW10,5553
21
- investfly/models/TradingStrategy.py,sha256=N1V0dZX6T2buVyg5NZL8inAKlLZSHZnrv-x2g9kxQBk,6362
22
- investfly/models/__init__.py,sha256=6uMfJwcYaH1r-T-bbh6gMud0VpnoSQTkPNDVMDE3JXo,1383
21
+ investfly/models/TradingStrategy.py,sha256=TPWTSQKZP5vTvKAOHtFLqowgBhAso3idn-4UTCHwXBo,6496
22
+ investfly/models/__init__.py,sha256=420GqxWwFJnNEw7-nrxpw62iF8GLozjiplTClk4s7kE,1446
23
23
  investfly/models/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  investfly/samples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  investfly/samples/indicators/IndicatorTemplate.py,sha256=Pn3jGVjMVwhqN1-F5FTAUPm4caFa3ORORNtvL353iEc,4470
@@ -27,16 +27,19 @@ investfly/samples/indicators/NewsSentiment.py,sha256=fcpAqOcNWmqYsP-xwJquCX_6G7N
27
27
  investfly/samples/indicators/RsiOfSma.py,sha256=KewPi89ecZ0H0Ymj0FI72XgfWSvVLebuUHsfkr6WgwU,1557
28
28
  investfly/samples/indicators/SmaEmaAverage.py,sha256=daoaKl9F1MWuOIOQInq9_M3P2A9E3bzFHaQ5TgsZ4ds,1576
29
29
  investfly/samples/indicators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ investfly/samples/strategies/MacdTrendFollowingStrategy.py,sha256=EFu8UqZE07FWZgpvxgB3vJ8-N5ZrietGEhktr0rqqt4,5087
31
+ investfly/samples/strategies/RsiMeanReversionStrategy.py,sha256=tKnVnZASDmfxsXGJ6_QBuvQ2y3Iszm-czTc_rWGQT7g,7634
30
32
  investfly/samples/strategies/SmaCrossOverStrategy.py,sha256=e_gR8gwHJ5m6lU_Ib8jeQrER3cD6q569IIhwglKePew,1680
31
- investfly/samples/strategies/SmaCrossOverTemplate.py,sha256=5wDg1ecAC75ijnKs8hP6hG5EG9P58jLK_RRKTIrQnCI,8197
33
+ investfly/samples/strategies/SmaCrossOverTemplate.py,sha256=Dh5LaJyy-vEw9SWFYcO5JB3XWKgB56j1UUzbyE3y-Bg,18323
32
34
  investfly/samples/strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- investfly/utils/CommonUtils.py,sha256=lCXAdI8-6PgbutcXJqUmSfuuLXp82FcnlxNVjCJpqLU,2631
35
+ investfly/utils/CommonUtils.py,sha256=yZAjyoQ6g0_iJNfMjMTPA5Htgun3QKftZjCA6R7ASx0,2809
34
36
  investfly/utils/PercentBasedPortfolioAllocator.py,sha256=EHrOyHbaYHLwE-4vUSQCVXwbEgLs-nDjLVRH3cdgslI,1563
35
37
  investfly/utils/__init__.py,sha256=2BqXoOQElv-GIU6wvmf2aaAABAcNny2TETcj7kf9rzM,129
36
38
  investfly/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- investfly_sdk-1.6.dist-info/LICENSE.txt,sha256=Jmd2U7G7Z1oNdnRERRzFXN6C--bEo_K56j4v9EpJSTg,1090
38
- investfly_sdk-1.6.dist-info/METADATA,sha256=A1ebvr32y2SEMEd5jnuqHIxZMyn6kcpt9y--QDiu62c,7536
39
- investfly_sdk-1.6.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
40
- investfly_sdk-1.6.dist-info/entry_points.txt,sha256=GDRF4baJQXTh90DvdJJx1DeRezWfPt26E567lTs3g6U,66
41
- investfly_sdk-1.6.dist-info/top_level.txt,sha256=dlEJ2OGWA3prqMvXELeydS5RTdpSzh7hz1LwR3NMc7A,10
42
- investfly_sdk-1.6.dist-info/RECORD,,
39
+ talib/__init__.pyi,sha256=Sw9gkXACt6Rb9Q-_8FVK3NBdofjiJFtSJk2UFhUWdZM,15662
40
+ investfly_sdk-1.8.dist-info/LICENSE.txt,sha256=Jmd2U7G7Z1oNdnRERRzFXN6C--bEo_K56j4v9EpJSTg,1090
41
+ investfly_sdk-1.8.dist-info/METADATA,sha256=gStz2Yu2PckaYKWFNXSYOJy87o4qRfIoYUK_ZnIdGb0,7044
42
+ investfly_sdk-1.8.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
43
+ investfly_sdk-1.8.dist-info/entry_points.txt,sha256=GDRF4baJQXTh90DvdJJx1DeRezWfPt26E567lTs3g6U,66
44
+ investfly_sdk-1.8.dist-info/top_level.txt,sha256=FLuybzCKkAxnL8EONG9fb8zIkUs0P3JmKZ2QyEJes10,16
45
+ investfly_sdk-1.8.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (76.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
talib/__init__.pyi ADDED
@@ -0,0 +1,185 @@
1
+ """
2
+ TA-Lib type stub file for type checking and code completion.
3
+ This provides type hints for TA-Lib functions without implementation.
4
+ """
5
+
6
+ import numpy as np
7
+ from typing import Tuple
8
+
9
+ # Math Operators
10
+ def ADD(real0: np.ndarray, real1: np.ndarray) -> np.ndarray: ...
11
+ def DIV(real0: np.ndarray, real1: np.ndarray) -> np.ndarray: ...
12
+ def MAX(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
13
+ def MAXINDEX(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
14
+ def MIN(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
15
+ def MININDEX(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
16
+ def MINMAX(real: np.ndarray, timeperiod: int = 30) -> Tuple[np.ndarray, np.ndarray]: ...
17
+ def MINMAXINDEX(real: np.ndarray, timeperiod: int = 30) -> Tuple[np.ndarray, np.ndarray]: ...
18
+ def MULT(real0: np.ndarray, real1: np.ndarray) -> np.ndarray: ...
19
+ def SUB(real0: np.ndarray, real1: np.ndarray) -> np.ndarray: ...
20
+ def SUM(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
21
+
22
+ # Math Transform
23
+ def ACOS(real: np.ndarray) -> np.ndarray: ...
24
+ def ASIN(real: np.ndarray) -> np.ndarray: ...
25
+ def ATAN(real: np.ndarray) -> np.ndarray: ...
26
+ def CEIL(real: np.ndarray) -> np.ndarray: ...
27
+ def COS(real: np.ndarray) -> np.ndarray: ...
28
+ def COSH(real: np.ndarray) -> np.ndarray: ...
29
+ def EXP(real: np.ndarray) -> np.ndarray: ...
30
+ def FLOOR(real: np.ndarray) -> np.ndarray: ...
31
+ def LN(real: np.ndarray) -> np.ndarray: ...
32
+ def LOG10(real: np.ndarray) -> np.ndarray: ...
33
+ def SIN(real: np.ndarray) -> np.ndarray: ...
34
+ def SINH(real: np.ndarray) -> np.ndarray: ...
35
+ def SQRT(real: np.ndarray) -> np.ndarray: ...
36
+ def TAN(real: np.ndarray) -> np.ndarray: ...
37
+ def TANH(real: np.ndarray) -> np.ndarray: ...
38
+
39
+ # Overlap Studies
40
+ def BBANDS(real: np.ndarray, timeperiod: int = 5, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...
41
+ def DEMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
42
+ def EMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
43
+ def HT_TRENDLINE(real: np.ndarray) -> np.ndarray: ...
44
+ def KAMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
45
+ def MA(real: np.ndarray, timeperiod: int = 30, matype: int = 0) -> np.ndarray: ...
46
+ def MAMA(real: np.ndarray, fastlimit: float = 0.5, slowlimit: float = 0.05) -> Tuple[np.ndarray, np.ndarray]: ...
47
+ def MAVP(real: np.ndarray, periods: np.ndarray, minperiod: int = 2, maxperiod: int = 30, matype: int = 0) -> np.ndarray: ...
48
+ def MIDPOINT(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
49
+ def MIDPRICE(high: np.ndarray, low: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
50
+ def SAR(high: np.ndarray, low: np.ndarray, acceleration: float = 0.02, maximum: float = 0.2) -> np.ndarray: ...
51
+ def SAREXT(high: np.ndarray, low: np.ndarray, startvalue: float = 0, offsetonreverse: float = 0, accelerationinitlong: float = 0.02, accelerationlong: float = 0.02, accelerationmaxlong: float = 0.2, accelerationinitshort: float = 0.02, accelerationshort: float = 0.02, accelerationmaxshort: float = 0.2) -> np.ndarray: ...
52
+ def SMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
53
+ def T3(real: np.ndarray, timeperiod: int = 5, vfactor: float = 0.7) -> np.ndarray: ...
54
+ def TEMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
55
+ def TRIMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
56
+ def WMA(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
57
+
58
+ # Momentum Indicators
59
+ def ADX(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
60
+ def ADXR(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
61
+ def APO(real: np.ndarray, fastperiod: int = 12, slowperiod: int = 26, matype: int = 0) -> np.ndarray: ...
62
+ def AROON(high: np.ndarray, low: np.ndarray, timeperiod: int = 14) -> Tuple[np.ndarray, np.ndarray]: ...
63
+ def AROONOSC(high: np.ndarray, low: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
64
+ def BOP(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
65
+ def CCI(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
66
+ def CMO(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
67
+ def DX(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
68
+ def MACD(real: np.ndarray, fastperiod: int = 12, slowperiod: int = 26, signalperiod: int = 9) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...
69
+ def MACDEXT(real: np.ndarray, fastperiod: int = 12, fastmatype: int = 0, slowperiod: int = 26, slowmatype: int = 0, signalperiod: int = 9, signalmatype: int = 0) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...
70
+ def MACDFIX(real: np.ndarray, signalperiod: int = 9) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ...
71
+ def MFI(high: np.ndarray, low: np.ndarray, close: np.ndarray, volume: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
72
+ def MINUS_DI(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
73
+ def MINUS_DM(high: np.ndarray, low: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
74
+ def MOM(real: np.ndarray, timeperiod: int = 10) -> np.ndarray: ...
75
+ def PLUS_DI(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
76
+ def PLUS_DM(high: np.ndarray, low: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
77
+ def PPO(real: np.ndarray, fastperiod: int = 12, slowperiod: int = 26, matype: int = 0) -> np.ndarray: ...
78
+ def ROC(real: np.ndarray, timeperiod: int = 10) -> np.ndarray: ...
79
+ def ROCP(real: np.ndarray, timeperiod: int = 10) -> np.ndarray: ...
80
+ def ROCR(real: np.ndarray, timeperiod: int = 10) -> np.ndarray: ...
81
+ def ROCR100(real: np.ndarray, timeperiod: int = 10) -> np.ndarray: ...
82
+ def RSI(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
83
+ def STOCH(high: np.ndarray, low: np.ndarray, close: np.ndarray, fastk_period: int = 5, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0) -> Tuple[np.ndarray, np.ndarray]: ...
84
+ def STOCHF(high: np.ndarray, low: np.ndarray, close: np.ndarray, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple[np.ndarray, np.ndarray]: ...
85
+ def STOCHRSI(real: np.ndarray, timeperiod: int = 14, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple[np.ndarray, np.ndarray]: ...
86
+ def TRIX(real: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
87
+ def ULTOSC(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod1: int = 7, timeperiod2: int = 14, timeperiod3: int = 28) -> np.ndarray: ...
88
+ def WILLR(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
89
+
90
+ # Volume Indicators
91
+ def AD(high: np.ndarray, low: np.ndarray, close: np.ndarray, volume: np.ndarray) -> np.ndarray: ...
92
+ def ADOSC(high: np.ndarray, low: np.ndarray, close: np.ndarray, volume: np.ndarray, fastperiod: int = 3, slowperiod: int = 10) -> np.ndarray: ...
93
+ def OBV(close: np.ndarray, volume: np.ndarray) -> np.ndarray: ...
94
+
95
+ # Volatility Indicators
96
+ def ATR(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
97
+ def NATR(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
98
+ def TRANGE(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
99
+
100
+ # Price Transform
101
+ def AVGPRICE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
102
+ def MEDPRICE(high: np.ndarray, low: np.ndarray) -> np.ndarray: ...
103
+ def TYPPRICE(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
104
+ def WCLPRICE(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
105
+
106
+ # Cycle Indicators
107
+ def HT_DCPERIOD(real: np.ndarray) -> np.ndarray: ...
108
+ def HT_DCPHASE(real: np.ndarray) -> np.ndarray: ...
109
+ def HT_PHASOR(real: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: ...
110
+ def HT_SINE(real: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: ...
111
+ def HT_TRENDMODE(real: np.ndarray) -> np.ndarray: ...
112
+
113
+ # Pattern Recognition
114
+ def CDL2CROWS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
115
+ def CDL3BLACKCROWS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
116
+ def CDL3INSIDE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
117
+ def CDL3LINESTRIKE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
118
+ def CDL3OUTSIDE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
119
+ def CDL3STARSINSOUTH(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
120
+ def CDL3WHITESOLDIERS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
121
+ def CDLABANDONEDBABY(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.3) -> np.ndarray: ...
122
+ def CDLADVANCEBLOCK(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
123
+ def CDLBELTHOLD(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
124
+ def CDLBREAKAWAY(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
125
+ def CDLCLOSINGMARUBOZU(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
126
+ def CDLCONCEALBABYSWALL(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
127
+ def CDLCOUNTERATTACK(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
128
+ def CDLDARKCLOUDCOVER(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.5) -> np.ndarray: ...
129
+ def CDLDOJI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
130
+ def CDLDOJISTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
131
+ def CDLDRAGONFLYDOJI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
132
+ def CDLENGULFING(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
133
+ def CDLEVENINGDOJISTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.3) -> np.ndarray: ...
134
+ def CDLEVENINGSTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.3) -> np.ndarray: ...
135
+ def CDLGAPSIDESIDEWHITE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
136
+ def CDLGRAVESTONEDOJI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
137
+ def CDLHAMMER(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
138
+ def CDLHANGINGMAN(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
139
+ def CDLHARAMI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
140
+ def CDLHARAMICROSS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
141
+ def CDLHIGHWAVE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
142
+ def CDLHIKKAKE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
143
+ def CDLHIKKAKEMOD(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
144
+ def CDLHOMINGPIGEON(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
145
+ def CDLIDENTICAL3CROWS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
146
+ def CDLINNECK(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
147
+ def CDLINVERTEDHAMMER(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
148
+ def CDLKICKING(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
149
+ def CDLKICKINGBYLENGTH(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
150
+ def CDLLADDERBOTTOM(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
151
+ def CDLLONGLEGGEDDOJI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
152
+ def CDLLONGLINE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
153
+ def CDLMARUBOZU(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
154
+ def CDLMATCHINGLOW(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
155
+ def CDLMATHOLD(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.5) -> np.ndarray: ...
156
+ def CDLMORNINGDOJISTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.3) -> np.ndarray: ...
157
+ def CDLMORNINGSTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, penetration: float = 0.3) -> np.ndarray: ...
158
+ def CDLONNECK(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
159
+ def CDLPIERCING(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
160
+ def CDLRICKSHAWMAN(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
161
+ def CDLRISEFALL3METHODS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
162
+ def CDLSEPARATINGLINES(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
163
+ def CDLSHOOTINGSTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
164
+ def CDLSHORTLINE(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
165
+ def CDLSPINNINGTOP(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
166
+ def CDLSTALLEDPATTERN(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
167
+ def CDLSTICKSANDWICH(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
168
+ def CDLTAKURI(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
169
+ def CDLTASUKIGAP(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
170
+ def CDLTHRUSTING(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
171
+ def CDLTRISTAR(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
172
+ def CDLUNIQUE3RIVER(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
173
+ def CDLUPSIDEGAP2CROWS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
174
+ def CDLXSIDEGAP3METHODS(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: ...
175
+
176
+ # Statistic Functions
177
+ def BETA(real0: np.ndarray, real1: np.ndarray, timeperiod: int = 5) -> np.ndarray: ...
178
+ def CORREL(real0: np.ndarray, real1: np.ndarray, timeperiod: int = 30) -> np.ndarray: ...
179
+ def LINEARREG(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
180
+ def LINEARREG_ANGLE(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
181
+ def LINEARREG_INTERCEPT(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
182
+ def LINEARREG_SLOPE(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
183
+ def STDDEV(real: np.ndarray, timeperiod: int = 5, nbdev: float = 1.0) -> np.ndarray: ...
184
+ def TSF(real: np.ndarray, timeperiod: int = 14) -> np.ndarray: ...
185
+ def VAR(real: np.ndarray, timeperiod: int = 5, nbdev: float = 1.0) -> np.ndarray: ...