INNER CODE UNIT · Python
macd_value
zoharbabin/quantum-trader · src/analysis/technical_analysis.py:40
macd_value = macd_line.iloc[-1] - signal_line.iloc[-1]
if pd.isna(macd_value):
macd_value = 0
# Calculate Bollinger Bands
upper_band, lower_band = self.bollinger_bands(3) # Use period=3 to match test data
current_price = self.data['close'].iloc[-1]
# Handle constant price case
if (self.data['close'] == self.data['close'].iloc[0]).all():
return 0.0
band_range = upper_band.iloc[-1] - lower_band.iloc[-1]
if band_range == 0 or pd.isna(band_range):
bb_position = 0.5
else:
bb_position = (current_price - lower_band.iloc[-1]) / band_range
bb_position = max(0, min(1, bb_position)) # Ensure between 0 and 1