python历史涨停跌停次数统计

本文通过分析股票代码的开盘价、收盘价等数据,运用策略捕捉涨停和跌停时机,实现自动买入和盈利预测。展示了如何结合技术指标进行买卖操作,旨在揭示股票市场中的交易机会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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") 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒人编程学院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值