From 5844ac9125cc2830e3086382f7641f6f13f8715f Mon Sep 17 00:00:00 2001 From: han chiang Date: Sat, 23 Sep 2023 14:13:10 +0800 Subject: [PATCH] Include data for one year ago in crypo sentiment --- src/service/crypto/crypto_sentiment.py | 14 +++++++++++++- src/service/stocks_sentiment.py | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/service/crypto/crypto_sentiment.py b/src/service/crypto/crypto_sentiment.py index 6705266c..674ded1d 100644 --- a/src/service/crypto/crypto_sentiment.py +++ b/src/service/crypto/crypto_sentiment.py @@ -1,3 +1,4 @@ +import logging from statistics import mean from typing import List @@ -8,6 +9,7 @@ from src.util.date_util import parse from src.util.list_util import is_list_out_of_range +logger = logging.getLogger('Crypto sentiment service') class CryptoSentimentService: def __init__(self): self.alternativeme_service = AlternativeMeAPI().alternativeme_service @@ -32,6 +34,7 @@ def transform_data(self, data: AlternativeMeFearGreedIndex) -> List[FearGreedDat {'text': 'Last week', 'list_index': -8}, {'text': 'Last month', 'list_index': -31}, {'text': 'Last 3 months', 'list_index': -91}, + {'text': 'Last year', 'list_index': self._get_last_year_list_index(data=data)} ] res: List[FearGreedData] = [] @@ -59,7 +62,8 @@ def transform_average(self, data: AlternativeMeFearGreedIndex) -> List[FearGreed average_params = [ {'timeframe': '7d', 'list_end_index': -7}, {'timeframe': '30d', 'list_end_index': -30}, - {'timeframe': '90d', 'list_end_index': -90} + {'timeframe': '90d', 'list_end_index': -90}, + {'timeframe': '1 year', 'list_end_index': self._get_last_year_list_index(data=data)} ] res: List[FearGreedAverage] = [] @@ -83,6 +87,14 @@ def transform_average(self, data: AlternativeMeFearGreedIndex) -> List[FearGreed return res + def _get_last_year_list_index(self, data: AlternativeMeFearGreedIndex): + last_year_list_index = -365 + if len(data.data.datasets) > 200 and len(data.fear_and_greed_historical.data) < abs(last_year_list_index): + logger.info( + f'Last year list index is {last_year_list_index} while length of fear greed index is {len(data.fear_and_greed_historical.data)}. Setting last year list index to 0') + last_year_list_index = 0 + return last_year_list_index + # returns data in chronological order async def get_crypto_fear_greed_index_from_source(self, days=365) -> AlternativeMeFearGreedIndex: diff --git a/src/service/stocks_sentiment.py b/src/service/stocks_sentiment.py index 75aea27a..a94bf5cd 100644 --- a/src/service/stocks_sentiment.py +++ b/src/service/stocks_sentiment.py @@ -1,3 +1,4 @@ +import logging from statistics import mean from typing import List @@ -11,7 +12,7 @@ from src.util.list_util import is_list_out_of_range from src.util.logger import logger - +logger = logging.getLogger('Stocks sentiment service') class StocksSentimentService: def __init__(self): env = config.get_env()