def Get_KDJ(df):
#??9,3,3
slowk, slowd = ta.STOCH(np.array(df['high']), np.array(df['low']), np.array(df['close']), fastk_period=9, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
slowkMA5 = ta.MA(slowk, timeperiod=5, matype=0)
slowkMA10 = ta.MA(slowk, timeperiod=10, matype=0)
slowkMA20 = ta.MA(slowk, timeperiod=20, matype=0)
slowdMA5 = ta.MA(slowd, timeperiod=5, matype=0)
slowdMA10 = ta.MA(slowd, timeperiod=10, matype=0)
slowdMA20 = ta.MA(slowd, timeperiod=20, matype=0)
#16-17 K,D
df['slowk']=pd.Series(slowk,index=df.index) #K
df['slowd']=pd.Series(slowd,index=df.index)#D
dflen = df.shape[0]
MAlen = len(slowkMA5)
operate = 0
#1.K???????——???90?????????10??????D??80???????????D??20???????????
if df.iat[(dflen-1),16]>=90:
operate = operate + 3
elif df.iat[(dflen-1),16]<=10:
operate = operate - 3
if df.iat[(dflen-1),17]>=80:
operate = operate + 3
elif df.iat[(dflen-1),17]<=20:
operate = operate - 3
#2.??????K???D??K?????D?????????#???
if df.iat[(dflen-1),16]> df.iat[(dflen-1),17] and df.iat[(dflen-2),16]<=df.iat[(dflen-2),17]:
operate = operate + 10
#??????K??D?K?????D?????????#???
elif df.iat[(dflen-1),16]< df.iat[(dflen-1),17] and df.iat[(dflen-2),16]>=df.iat[(dflen-2),17]:
operate = operate - 10
#3.???????????????????????
if df.iat[(dflen-1),7]>=df.iat[(dflen-1),8] and df.iat[(dflen-1),8]>=df.iat[(dflen-1),9]:#K???
if (slowkMA5[MAlen-1]<=slowkMA10[MAlen-1] and slowkMA10[MAlen-1]<=slowkMA20[MAlen-1]) or \
(slowdMA5[MAlen-1]<=slowdMA10[MAlen-1] and slowdMA10[MAlen-1]<=slowdMA20[MAlen-1]): #K,D??
operate = operate - 1
elif df.iat[(dflen-1),7]<=df.iat[(dflen-1),8] and df.iat[(dflen-1),8]<=df.iat[(dflen-1),9]:#K???
if (slowkMA5[MAlen-1]>=slowkMA10[MAlen-1] and slowkMA10[MAlen-1]>=slowkMA20[MAlen-1]) or \
(slowdMA5[MAlen-1]>=slowdMA10[MAlen-1] and slowdMA10[MAlen-1]>=slowdMA20[MAlen-1]): #K,D??
operate = operate + 1
return (df,operate)
#??RSI??????
评论列表
文章目录