import pandas as pd
df=pd.read_csv("000021.csv")
# print(df.head())
# df["日期"] = pd.to_datetime(df["日期"]) # 转为时间格式
# df.sort_values("日期", inplace=True) # 按日期正序排列
df['vol_ma5']=df["成交量"].rolling(window=5).mean()
df['vol_ma10']=df["成交量"].rolling(window=10).mean()
df['vol_ma20']=df["成交量"].rolling(window=20).mean()
df['vol_ma60']=df["成交量"].rolling(window=60).mean()
df['ma5']=df["收盘"].rolling(window=5).mean()
df['ma10']=df["收盘"].rolling(window=10).mean()
df['ma20']=df["收盘"].rolling(window=20).mean()
df['ma60']=df["收盘"].rolling(window=60).mean()
df['高低']=df['最高']-df['最低']
df['高收']=abs(df['最高']-df['收盘'].shift(1))
df['低收']=abs(df['最低']-df['收盘'].shift(1))
df['TR']=df[['高低','高收','低收']].abs().max(axis=1) #axis=1行计算
df['ATR'] = df['TR'].ewm(span=14, adjust=False).mean()
df['delta']=df['收盘'].diff()
df['gain']=df['delta'].where(df['delta']>0,0)
df['loss']=-df['delta'].where(df['delta']<0,0)
df['avg_gain']=df['gain'].rolling(14).mean()
df['avg_loss']=df['loss'].rolling(14).mean()
df['avg_loss'] = df['avg_loss'].replace(0, 1e-6)
df['rs']=df['avg_gain']/df['avg_loss']
df['rsi']=100-(100/(1+df['rs']))
df.to_csv("zzz.csv", index=False)
print(df.head(100))
import pandas as pd
df=pd.read_csv(“000021.csv”)
# print(df.head())
# df[“日期”] = pd.to_datetime(df[“日期”]) # 转为时间格式
# df.sort_values(“日期”, inplace=True) # 按日期正序排列
df[‘vol_ma5’]=df[“成交量”].rolling(window=5).mean()
df[‘vol_ma10’]=df[“成交量”].rolling(window=10).mean()
df[‘vol_ma20’]=df[“成交量”].rolling(window=20).mean()
df[‘vol_ma60’]=df[“成交量”].rolling(window=60).mean()
df[‘ma5’]=df[“收盘”].rolling(window=5).mean()
df[‘ma10’]=df[“收盘”].rolling(window=10).mean()
df[‘ma20’]=df[“收盘”].rolling(window=20).mean()
df[‘ma60’]=df[“收盘”].rolling(window=60).mean()
df[‘高低’]=df[‘最高’]-df[‘最低’]
df[‘高收’]=abs(df[‘最高’]-df[‘收盘’].shift(1))
df[‘低收’]=abs(df[‘最低’]-df[‘收盘’].shift(1))
df[‘TR’]=df[[‘高低’,’高收’,’低收’]].abs().max(axis=1) #axis=1行计算
df[‘ATR’] = df[‘TR’].ewm(span=14, adjust=False).mean()
df[‘delta’]=df[‘收盘’].diff()
df[‘gain’]=df[‘delta’].where(df[‘delta’]>0,0)
df[‘loss’]=-df[‘delta’].where(df[‘delta’]<0,0)
df[‘avg_gain’]=df[‘gain’].rolling(14).mean()
df[‘avg_loss’]=df[‘loss’].rolling(14).mean()
df[‘avg_loss’] = df[‘avg_loss’].replace(0, 1e-6)
df[‘rs’]=df[‘avg_gain’]/df[‘avg_loss’]
df[‘rsi’]=100-(100/(1+df[‘rs’]))
df.to_csv(“zzz.csv”, index=False)
print(df.head(100))