def Get_RSI(df):
#??14,5
slowreal = ta.RSI(np.array(df['close']), timeperiod=14)
fastreal = ta.RSI(np.array(df['close']), timeperiod=5)
slowrealMA5 = ta.MA(slowreal, timeperiod=5, matype=0)
slowrealMA10 = ta.MA(slowreal, timeperiod=10, matype=0)
slowrealMA20 = ta.MA(slowreal, timeperiod=20, matype=0)
fastrealMA5 = ta.MA(fastreal, timeperiod=5, matype=0)
fastrealMA10 = ta.MA(fastreal, timeperiod=10, matype=0)
fastrealMA20 = ta.MA(fastreal, timeperiod=20, matype=0)
#18-19 ??real???real
df['slowreal']=pd.Series(slowreal,index=df.index) #??real 18
df['fastreal']=pd.Series(fastreal,index=df.index)#??real 19
dflen = df.shape[0]
MAlen = len(slowrealMA5)
operate = 0
#RSI>80?????RSI<20????
if df.iat[(dflen-1),18]>80 or df.iat[(dflen-1),19]>80:
operate = operate - 2
elif df.iat[(dflen-1),18]<20 or df.iat[(dflen-1),19]<20:
operate = operate + 2
#RSI??50???????????50????????
if (df.iat[(dflen-2),18]<=50 and df.iat[(dflen-1),18]>50) or (df.iat[(dflen-2),19]<=50 and df.iat[(dflen-1),19]>50):
operate = operate + 4
elif (df.iat[(dflen-2),18]>=50 and df.iat[(dflen-1),18]<50) or (df.iat[(dflen-2),19]>=50 and df.iat[(dflen-1),19]<50):
operate = operate - 4
#RSI??????????RSI?????????
if df.iat[(dflen-1),7]>=df.iat[(dflen-1),8] and df.iat[(dflen-1),8]>=df.iat[(dflen-1),9]:#K???
if (slowrealMA5[MAlen-1]<=slowrealMA10[MAlen-1] and slowrealMA10[MAlen-1]<=slowrealMA20[MAlen-1]) or \
(fastrealMA5[MAlen-1]<=fastrealMA10[MAlen-1] and fastrealMA10[MAlen-1]<=fastrealMA20[MAlen-1]): #RSI??
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 (slowrealMA5[MAlen-1]>=slowrealMA10[MAlen-1] and slowrealMA10[MAlen-1]>=slowrealMA20[MAlen-1]) or \
(fastrealMA5[MAlen-1]>=fastrealMA10[MAlen-1] and fastrealMA10[MAlen-1]>=fastrealMA20[MAlen-1]): #RSI??
operate = operate + 1
#?????????????????????????????????????????????????????????????????
if df.iat[(dflen-1),19]> df.iat[(dflen-1),18] and df.iat[(dflen-2),19]<=df.iat[(dflen-2),18]:
operate = operate + 10
elif df.iat[(dflen-1),19]< df.iat[(dflen-1),18] and df.iat[(dflen-2),19]>=df.iat[(dflen-2),18]:
operate = operate - 10
return (df,operate)
评论列表
文章目录