예제 #1
0
 def analyze_moving_averages(self, coin_pair, period_count=20, time_unit='5m'):
     ma_analyzer = MovingAverages()
     historical_data = self.exchange_aggregator.get_historical_data(
         coin_pair=coin_pair,
         period_count=period_count,
         time_unit=time_unit
     )
     sma_value = ma_analyzer.calculate_sma(period_count, historical_data)
     ema_value = ma_analyzer.calculate_ema(period_count, historical_data)
     return sma_value, ema_value
예제 #2
0
 def analyze_moving_averages(self, market_pair, period_count=20, time_unit='5m'):
     ma_analyzer = MovingAverages()
     historical_data = self.exchange_interface.get_historical_data(
         market_pair=market_pair,
         period_count=period_count,
         time_unit=time_unit
     )
     sma_value = ma_analyzer.calculate_sma(period_count, historical_data)
     ema_value = ma_analyzer.calculate_ema(period_count, historical_data)
     return sma_value, ema_value
예제 #3
0
class BollingerBands(object):
    """
    Bollinger Bands
    """

    def __init__(self):
        self.logger = structlog.get_logger()
        self.utils = Utils()
        self.sma = MovingAverages()

    '''
    Retrieves the upper and lower bollinger bands for the given parameters:

    :param historical_data: A list of historical data points for a coin pair
    :param period: The period of the moving average to be used in bollinger calculation (defaults to 21)
    :param k: The number of standard deviations away from the 'period'-length moving average
              to place the upper and lower band (defaults to 2)

    :returns A 2-element tuple containing the upper and lower band, respectively.
    '''

    def get_bollinger_bands(self, historical_data, period=21, k=2):
        sma = self.sma.calculate_sma(period, historical_data)
        closing_prices = self.utils.get_closing_prices(historical_data)
        std_dev = np.std(closing_prices[-period:])

        return sma + k * std_dev, sma - k * std_dev
예제 #4
0
    def analyze_ema(self, market_pair, exchange, hot_thresh=0, cold_thresh=0):
        ma_analyzer = MovingAverages()

        period_count = 15

        historical_data = self.day_historical_data[0:period_count]

        ema_value = ma_analyzer.get_ema_value(period_count, historical_data)

        is_ema_trending = ma_analyzer.is_ema_trending(ema_value, hot_thresh)

        ema_data = {
            'values': (ema_value,),
            'is_hot': is_ema_trending,
            'is_cold': False
        }

        return ema_data
예제 #5
0
    def analyze_sma(self, historial_data, hot_thresh=0, cold_thresh=0):
        ma_analyzer = MovingAverages()

        period_count = 15

        sma_historical_data = historial_data[0:period_count]

        sma_value = ma_analyzer.get_sma_value(period_count,
                                              sma_historical_data)

        is_sma_trending = ma_analyzer.is_sma_trending(sma_value, hot_thresh)

        sma_data = {
            'values': (sma_value, ),
            'is_hot': is_sma_trending,
            'is_cold': False
        }

        return sma_data
예제 #6
0
    def analyze_moving_averages(self, market_pair, exchange):

        ma_analyzer = MovingAverages()

        period_count = self.ma_config["period_count"]
        historical_data = self.__exchange_interface.get_historical_data(
            market_pair=market_pair,
            exchange=exchange,
            period_count=period_count,
            time_unit=self.ma_config["time_unit"])

        sma_value = ma_analyzer.get_sma_value(period_count, historical_data)
        ema_value = ma_analyzer.get_ema_value(period_count, historical_data)

        is_sma_trending = ma_analyzer.is_sma_trending(
            sma_value, self.ma_config["sma_threshold"])
        is_ema_trending = ma_analyzer.is_ema_trending(
            ema_value, self.ma_config["ema_threshold"])

        ma_data = {
            'sma_value': sma_value,
            'ema_value': ema_value,
            'is_sma_trending': is_sma_trending,
            'is_ema_trending': is_ema_trending
        }

        return ma_data
예제 #7
0
 def __init__(self):
     self.logger = structlog.get_logger()
     self.utils = Utils()
     self.sma = MovingAverages()