investfly-sdk 1.6__py3-none-any.whl → 1.7__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.
- investfly/models/MarketData.py +9 -8
- investfly/models/ModelUtils.py +9 -6
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/METADATA +28 -19
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/RECORD +9 -8
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/WHEEL +1 -1
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/top_level.txt +1 -0
- talib/__init__.pyi +185 -0
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/LICENSE.txt +0 -0
- {investfly_sdk-1.6.dist-info → investfly_sdk-1.7.dist-info}/entry_points.txt +0 -0
investfly/models/MarketData.py
CHANGED
@@ -65,21 +65,22 @@ class Quote:
|
|
65
65
|
lastPrice: float
|
66
66
|
prevClose: float| None = None
|
67
67
|
todayChange: float | None = None
|
68
|
-
|
68
|
+
todayChangePct: float | None = None
|
69
69
|
dayOpen: float | None = None
|
70
70
|
dayHigh: float | None = None
|
71
71
|
dayLow: float | None = None
|
72
|
-
|
72
|
+
volume: int | None = None
|
73
73
|
|
74
74
|
@staticmethod
|
75
75
|
def fromDict(jsonDict: Dict[str, Any]) -> Quote:
|
76
76
|
quote = Quote(jsonDict["symbol"], parseDatetime(jsonDict["date"]), jsonDict["lastPrice"])
|
77
77
|
quote.prevClose = jsonDict.get('prevClose')
|
78
78
|
quote.todayChange = jsonDict.get("todayChange")
|
79
|
-
quote.
|
79
|
+
quote.todayChangePct = jsonDict.get('todayChangePct')
|
80
80
|
quote.dayOpen = jsonDict.get('dayOpen')
|
81
81
|
quote.dayHigh = jsonDict.get('dayHigh')
|
82
82
|
quote.dayLow = jsonDict.get('dayLow')
|
83
|
+
quote.volume = jsonDict.get('volume')
|
83
84
|
return quote
|
84
85
|
|
85
86
|
def toDict(self) -> Dict[str, Any]:
|
@@ -111,13 +112,13 @@ class Quote:
|
|
111
112
|
raise Exception("DAY_CHANGE not available in Quote")
|
112
113
|
return DatedValue(self.date, self.todayChange)
|
113
114
|
elif quoteField == QuoteField.DAY_CHANGE_PCT:
|
114
|
-
if self.
|
115
|
+
if self.todayChangePct is None:
|
115
116
|
raise Exception("DAY_CHANGE_PCT value not available in Quote")
|
116
|
-
return DatedValue(self.date, self.
|
117
|
+
return DatedValue(self.date, self.todayChangePct)
|
117
118
|
elif quoteField == QuoteField.DAY_VOLUME:
|
118
|
-
if self.
|
119
|
+
if self.volume is None:
|
119
120
|
raise Exception("DAY_VOLUME not available in Quote")
|
120
|
-
return DatedValue(self.date, self.
|
121
|
+
return DatedValue(self.date, self.volume)
|
121
122
|
else:
|
122
123
|
raise Exception("Invalid Quote Indicator ID: " + quoteField)
|
123
124
|
|
@@ -130,7 +131,7 @@ class Quote:
|
|
130
131
|
bar['high'] = cast(float, self.dayHigh)
|
131
132
|
bar['low'] = cast(float, self.dayLow)
|
132
133
|
bar['close'] = cast(float, self.lastPrice)
|
133
|
-
bar['volume'] = cast(int, self.
|
134
|
+
bar['volume'] = cast(int, self.volume)
|
134
135
|
return bar
|
135
136
|
|
136
137
|
|
investfly/models/ModelUtils.py
CHANGED
@@ -1,23 +1,26 @@
|
|
1
1
|
from datetime import datetime
|
2
|
-
import
|
3
|
-
|
2
|
+
from zoneinfo import ZoneInfo
|
4
3
|
|
5
4
|
class ModelUtils:
|
6
5
|
|
7
6
|
# In Java, using Date includes timezone offset in JSON whereas using LocalDateTime does not
|
8
7
|
|
9
|
-
|
8
|
+
est_zone = ZoneInfo("US/Eastern")
|
9
|
+
|
10
|
+
@staticmethod
|
11
|
+
def convertoToEst(dt: datetime) -> datetime:
|
12
|
+
return dt.astimezone(ModelUtils.est_zone)
|
10
13
|
|
11
14
|
@staticmethod
|
12
15
|
def localizeDateTime(dt: datetime) -> datetime:
|
13
|
-
return ModelUtils.
|
16
|
+
return dt.replace(tzinfo=ModelUtils.est_zone)
|
14
17
|
|
15
18
|
|
16
19
|
@staticmethod
|
17
20
|
def parseDatetime(date_str: str) -> datetime:
|
18
21
|
dateFormat = '%Y-%m-%dT%H:%M:%S.%f' if "." in date_str else '%Y-%m-%dT%H:%M:%S'
|
19
22
|
dt = datetime.strptime(date_str, dateFormat)
|
20
|
-
dt = dt.astimezone(ModelUtils.
|
23
|
+
dt = dt.astimezone(ModelUtils.est_zone)
|
21
24
|
return dt
|
22
25
|
|
23
26
|
@staticmethod
|
@@ -27,7 +30,7 @@ class ModelUtils:
|
|
27
30
|
@staticmethod
|
28
31
|
def parseZonedDatetime(date_str: str) -> datetime:
|
29
32
|
dt = datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%f%z')
|
30
|
-
dt = dt.astimezone(ModelUtils.
|
33
|
+
dt = dt.astimezone(ModelUtils.est_zone)
|
31
34
|
return dt
|
32
35
|
|
33
36
|
@staticmethod
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: investfly-sdk
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.7
|
4
4
|
Summary: Investfly SDK
|
5
5
|
Author-email: "Investfly.com" <admin@investfly.com>
|
6
6
|
License: The MIT License (MIT)
|
@@ -31,22 +31,20 @@ Classifier: Operating System :: OS Independent
|
|
31
31
|
Requires-Python: >=3.7
|
32
32
|
Description-Content-Type: text/markdown
|
33
33
|
License-File: LICENSE.txt
|
34
|
-
Requires-Dist: certifi
|
35
|
-
Requires-Dist: charset-normalizer
|
36
|
-
Requires-Dist: idna
|
37
|
-
Requires-Dist: pandas
|
38
|
-
Requires-Dist: pandas-stubs
|
39
|
-
Requires-Dist:
|
40
|
-
Requires-Dist:
|
41
|
-
Requires-Dist:
|
42
|
-
Requires-Dist: requests
|
43
|
-
Requires-Dist:
|
44
|
-
Requires-Dist:
|
45
|
-
Requires-Dist:
|
46
|
-
Requires-Dist:
|
47
|
-
Requires-Dist:
|
48
|
-
Requires-Dist: TA-Lib ==0.4.28
|
49
|
-
Requires-Dist: mypy ==1.12.1
|
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: python-dateutil==2.8.2
|
40
|
+
Requires-Dist: pytz==2023.3
|
41
|
+
Requires-Dist: requests==2.31.0
|
42
|
+
Requires-Dist: types-requests==2.31.0.2
|
43
|
+
Requires-Dist: six==1.16.0
|
44
|
+
Requires-Dist: tzdata==2023.3
|
45
|
+
Requires-Dist: urllib3==1.26.15
|
46
|
+
Requires-Dist: numpy==1.26.4
|
47
|
+
Requires-Dist: mypy==1.12.1
|
50
48
|
|
51
49
|
# About
|
52
50
|
|
@@ -183,13 +181,24 @@ Using IDE editor will assist with auto-completion and type hints. Additionally,
|
|
183
181
|
When using the IDE, open `investfly` directory created above as a project with your IDE.
|
184
182
|
Make sure that Python Interpreter is configured to the virtual environment `investfly/venv/bin/python` created above.
|
185
183
|
|
184
|
+
### TA-Lib Stubs
|
185
|
+
TA-Lib is a technical analysis library https://github.com/TA-Lib/ta-lib-python used to compute technical indicators by Investfly.
|
186
|
+
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.
|
187
|
+
So investfly-sdk ships with ta-lib stubs, so when you install investfly-sdk, pip does not try to install ta-lib.
|
188
|
+
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
|
189
|
+
to upload your code to Investfly server, where it will be run.
|
190
|
+
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
|
191
|
+
```commandline
|
192
|
+
pip install ta-lib==0.4.28
|
193
|
+
```
|
194
|
+
|
186
195
|
|
187
196
|
# API Docs
|
188
197
|
|
189
198
|
API Docs are published at https://www.investfly.com/guides/docs/index.html
|
190
199
|
|
191
200
|
# Getting Help
|
192
|
-
Please email
|
201
|
+
Please email support@investfly.com for any support or bug report
|
193
202
|
|
194
203
|
|
195
204
|
|
@@ -11,9 +11,9 @@ investfly/cli/InvestflyCli.py,sha256=2dnJuGOL_qe3HeWqc0cyLss4H3HxDTXrvsHtJ6sIYSw
|
|
11
11
|
investfly/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
12
|
investfly/models/CommonModels.py,sha256=kbyWsez1voii2K2wyflYCW7i9lYQh49nbrts4bTvvG4,2348
|
13
13
|
investfly/models/Indicator.py,sha256=9v46Ozs2O8UPUjDzVC1MpoGx2iwnA__ZyrySVXxX8Qo,10660
|
14
|
-
investfly/models/MarketData.py,sha256=
|
14
|
+
investfly/models/MarketData.py,sha256=xcthPem74KM-n48tWMQTT6K7qUC_xpqVmfBY59MgnfM,6095
|
15
15
|
investfly/models/MarketDataIds.py,sha256=CTNCb7G8NgLb84LYCqqxwlhO8e6RV-AUGwJH9GDv53A,3248
|
16
|
-
investfly/models/ModelUtils.py,sha256=
|
16
|
+
investfly/models/ModelUtils.py,sha256=_VLDYu_PjT_G7zFQBZcSys7d68obbE_ZLUuARm77TDI,1178
|
17
17
|
investfly/models/PortfolioModels.py,sha256=wEHzaxEMEmliNR1OXS0WNzzao7ZA5qhKIPzAjWQuUOM,8658
|
18
18
|
investfly/models/SecurityFilterModels.py,sha256=4baTBBI-XOKh8uTpvqVvk3unD-xHoyooO3dd5lKWbXA,5806
|
19
19
|
investfly/models/SecurityUniverseSelector.py,sha256=N2cYhgRz3PTh6T98liiiTbJNg27SBpaUaIQGgDHFbF4,8645
|
@@ -34,9 +34,10 @@ investfly/utils/CommonUtils.py,sha256=lCXAdI8-6PgbutcXJqUmSfuuLXp82FcnlxNVjCJpqL
|
|
34
34
|
investfly/utils/PercentBasedPortfolioAllocator.py,sha256=EHrOyHbaYHLwE-4vUSQCVXwbEgLs-nDjLVRH3cdgslI,1563
|
35
35
|
investfly/utils/__init__.py,sha256=2BqXoOQElv-GIU6wvmf2aaAABAcNny2TETcj7kf9rzM,129
|
36
36
|
investfly/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
-
|
38
|
-
investfly_sdk-1.
|
39
|
-
investfly_sdk-1.
|
40
|
-
investfly_sdk-1.
|
41
|
-
investfly_sdk-1.
|
42
|
-
investfly_sdk-1.
|
37
|
+
talib/__init__.pyi,sha256=Sw9gkXACt6Rb9Q-_8FVK3NBdofjiJFtSJk2UFhUWdZM,15662
|
38
|
+
investfly_sdk-1.7.dist-info/LICENSE.txt,sha256=Jmd2U7G7Z1oNdnRERRzFXN6C--bEo_K56j4v9EpJSTg,1090
|
39
|
+
investfly_sdk-1.7.dist-info/METADATA,sha256=vWZBQ2hipqyUQNej8RaIKicrGElpeTMv19kRwStuCvI,8342
|
40
|
+
investfly_sdk-1.7.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
41
|
+
investfly_sdk-1.7.dist-info/entry_points.txt,sha256=GDRF4baJQXTh90DvdJJx1DeRezWfPt26E567lTs3g6U,66
|
42
|
+
investfly_sdk-1.7.dist-info/top_level.txt,sha256=FLuybzCKkAxnL8EONG9fb8zIkUs0P3JmKZ2QyEJes10,16
|
43
|
+
investfly_sdk-1.7.dist-info/RECORD,,
|
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: ...
|
File without changes
|
File without changes
|