python 量化交易 定义一个函数RSV(),得到一个将df数据增加一列rsv数据。

代码如下:

img

df数据如下:

img

rsv公式如下:

img
这个公式中的九日最低最高是怎样比较出来的。

因为要用近9天的历史数据,写一个循环,对收盘价数组切片取数,进行遍历计算就可以了。参考代码如下:

import pandas as pd
df=pd.read_excel('stock_002254.xlsx')
pd.set_option('max_rows',None)
def RSV(df):
    a=[]
    for i in range(len(df)):
        if i<=8:a.append(' ')
        else:
            a.append((df['close'][i]-min(df['close'][i-9:i-1]))/(max(df['close'][i-9:i-1]-min(df['close'][i-9:i-1]))))
    df['RSV']=a
    return df
print(RSV(df))

如果对你有帮助,请在我回答的右上方采纳按钮上点击采纳一下,谢谢。

新增一列数据的方法参考一下: DataFrame 新增列的五种方法_飞羽的博客-CSDN博客_dataframe 增加列 本文总结了平时对 pandas.DataFrame 进行新增列操作的五种方法:insert、reindex、loc、obj['col']、concat,并用代码演示出来。 https://blog.csdn.net/qq_35318838/article/details/102720553