计算数据 MA VOL-MA ATR RSI

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))

此条目发表在None分类目录。将固定链接加入收藏夹。

发表回复