【发布时间】:2020-11-10 05:45:39
【问题描述】:
我正在尝试为股票图表创建支撑和阻力。但是,我收到了这个错误。 这是我的代码:
def isResistance(df,i):
resistance = df['High'][i] > df['High'][i-1] and df['High'][i] > df['High'][i+1] \
and df['High'][i] > df['High'][i+2] and df['High'][i] > df['High'][i-2] \
and df['High'][i] > df['High'][i+3] and df['High'][i] > df['High'][i-3]
return resistance
我正在尝试通过使用以下方式获取所有支撑和阻力列表:
levels = []
for i in range(2,df.shape[0]-2):
if isSupport(df,i):
levels.append((i,df['Low'][i]))
elif isResistance(df,i):
levels.append((i,df['High'][i]))
那么这个部分就出现了错误:
and df['High'][i] > df['High'][i+3] and df['High'][i] > df['High'][i-3]
但是,在这段代码中没有任何错误:
def isSupport(df,i):
support = df['Low'][i] < df['Low'][i-1] and df['Low'][i] < df['Low'][i+1] \
and df['Low'][i] < df['Low'][i+2] and df['Low'][i] < df['Low'][i-2] \
and df['Low'][i] < df['Low'][i+3] and df['Low'][i] < df['Low'][i-3]
return support
你有解决这个问题的想法吗? 谢谢
【问题讨论】:
-
假设 df 是 Pandas 数据帧,难道不应该通过利用某种切片 + 广播来用更少的代码来做到这一点吗?
all(df['High'][i] > df['High'][i-3:i+4])之类的东西(除了我完全不确定 Pandas 切片是如何工作的......)