diff --git a/strategies/advances.py b/strategies/advances.py new file mode 100644 index 0000000..ca68a8d --- /dev/null +++ b/strategies/advances.py @@ -0,0 +1,22 @@ +from pandas import DataFrame, Series +from daily_data import get_daily_data + +def signals(data: DataFrame) -> Series: + """ + Generate long signals based on the Advance / Decline Ratio strategy. + + Returns a Series with 'L' for long signals and 'N' for no signal. + """ + above_200_ma = data['Close'] > data['Close'].rolling(window = 200).mean() + + start_date = data['Date'].min() + end_date = data['Date'].max() + advances = get_daily_data(symbol = 'IINA.Z', start_date = start_date, end_date = end_date) + declines = get_daily_data(symbol = 'IIND.Z', start_date = start_date, end_date = end_date) + + ratio = advances['Close'] / declines['Close'] + ratio_greater_than_2 = ratio >= 2 + + signals = Series('N', index = data.index) + signals[above_200_ma & ratio_greater_than_2] = 'L' + return signals \ No newline at end of file