def get_kdj(sorted_data):
close,high,low,ma5,ma10,ma20 = get_case_data(sorted_data)
slowk, slowd = ta.STOCH(high,low,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)
operator = ''
#1.K???????——???90?????????10??????D??80???????????D??20???????????
if slowk[-1] >= 90:
operator += 'S9'
elif slowk[-1] <= 10:
operator += 'B1'
elif slowd[-1] >=80:
operator += 'S8'
elif slowd[-1] <= 20:
operator += 'B2'
#2.??????K???D??K?????D????????
if slowk[-1] > slowd[-1] and slowk[-2] <= slowd[-2]:
operator += 'BX'
elif slowk[-1] < slowd[-1] and slowk[-2] >= slowd[-2]:
operator += 'SX'
#3.???????????????????????
if ma5[-1] >= ma10[-1] and ma10[-1] >= ma20[-1]: #k???
if (slowkMA5[-1] <= slowkMA10[-1] and slowkMA10[-1] <= slowkMA20[-1]) or (slowdMA5[-1] <= slowdMA10[-1] and slowdMA10[-1] <= slowdMA20[-1]):
operator += 'S><'
elif ma5[-1] <= ma10[-1] and ma10[-1] <= ma20[-1]: #k???
if (slowkMA5[-1] >= slowkMA10[-1] and slowkMA10[-1] >= slowkMA20[-1]) or (slowdMA5[-1] >= slowdMA10[-1] and slowdMA10[-1] >= slowdMA20[-1]):
operator += 'B><'
return operator
评论列表
文章目录