import os
arrZhangTing=[
[[0,4],[]],
[[5,10],[]],
[[10,20],[]],
[[20,50],[]],
[[100,9999],[]]
]
arrDieTing=[
[[0,4],[]],
[[5,10],[]],
[[10,20],[]],
[[20,50],[]],
[[100,9999],[]]
]
strZhangTingDate=""
strDieTingDate=""
nEarn=0
nTotalEarn=0
nBuy=0
nSell=0
strBuyDate=""
strPrebuyDate=False#准备买入
bPreSell=False
bPreBuy=False
strSellDate=""
strOutput=""
nMoney=0
for root,dirs,files in os.walk(r"..\\txt"):
for file in files:
nZhangTing=0
nDieTing=0
strCode=os.path.join(root,file)[-10:-4]
#if(strCode!="000029"):
# continue
#print("股票代码:"+strCode)
strOutput+="股票代码:"+strCode+"\n"
date1=""
nStart1=0#第一天开盘价
nEnd1=0#最后一天收盘价
nUpDay=0
nDownDay=0
nTotalDay=0
nTotalMin=999
nTotalMax=0
strMinDate=""
nOldEnd=0
nOldDeal=0
arrLine=[]
for line in open(os.path.join(root,file)):
if(line.find("日线")>0):
arrHead=line.split(" ")
if len(arrHead)>1:
strCode=arrHead[0]
strName=arrHead[1]
arr=line.split(",")
if len(arr)>1:
nTotalDay=nTotalDay+1
nYear=int(line[0:4])
strDate=arr[0]
if(date1==""):
date1=arr[0]
nStart=float(arr[1])#开盘
if(nStart1==0):
nStart1=nStart
nMax=float(arr[2])#最高
nMin=float(arr[3])#最低
nEnd=float(arr[4])#收盘
nDeal=float(arr[5])#成交量
#放量涨,准备买入
if(nOldDeal>0):
if(nDeal/nOldDeal>5 and nEnd-nOldEnd>0):
strPrebuyDate=strDate
bPreBuy=True#准备买入
#print("准备买入:"+strDate)
#strOutput+="准备买入:"+strDate+"\n"
nBuy=nEnd*100
nMoney+=nBuy
strBuyDate=strDate
bPreBuy=False
bPreSell=True
strPrebuyDate=""
#print("买入价格:"+str(nEnd))
#print("买入日期:"+strDate)
strOutput+="买入价格:"+str(nEnd)+"\n"
strOutput+="买入日期:"+strDate+"\n"
#卖出
if(bPreSell and nBuy!=0 and nEnd-nOldEnd<0 and strBuyDate!=strDate and nEnd*100>nBuy*3):
nSell=nEnd*100
nEarn=nSell-nBuy
nTotalEarn+=nEarn
nBuy=0
nSell=0
strBuyDate=""
bPreSell=False
#print("卖出价格:"+str(nEnd))
#print("卖出日期:"+strDate)
#print("盈利:"+str(nEarn))
strOutput+="卖出价格:"+str(nEnd)+"\n"
strOutput+="卖出日期:"+strDate+"\n"
strOutput+="盈利:"+str(nEarn)+"\n"
arr=[nStart,nEnd,nMin,nMax]
arrLine.append(arr)
#涨停板
if( round(nOldEnd*1.1,2)<=nEnd):
bZhangTing=True
nZhangTing=nZhangTing+1
strZhangTingDate+=strDate+"涨停\n"
else:
bZhangTing=False
#跌停板
if( round(nOldEnd*0.9,2)>=nEnd):
bDieTing=True
nDieTing=nDieTing+1
strDieTingDate+=strDate+"跌停\n"
else:
bDieTing=False
nOldEnd=nEnd
nOldDeal=nDeal
for zhangTing in arrZhangTing:
if(zhangTing[0][0]<=nZhangTing and zhangTing[0][1]>=nZhangTing ):
zhangTing[1].append(strCode+strName+":"+str(nZhangTing))
for dieTing in arrDieTing:
if(dieTing[0][0]<=nDieTing and dieTing[0][1]>=nDieTing ):
dieTing[1].append(strCode+strName+":"+str(nDieTing))
for zhangTing in arrZhangTing:
with open("历史涨停次数统计("+str(zhangTing[0][0])+").txt","a") as file1:
for codename in zhangTing[1]:
file1.write(codename)
file1.write("\n")
for dieTing in arrDieTing:
with open("历史跌停次数统计("+str(dieTing[0][0])+").txt","a") as file1:
for codename in dieTing[1]:
file1.write(codename)
file1.write("\n")