@BigManWang # 处于近n天的低位
def get_relative_position_df(stock_list, date, watch_days, ratio):
if stock_list:
df = get_price(stock_list, end_date=date, fields=['high', 'low', 'close'], count=watch_days, fill_paused=False, skip_paused=False, panel=False).dropna()
close = df.groupby('code')['close'].last()
high = df.groupby('code')['high'].max()
low = df.groupby('code')['low'].min()
result = pd.DataFrame({
'rp': (close - low) / (high - low)
}, index=close.index)
else:
result = pd.DataFrame(columns=['rp'])
result = result[result['rp'] >= ratio]
low_n_pos_list = list(result.index)
return low_n_pos_list
2025-05-27