Skip to content

Commit 841dfba

Browse files
committed
FEATURE: added high level api for MCOUNT and MUCOUNT
1 parent 8d62006 commit 841dfba

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

PyFin/api/Analysis.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
from PyFin.Analysis.TechnicalAnalysis import SecurityMaximumValueHolder
1919
from PyFin.Analysis.TechnicalAnalysis import SecurityMinimumValueHolder
2020
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingQuantile
21+
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingCount
22+
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingCountUnique
23+
from PyFin.Analysis.TechnicalAnalysis import SecurityTimeMovingCount
24+
from PyFin.Analysis.TechnicalAnalysis import SecurityTimeMovingCountUnique
2125
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingAllTrue
2226
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingAnyTrue
2327
from PyFin.Analysis.TechnicalAnalysis import SecurityMovingSum
@@ -174,6 +178,24 @@ def MQUANTILE(window, x='x'):
174178
return SecurityMovingQuantile(window, x)
175179

176180

181+
def MCOUNT(window, x="x", closed="right"):
182+
if isinstance(window, int):
183+
return SecurityMovingCount(window, x)
184+
elif isinstance(window, str):
185+
return SecurityTimeMovingCount(window, x, closed)
186+
else:
187+
raise ValueError("wrong window format <{0}>".format(window))
188+
189+
190+
def MUCOUNT(window, x="x", closed="right"):
191+
if isinstance(window, int):
192+
return SecurityMovingCountUnique(window, x)
193+
elif isinstance(window, str):
194+
return SecurityTimeMovingCountUnique(window, x, closed)
195+
else:
196+
raise ValueError("wrong window format <{0}>".format(window))
197+
198+
177199
def MALLTRUE(window, x='x'):
178200
return SecurityMovingAllTrue(window, x)
179201

PyFin/api/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
from PyFin.api.Analysis import MAXIMUM
3636
from PyFin.api.Analysis import MINIMUM
3737
from PyFin.api.Analysis import MQUANTILE
38+
from PyFin.api.Analysis import MCOUNT
39+
from PyFin.api.Analysis import MUCOUNT
3840
from PyFin.api.Analysis import MALLTRUE
3941
from PyFin.api.Analysis import MANYTRUE
4042
from PyFin.api.Analysis import MSUM
@@ -112,6 +114,8 @@
112114
"MAXIMUM",
113115
"MINIMUM",
114116
"MQUANTILE",
117+
"MCOUNT",
118+
"MUCOUNT",
115119
"MALLTRUE",
116120
"MANYTRUE",
117121
"MSUM",

0 commit comments

Comments
 (0)