python爬取連續一字板股票及當時日期數據【原創分享】


  本篇為個人測試記錄,記錄爬取連續一字板的股票及當時日期。

 

import tushare as ts import pandas as pd import time # 篩選一字板的策略
def gp_rules(code): # 獲取某只股票的歷史數據
    data = ts.get_hist_data(code, start='2018-01-01', end='2019-07-26') # 排除該時間段無數據的股票
    if data is None: return

    # 篩選表頭【開盤價,收盤價, 漲幅】
    data_2 = data.iloc[:, [0, 2, 6]] # 篩選出漲幅大於9%且開盤價等於收盤價的股票,即一字漲停的股票(有待優化~)
    data_3 = data_2[(data_2['p_change'] > 9) & (data_2['open'] == data_2['close'])] # 去除不存在一字板的股票(即空數據)
    if data_3.index is None: return line = len(data_3) f, s = 1, 0 # 遍歷檢查是否連續的一字板
    for n in range(0, line): # 檢查是否連續的一字板
        if int(data_3['open'][n] * (data_3['p_change'][n]/100 + 1)) == int(data_3['open'][n-1]): f = f + 1
            # 若4連或4連以上一字板則打印代碼及當時日期
            if f >= 5 and s == 0: print(code, data_3.index[n-4]) s = 1
        else: f = 1


# 篩選股票代碼
def get_code():    # 自己獲取 TOKEN = 'xxxx' pro = ts.pro_api(token=TOKEN) # 篩選代碼,上市日期
    get_codedata = pro.stock_basic(exchange='', list_status='L', fields='symbol, list_date') # 將list_date改為日期格式並轉為索引
    get_codedata['list_date'] = pd.to_datetime(get_codedata['list_date']) get_codedata = get_codedata.set_index('list_date') # 篩選2018-01-01前的數據,取code,轉為list
    symbol_list = get_codedata[:'2018-01-01']['symbol'].tolist() return symbol_list # 測試運行時間
start = time.clock() code_list = get_code() print("正在爬取符合策略的股票,請耐心等待......") for code in list(code_list): time.sleep(1.4) gp_rules(code) print("爬取篩選完成!") end = time.clock() print('運行時間:%s Seconds' % (end-start))

 

 

如有錯誤,請及時指正,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM