virgo-modules 0.2.2__tar.gz → 0.2.4__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.2.2 → virgo_modules-0.2.4}/PKG-INFO +1 -1
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/setup.py +1 -1
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/re_utils.py +4 -1
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/ticketer_source.py +49 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules.egg-info/PKG-INFO +1 -1
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/LICENSE +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/README.md +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/setup.cfg +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/__init__.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/__init__.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/aws_utils.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/backtester.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/edge_utils.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/hmm_utils.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/pull_artifacts.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/transformer_utils.py +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules.egg-info/SOURCES.txt +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules.egg-info/dependency_links.txt +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules.egg-info/requires.txt +0 -0
- {virgo_modules-0.2.2 → virgo_modules-0.2.4}/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.2.
|
|
8
|
+
version="0.2.4",
|
|
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"),
|
|
@@ -760,7 +760,10 @@ def get_data(ticker_name:str, ticket_settings:dict, n_days:int = False, hmm_avai
|
|
|
760
760
|
object_stock.cluster_hmm_analysis( n_clusters = ticket_settings['settings']['hmm']['n_clusters'],
|
|
761
761
|
features_hmm = ticket_settings['settings']['hmm']['features_hmm'],
|
|
762
762
|
test_data_size = ticket_settings['settings']['hmm']['test_data_size'],
|
|
763
|
-
seed = ticket_settings['settings']['hmm']['seed']
|
|
763
|
+
seed = ticket_settings['settings']['hmm']['seed'],
|
|
764
|
+
corr_threshold = ticket_settings['settings']['hmm'].get('corr_threshold',0.75),
|
|
765
|
+
lag_returns_state = ticket_settings['settings']['hmm'].get('lag_returns_state',7),
|
|
766
|
+
)
|
|
764
767
|
|
|
765
768
|
return object_stock
|
|
766
769
|
|
|
@@ -173,6 +173,8 @@ class stock_eda_panel(object):
|
|
|
173
173
|
perform additional asset ROC feature, then a new feature is created in the main dataframe
|
|
174
174
|
produce_order_features(feature_name=str, save_features=boolean):
|
|
175
175
|
perform a feature that captures high and low values in an index. this is usefull to know duration/persistence of a signal
|
|
176
|
+
compute_last_signal (feature_name=str, save_features=boolean):
|
|
177
|
+
perform a feature that captures high and low values in an index. this is usefull to know duration/persistence of a signal
|
|
176
178
|
create_hmm_derived_features():
|
|
177
179
|
create features derived from hmm states features. Features are the index of the state, the duration of the state, chain raturn
|
|
178
180
|
cluster_hmm_analysis(n_clusters=int,features_hmm=list, test_data_size=int, seed=int, lag_returns_state=int, plot=boolean, save_features=boolean, model=obj):
|
|
@@ -1383,6 +1385,53 @@ class stock_eda_panel(object):
|
|
|
1383
1385
|
self.signals.append(signal_feature_name)
|
|
1384
1386
|
self.signals.append(order_feature_name)
|
|
1385
1387
|
|
|
1388
|
+
def compute_last_signal(self,feature, save_features = False):
|
|
1389
|
+
"""
|
|
1390
|
+
perform two new features when signal is observed, one for the last duration of the previous chain, second for the last duration of the same sign signal
|
|
1391
|
+
|
|
1392
|
+
Parameters
|
|
1393
|
+
----------
|
|
1394
|
+
feature_name (str): name of the feature
|
|
1395
|
+
save_features (boolean): True to save feature configuration and feature names
|
|
1396
|
+
|
|
1397
|
+
Returns
|
|
1398
|
+
-------
|
|
1399
|
+
None
|
|
1400
|
+
"""
|
|
1401
|
+
def create_last_signal(df, feature, prefix, type ='0'):
|
|
1402
|
+
if type == '0':
|
|
1403
|
+
condition = df[f'order_signal_{feature}'] != 0
|
|
1404
|
+
elif type == '+':
|
|
1405
|
+
condition = df[f'order_signal_{feature}'] > 0
|
|
1406
|
+
elif type == '-':
|
|
1407
|
+
condition = df[f'order_signal_{feature}'] < 0
|
|
1408
|
+
df[f'last_maxorder_{feature}'] = np.where(condition, df[f'order_signal_{feature}'],np.nan)
|
|
1409
|
+
df['tmp_chain_index'] = df[f'last_maxorder_{feature}'].shift(-1)
|
|
1410
|
+
df['last'] = np.where((df[f'last_maxorder_{feature}'] != 0) & (df['tmp_chain_index'].isna()),df[f'last_maxorder_{feature}'], np.nan )
|
|
1411
|
+
df['last'] = df['last'].shift(1)
|
|
1412
|
+
df[f'last_maxorder_{feature}'] = df['last'].fillna(method = 'ffill')
|
|
1413
|
+
df = df.drop(columns = ['tmp_chain_index','last'])
|
|
1414
|
+
df[f'last_maxorder_{feature}'] = np.where(df[f'order_signal_{feature}'] != 0,df[f'last_maxorder_{feature}'],np.nan)
|
|
1415
|
+
df[f'last_maxorder_{feature}'] = df[f'last_maxorder_{feature}'].fillna(0)
|
|
1416
|
+
df = df.rename(columns = {f'last_maxorder_{feature}':f'{prefix}_{feature}'})
|
|
1417
|
+
return df
|
|
1418
|
+
prefix0, prefix1, prefix2 = 'ldur', 'pos', 'neg'
|
|
1419
|
+
self.df = create_last_signal(self.df, feature, prefix0, type ='0')
|
|
1420
|
+
self.df = create_last_signal(self.df, feature, prefix1, type ='+')
|
|
1421
|
+
self.df = create_last_signal(self.df, feature, prefix2, type ='-')
|
|
1422
|
+
|
|
1423
|
+
self.df[f'sldur_{feature}'] = np.where(
|
|
1424
|
+
self.df[f'order_signal_{feature}'] > 0, self.df[f'{prefix1}_{feature}'],
|
|
1425
|
+
np.where(
|
|
1426
|
+
self.df[f'order_signal_{feature}'] < 0, self.df[f'{prefix2}_{feature}'],
|
|
1427
|
+
0
|
|
1428
|
+
)
|
|
1429
|
+
)
|
|
1430
|
+
self.df = self.df.drop(columns = [f'{prefix1}_{feature}',f'{prefix2}_{feature}'])
|
|
1431
|
+
if save_features:
|
|
1432
|
+
self.signals.append(f'sldur_{feature}')
|
|
1433
|
+
self.signals.append(f'ldur_{feature}')
|
|
1434
|
+
|
|
1386
1435
|
def create_hmm_derived_features(self, lag_returns):
|
|
1387
1436
|
"""
|
|
1388
1437
|
create features derived from hmm states features. Features are the index of the state, the duration of the state, chain raturn
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules/src/transformer_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{virgo_modules-0.2.2 → virgo_modules-0.2.4}/virgo_app/virgo_modules.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|