import pandas as pd
import numpy as np
import talib
data = pd.DataFrame({
'close': [100, 105, 110, 115, 120, 115, 110, 105, 100, 95],
'high': [105, 110, 115, 120, 125, 120, 115, 110, 105, 100],
'low': [95, 100, 105, 110, 115, 110, 105, 100, 95, 90]
})
rsi_period = 14
macd_fast_period = 12
macd_slow_period = 26
macd_signal_period = 9
rsi = talib.RSI(data['close'], timeperiod=rsi_period)
macd, signal, _ = talib.MACD(data['close'], fastperiod=macd_fast_period, slowperiod=macd_slow_period, signalperiod=macd_signal_period)
def combine_signals(rsi, macd):
signals = []
for i in range(len(rsi)):
if rsi > 70 and macd > 0:
signals.append('Sell')
elif rsi < 30 and macd < 0:
signals.append('Buy')
else:
signals.append('Hold')
return signals
combined_signals = combine_signals(rsi, macd)
data['RSI'] = rsi
data['MACD'] = macd
data['Combined_Signal'] = combined_signals
print(data)