virgo-modules 0.3.2__tar.gz → 0.3.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.
Potentially problematic release.
This version of virgo-modules might be problematic. Click here for more details.
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/PKG-INFO +1 -1
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/setup.py +1 -1
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/ticketer_source.py +38 -3
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/PKG-INFO +1 -1
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/LICENSE +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/README.md +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/setup.cfg +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/__init__.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/__init__.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/aws_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/backtester.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/__init__.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/conformal_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/edge_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/shap_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/hmm_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/pull_artifacts.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/re_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/transformer_utils.py +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/SOURCES.txt +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/dependency_links.txt +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/requires.txt +0 -0
- {virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/top_level.txt +0 -0
|
@@ -5,7 +5,7 @@ with open("virgo_app/README.md", "r") as f:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name="virgo_modules",
|
|
8
|
-
version="0.3.
|
|
8
|
+
version="0.3.5",
|
|
9
9
|
description="data processing and statistical modeling using stock market data",
|
|
10
10
|
package_dir={"": "virgo_app"},
|
|
11
11
|
packages=find_packages(where="virgo_app"),
|
|
@@ -1400,6 +1400,39 @@ class stock_eda_panel(object):
|
|
|
1400
1400
|
if save_features:
|
|
1401
1401
|
self.signals.append(signal_feature_name)
|
|
1402
1402
|
self.signals.append(order_feature_name)
|
|
1403
|
+
|
|
1404
|
+
def get_order_feature_nosignal(self,feature_name, save_features=False):
|
|
1405
|
+
"""
|
|
1406
|
+
perform a feature that captures number of steps after the end of a signal
|
|
1407
|
+
|
|
1408
|
+
Parameters
|
|
1409
|
+
----------
|
|
1410
|
+
feature_name (str): name of the feature
|
|
1411
|
+
save_features (boolean): True to save feature configuration and feature names
|
|
1412
|
+
|
|
1413
|
+
Returns
|
|
1414
|
+
-------
|
|
1415
|
+
None
|
|
1416
|
+
"""
|
|
1417
|
+
order_feature_name = f'order_signal_{feature_name}'
|
|
1418
|
+
ns_order_feature_name = f'ns_order_{feature_name}'
|
|
1419
|
+
self.df = self.df.sort_values('Date')
|
|
1420
|
+
self.df['lag_'] = self.df[order_feature_name].shift(1)
|
|
1421
|
+
self.df['flag'] = np.where((self.df[order_feature_name] == 0) & (self.df['lag_']!=0),1,np.nan)
|
|
1422
|
+
self.df = self.df.drop(columns=['lag_'])
|
|
1423
|
+
self.df['order_'] = self.df.sort_values('Date').groupby(['flag']).cumcount() + 1
|
|
1424
|
+
self.df['order_'] = self.df['order_'].fillna(method='ffill')
|
|
1425
|
+
self.df['order_'] = np.where(self.df[order_feature_name]==0,self.df['order_'],0)
|
|
1426
|
+
self.df = self.df.drop(columns=['flag'])
|
|
1427
|
+
self.df['order_'] = self.df.sort_values('Date').groupby(['order_']).cumcount() + 1
|
|
1428
|
+
norm_list = [f'norm_{feature_name}', f'z_{feature_name}', feature_name]
|
|
1429
|
+
for norm_feature in norm_list:
|
|
1430
|
+
self.df['order_'] = np.sign(self.df[norm_feature])*self.df['order_']
|
|
1431
|
+
break
|
|
1432
|
+
self.df['order_'] = np.where(self.df[order_feature_name]==0,self.df['order_'],0)
|
|
1433
|
+
self.df = self.df.rename(columns={'order_':ns_order_feature_name})
|
|
1434
|
+
if save_features:
|
|
1435
|
+
self.signals.append(ns_order_feature_name)
|
|
1403
1436
|
|
|
1404
1437
|
def compute_last_signal(self,feature, save_features = False):
|
|
1405
1438
|
"""
|
|
@@ -1815,7 +1848,7 @@ class stock_eda_panel(object):
|
|
|
1815
1848
|
self.target.append(f'mean_target')
|
|
1816
1849
|
self.settings_target_lasts = {'steps':steps, 'type':'regression'}
|
|
1817
1850
|
|
|
1818
|
-
def get_categorical_targets(self, horizon, flor_loss, top_gain):
|
|
1851
|
+
def get_categorical_targets(self, horizon, flor_loss, top_gain, min_pos=1 , min_negs=1):
|
|
1819
1852
|
"""
|
|
1820
1853
|
produce binary target return taking future prices. it produce two targets, one for high returns and another for low returns
|
|
1821
1854
|
|
|
@@ -1824,6 +1857,8 @@ class stock_eda_panel(object):
|
|
|
1824
1857
|
horizon (int): number of lags and steps for future returns
|
|
1825
1858
|
flor_loss (float): min loss return
|
|
1826
1859
|
top_gain (float): max gain return
|
|
1860
|
+
min_pos (int): minimun number of positives to count in a window for target_up
|
|
1861
|
+
min_negs (int): minimun number of negatives to count in a window for target_down
|
|
1827
1862
|
|
|
1828
1863
|
Returns
|
|
1829
1864
|
-------
|
|
@@ -1841,7 +1876,7 @@ class stock_eda_panel(object):
|
|
|
1841
1876
|
self.df[f'target_{i}'] = np.where(self.df[f'target_{i}'] >= top_gain,1,0)
|
|
1842
1877
|
columns.append(f'target_{i}')
|
|
1843
1878
|
self.df[f'target_up'] = self.df[columns].sum(axis=1)
|
|
1844
|
-
self.df[f'target_up'] = np.where(self.df[f'target_up'] >=
|
|
1879
|
+
self.df[f'target_up'] = np.where(self.df[f'target_up'] >=min_pos,1,0 )
|
|
1845
1880
|
self.df = self.df.drop(columns = columns)
|
|
1846
1881
|
|
|
1847
1882
|
for i in range(1,horizon+1):
|
|
@@ -1851,7 +1886,7 @@ class stock_eda_panel(object):
|
|
|
1851
1886
|
self.df[f'target_{i}'] = np.where(self.df[f'target_{i}'] <= flor_loss,1,0)
|
|
1852
1887
|
columns.append(f'target_{i}')
|
|
1853
1888
|
self.df[f'target_down'] = self.df[columns].sum(axis=1)
|
|
1854
|
-
self.df[f'target_down'] = np.where(self.df[f'target_down'] >=
|
|
1889
|
+
self.df[f'target_down'] = np.where(self.df[f'target_down'] >= min_negs,1,0 )
|
|
1855
1890
|
self.df = self.df.drop(columns = columns)
|
|
1856
1891
|
|
|
1857
1892
|
self.targets.append('target_up')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/edge_utils.py
RENAMED
|
File without changes
|
{virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/edge_utils/shap_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules/src/transformer_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{virgo_modules-0.3.2 → virgo_modules-0.3.5}/virgo_app/virgo_modules.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|