File size: 588 Bytes
4e8ee46 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from indicators import calculate_ema
class RainbowAgent:
def run(self, df, windows=[10, 20, 30, 40, 50]):
for w in windows:
df = calculate_ema(df, w)
latest = df.iloc[-1]
values = [latest[f"ema_{w}"] for w in windows]
if all(earlier < later for earlier, later in zip(values, values[1:])):
signal = "Strong Uptrend"
elif all(earlier > later for earlier, later in zip(values, values[1:])):
signal = "Strong Downtrend"
else:
signal = "Sideways/Neutral"
return {"signal": signal}
|