def get_macd(sorted_data):
close,high,low,ma5,ma10,ma20 = get_case_data(sorted_data)
macd, macdsignal, macdhist = ta.MACD(close, fastperiod=10, slowperiod=22, signalperiod=9)
# macd, macdsignal, macdhist = ta.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
SignalMA5 = ta.MA(macdsignal, timeperiod=5, matype=0)
SignalMA10 = ta.MA(macdsignal, timeperiod=10, matype=0)
SignalMA20 = ta.MA(macdsignal, timeperiod=20, matype=0)
#2??? 1.DIFF?DEA????DIFF????DEA?????? 2.DIFF?DEA????DIFF????DEA??????
operator = ''
if macd[-1] > 0 and macdsignal[-1] > 0:
if macd[-1] > macdsignal[-1] and macd[-2] <= macdsignal[-2]:
operator += 'BX' #??
elif macd[-1] < 0 and macdsignal[-1] < 0:
if macd[-1] <= macdsignal[-2]:
operator += 'SX'
#DEA??k????????????
if ma5[-1] >= ma10[-1] and ma10[-1] >= ma20[-1]: #k???
if SignalMA5[-1] <= SignalMA10[-1] and SignalMA10[-1] <= SignalMA20[-1]: #DEA??
operator += 'S><'
if ma5[-1] <= ma10[-1] and ma10[-1] <= ma20[-1]: #k???
if SignalMA5[-1] >= SignalMA10[-1] and SignalMA10[-1] >= SignalMA20[-1]: #DEA??
operator += 'B><'
if macd[-1] > 0 and macdhist[-1] >0:
if macd[-1] > macd[-2] and macdhist[-1] > macdhist[-2]:
operator += 'B^'
elif macd[-1] < 0 and macdhist[-1] < 0:
if macd[-1] < macd[-2] and macdhist[-1] > macdhist[-2]:
operator += 'S^'
#??MACD??????????????
if macdhist[-1] > 0:
for i in range(1,7):
if macdhist[-2] <= 0:
operator += 'Bh'
break
if macdhist[-1] < 0:
for i in range(1,7):
if macdhist[-2] >= 0:
operator += 'Sh'
break
return (operator)
#??KDJ?????????
评论列表
文章目录