diff --git a/data_generator/tiingo_data_service.py b/data_generator/tiingo_data_service.py index ad54ae03d..8f7c3c76b 100644 --- a/data_generator/tiingo_data_service.py +++ b/data_generator/tiingo_data_service.py @@ -478,6 +478,9 @@ def tickers_to_tiingo_forex_url(tickers: List[str]) -> str: if verbose: print(f'hitting url for batch of {len(batch)} tickers: {url}') requestResponse = requests.get(url, headers={'Content-Type': 'application/json'}, timeout=5) + # TODO re-enable after tiingo badwidth + if requestResponse.status_code == 429: + continue if requestResponse.status_code == 200: lowest_delta = float('inf') for x in requestResponse.json(): @@ -581,6 +584,9 @@ def tickers_to_crypto_url(tickers: List[str]) -> str: print(f'hitting url for batch of {len(batch)} tickers: {url}') requestResponse = requests.get(url, headers={'Content-Type': 'application/json'}, timeout=5) + # TODO re-enable after tiingo badwidth + if requestResponse.status_code == 429: + continue if requestResponse.status_code != 200: bt.logging.warning(f"Tiingo crypto API request failed with status code {requestResponse.status_code}. " f"URL: {url[:100]}... Response: {requestResponse.text[:200]}") diff --git a/meta/meta.json b/meta/meta.json index 7390aae7b..c2309f9ad 100644 --- a/meta/meta.json +++ b/meta/meta.json @@ -1,3 +1,3 @@ { - "subnet_version": "8.8.9" + "subnet_version": "8.8.10" } diff --git a/vali_objects/position_management/position_utils/position_penalties.py b/vali_objects/position_management/position_utils/position_penalties.py index 513ecf217..74feb3499 100644 --- a/vali_objects/position_management/position_utils/position_penalties.py +++ b/vali_objects/position_management/position_utils/position_penalties.py @@ -217,7 +217,7 @@ def risk_adjusted_performance_penalty( score = metric_function( log_returns=log_returns, ledger=ledger, - # weighting=True, # discuss scoring weighting + weighting=True, # discuss scoring weighting days_in_year=days_in_year ) score = min(score, max_metric_value) diff --git a/vali_objects/vali_dataclasses/ledger/penalty/penalty_ledger.py b/vali_objects/vali_dataclasses/ledger/penalty/penalty_ledger.py index cab2391de..c21e10d6d 100644 --- a/vali_objects/vali_dataclasses/ledger/penalty/penalty_ledger.py +++ b/vali_objects/vali_dataclasses/ledger/penalty/penalty_ledger.py @@ -898,27 +898,14 @@ def build_penalty_ledgers(self, verbose: bool = False, delta_update: bool = True elif penalty_config.input_type == PenaltyInputType.ASSET_LEDGER: segmentation_machine = AssetSegmentation({miner_hotkey: ledger_dict}) - accumulated_penalty = 1 - - asset_class = self._asset_selection_client.get_asset_selections().get(miner_hotkey) + asset_class = self._asset_selection_client.get_asset_selection(miner_hotkey) if not asset_class: - accumulated_penalty = 0 + penalty_value = 0 else: - subcategories = ValiConfig.ASSET_CLASS_BREAKDOWN[asset_class].get("subcategory_weights", {}).keys() - - subcategory_penalties = [] - for subcategory in subcategories: - asset_ledger = segmentation_machine.segmentation(subcategory).get(miner_hotkey) - if not asset_ledger or not asset_ledger.cps: - continue - subcategory_penalty = penalty_config.function(asset_ledger, asset_class) - subcategory_penalties.append(subcategory_penalty) - - if subcategory_penalties: - category_penalty = sum(subcategory_penalties) / len(subcategory_penalties) - accumulated_penalty *= category_penalty - - penalty_value = accumulated_penalty + asset_ledger = segmentation_machine.segmentation(asset_class).get(miner_hotkey) + if not asset_ledger or not asset_ledger.cps: + continue + penalty_value = penalty_config.function(asset_ledger, asset_class) except Exception as e: if verbose: