def KST(df, r1, r2, r3, r4, n1, n2, n3, n4, s):
M = df['Close'].diff(r1)
N = df['Close'].shift(r1)
ROC1 = (M/N)*100
M = df['Close'].diff(r2)
N = df['Close'].shift(r2)
ROC2 = (M/N)*100
M = df['Close'].diff(r3)
N = df['Close'].shift(r3)
ROC3 = (M/N)*100
M = df['Close'].diff(r4)
N = df['Close'].shift(r4)
ROC4 = (M/N)*100
KST = pd.Series(pd.rolling_mean(ROC1, n1) +
pd.rolling_mean(ROC2, n2) * 2 +
pd.rolling_mean(ROC3, n3) * 3 +
pd.rolling_mean(ROC4, n4) * 4, name = 'KST')
Sig = pd.Series(pd.rolling_mean(KST, s), name='Signal')
print KST, Sig
df = df.join(KST)
df = df.join(Sig)
return df
评论列表
文章目录