yougandar commited on
Commit
dc26017
Β·
verified Β·
1 Parent(s): 7f632a8

Create crossover_agent.py

Browse files
Files changed (1) hide show
  1. crossover_agent.py +27 -0
crossover_agent.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from indicators import calculate_ema
2
+
3
+ class CrossoverAgent:
4
+ def run(self, df, short_window=50, long_window=200):
5
+ df = calculate_ema(df, short_window)
6
+ df = calculate_ema(df, long_window)
7
+ df = df.dropna(subset=[f"ema_{short_window}", f"ema_{long_window}"])
8
+
9
+ latest = df.iloc[-1]
10
+ prev = df.iloc[-2]
11
+
12
+ crossed_up = (
13
+ prev[f"ema_{short_window}"] < prev[f"ema_{long_window}"] and
14
+ latest[f"ema_{short_window}"] > latest[f"ema_{long_window}"]
15
+ )
16
+
17
+ crossed_down = (
18
+ prev[f"ema_{short_window}"] > prev[f"ema_{long_window}"] and
19
+ latest[f"ema_{short_window}"] < latest[f"ema_{long_window}"]
20
+ )
21
+
22
+ if crossed_up:
23
+ return {"crossover": "Bullish", "short": short_window, "long": long_window}
24
+ elif crossed_down:
25
+ return {"crossover": "Bearish", "short": short_window, "long": long_window}
26
+ else:
27
+ return {"crossover": "None", "short": short_window, "long": long_window}