我对Python还比较陌生,所以请原谅这个可能很琐碎的问题。你知道吗
我试图在我为特定期货合约计算的RSI
值发生变化的情况下产生买入和卖出信号。在我的DataFrame
中,我创建了一个名为R S
I的列,其中包含我正在引用的值,我要做的是根据预定的逻辑检查每个正在进行的值,如果满足该条件,则生成“买入”或“卖出”,然后为生成的每个信号增加一个计数。i、 例如,我设想一个解决方案,使用for
循环比较[i]
和[i+1]
,但我得到一个错误,它显示-
TypeError: cannot do label indexing on class'pandas.indexes.range.RangeIndex with these indexers [25.714285714285722] of class 'numpy.float64'
这是我的密码
for i in es.RSI:
Buy = 0
Sell = 0
if es.RSI[i] < 30.0 and es.RSI[i+1] >30.0:
es.RSI[i] = "Buy"
Buy = Buy +1
if es.RSI[i] >70.0 and es.RSI[i+1] < 70.0 :
es.RSI[i] = "Sell"
Sell = Sell +1
你的回路
迭代
er.RSI
数组中的项,因此i
包含RSI的值,而不是数组的索引。所以你才会看到这个错误要遍历数组索引,应该使用
基于此错误,看起来您正在使用浮点值作为数组索引值。或许可以尝试替换
与
(同样的道理内耳鼻咽喉炎[i+1],替换为内耳鼻咽喉炎[int(i)+1]。)
相关问题 更多 >
编程相关推荐