python如何实现
取4个列表值,hongda,lvxiao,hongxiao,lvda。
数据源用tushare获取,以双均线ma30, ma60为例
有两条线,绿线a,红线b。
当a<= b死叉到a<= b金叉(红色云)时,取b的最大值添加到(hongda)里,a的最小值添加到(lvxiao)里。
当a>= b金叉到a<= b死叉(绿色云)时,取a的最大值添加到(lvda)里,b的最小值添加到( hongxiao)里。
当a, b两条线值连续(两次以上)相等时。
如果后面是死叉(红色云),添加一个值在( hongda)和(lvxiao)列表里
如果后面是金叉(绿色云),添加一个值在( hong xiao)和( lvda)列表里
jingcha=list()
shicha=list()
for i in range(52,b.shape[0]):
zt5=a[i-1]
zt20 = b[i - 1]
jt5 = a[i]
jt20 = b[i]
if zt5<=zt20 and jt5>=jt20:
jingcha.append(i)
#print(jingcha,'金叉',b[jingcha])
elif zt5>=zt20 and jt5<=jt20:
shicha.append(i)
bd=list()
ad=list()
bx=list()
ax=list()
k=sorted(jingcha+shicha)
for f in range(len(k)-1):
#if shicha[f] < jingcha[f]:
bd.append(max(b[k[f]:k[f+1]]))
ad.append(max(a[k[f]:k[f + 1]]))
bx.append(min(b[k[f]:k[f+1]]))
ax.append(min(a[k[f]:k[f + 1]]))
bbd=list(np.round(np.array(bd),2))
aad=list(np.round(np.array(ad),2))
bbx=list(np.round(np.array(bx),2))
aax=list(np.round(np.array(ax),2))
hongda=list()
luxiao=list()
luda=list()
hongxiao=list()
for l in range(len(bbd)):
if bbd[l]-aad[l]>=0:
hongda.append(bbd[l])
for q in range(len(bbx)):
if aad[q]-bbd[q] >= 0:
hongxiao.append(bbx[q])
for z in range(len(aad)):
if aax[z]-bbx[z]>=0:
luda.append(aad[z])
for g in range(len(aax)):
if aax[g]-bbx[g]<=0:
luxiao.append(aax[g])
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。