久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

用Baostock一鍵批量下載A股K線數(shù)據(jù)到本地:量化回測(cè)的自動(dòng)化數(shù)據(jù)方案

用Baostock一鍵批量下載A股K線數(shù)據(jù)到本地:量化回測(cè)的自動(dòng)化數(shù)據(jù)方案 簡(jiǎn)介面向金融數(shù)據(jù)分析與量化研究場(chǎng)景這份工具包基于Baostock金融數(shù)據(jù)接口實(shí)現(xiàn)股票與指數(shù)K線數(shù)據(jù)的自動(dòng)化下載與本地存儲(chǔ)。資源覆蓋上證指數(shù)、深證成指、滬深300、創(chuàng)業(yè)板指等主要市場(chǎng)指數(shù)以及A股全部上市股票的日K線與5分鐘高頻歷史數(shù)據(jù)可大幅提升數(shù)據(jù)獲取效率降低人工整理成本適合金融分析師、量化研究者及有一定編程基礎(chǔ)的投資愛(ài)好者使用。壓縮包共4個(gè)文件包括Python腳本、Markdown說(shuō)明文檔、文本說(shuō)明文件和Word附贈(zèng)文檔總大小36KB腳本負(fù)責(zé)自動(dòng)抓取數(shù)據(jù)文檔提供接口調(diào)用與字段說(shuō)明整體輕量易用。當(dāng)前已有146人學(xué)習(xí)使用者可獲得完整下載腳本、清晰的操作指南以及附贈(zèng)的補(bǔ)充資料能夠按需調(diào)整并快速搭建本地K線數(shù)據(jù)庫(kù)。1. 把A股K線一鍵落到本地這份Baostock工具包解決的是最煩的那步做量化回測(cè)的人最煩的不是寫(xiě)策略而是每天都在數(shù)據(jù)獲取上浪費(fèi)時(shí)間。Baostock這個(gè)免費(fèi)接口可以拉取上證指數(shù)、深證成指、滬深300、創(chuàng)業(yè)板指等主要市場(chǎng)指數(shù)的日K和5分鐘K線也能覆蓋A股市場(chǎng)的股票歷史行情。配合自動(dòng)化的下載腳本和本地存儲(chǔ)方案數(shù)據(jù)能直接落到CSV文件給回測(cè)引擎讀取。這份資源把登錄、取數(shù)、落盤、增量更新的流程都整理成了可改參運(yùn)行的腳本適合想用歷史K線做策略驗(yàn)證、技術(shù)指標(biāo)研究或數(shù)據(jù)備份的開(kāi)發(fā)者直接上手。2. Baostock接口選型為什么免費(fèi)接口反而適合自動(dòng)化回測(cè)2.1 選它的核心理由登錄無(wú)狀態(tài)、接口直白、不怕token失效做數(shù)據(jù)下載腳本最怕的就是第三方平臺(tái)的token過(guò)期要重新申請(qǐng)、積分不夠被限流。Baostock的登錄方式很特別bs.login()不需要注冊(cè)賬號(hào)也能拿到一個(gè)匿名會(huì)話返回結(jié)果里的error_code為0就表示登錄成功。它沒(méi)有web端那一套復(fù)雜的鑒權(quán)流程非常適合寫(xiě)進(jìn)定時(shí)任務(wù)、無(wú)人值守的批量腳本里。核心取數(shù)接口是query_history_k_data_plus一個(gè)函數(shù)就把股票、指數(shù)、日線、分鐘線全部覆蓋。參數(shù)走的是start_date end_date的區(qū)間模式對(duì)增量更新很友好——你想補(bǔ)最近一個(gè)月的數(shù)據(jù)直接把開(kāi)始日期寫(xiě)成上個(gè)月末就行不需要自己維護(hù)游標(biāo)或者翻頁(yè)邏輯。返回的結(jié)果集是一個(gè)帶有next()方法的游標(biāo)對(duì)象遍歷方式和讀取文件流類似寫(xiě)起來(lái)很順手。接口的免費(fèi)策略對(duì)個(gè)人量化愛(ài)好者來(lái)說(shuō)基本夠用。相比那些需要付費(fèi)才能拉全歷史數(shù)據(jù)的平臺(tái)Baostock在日K和部分分鐘線上的數(shù)據(jù)完整性并不差而且對(duì)調(diào)用頻率的限制相對(duì)寬松。只要程序里做好sleep限速跑全市場(chǎng)幾千只股票的日K線是沒(méi)問(wèn)題的。最讓我滿意的一點(diǎn)是數(shù)據(jù)字段返回的是純字符串列表配合pandas.DataFrame(rows, columnsrs.fields)一行就能轉(zhuǎn)成結(jié)構(gòu)化表格清洗成本極低。2.2 頻率、復(fù)權(quán)與字段入庫(kù)之前先想清楚這三件事下載K線之前有三個(gè)參數(shù)直接決定數(shù)據(jù)能不能用于回測(cè)分別是frequency、adjustflag和字段列表。frequency取值d是日線5m是5分鐘線。日線數(shù)據(jù)歷史范圍長(zhǎng)適合策略回測(cè)5分鐘數(shù)據(jù)量是日線的幾十倍適合做日內(nèi)策略但下載時(shí)間長(zhǎng)、存儲(chǔ)占用大兩者最好分開(kāi)跑腳本。adjustflag是復(fù)權(quán)選項(xiàng)——1后復(fù)權(quán)、2前復(fù)權(quán)、3不復(fù)權(quán)。做技術(shù)指標(biāo)計(jì)算比如均線、MACD、布林帶一定要用復(fù)權(quán)數(shù)據(jù)否則除權(quán)除息日會(huì)出現(xiàn)跳空假信號(hào)。做因子分析或分紅研究才考慮用不復(fù)權(quán)。字段選擇上推薦一個(gè)通用組合字段含義備注date交易日日線格式2024-01-15time交易時(shí)間僅分鐘線有值格式14:35:00code證券代碼帶交易所前綴如sh.600000open/high/low/close開(kāi)高低收字符串需自行轉(zhuǎn)floatvolume成交量股數(shù)留意單位amount成交額元pctChg漲跌幅百分比數(shù)值turn換手率僅股票有值指數(shù)為空指數(shù)數(shù)據(jù)和股票數(shù)據(jù)在turn字段上存在差異全市場(chǎng)統(tǒng)一入庫(kù)時(shí)建議保留同一套字段列表避免不同文件列數(shù)不一致后面合并數(shù)據(jù)時(shí)還要做列對(duì)齊。2.3 代碼命名規(guī)則先看懂前綴再寫(xiě)循環(huán)Baostock的代碼格式是「交易所前綴 數(shù)字代碼」。上證指數(shù)是sh.000001深證成指是sz.399001滬深300是sh.000300創(chuàng)業(yè)板指是sz.399006。個(gè)股方面上交所股票是sh.600xxx、sh.601xxx、sh.688xxx深交所是sz.000xxx、sz.002xxx、sz.300xxx北交所是bj.8xxxxx。手動(dòng)拼代碼容易出錯(cuò)好在接口提供了query_all_stock(day)方法傳入一個(gè)交易日就能返回當(dāng)天所有在市交易的證券代碼和名稱。返回的code字段已經(jīng)帶好了前綴可以直接塞進(jìn)query_history_k_data_plus作為參數(shù)不需要自己判斷交易所。批量下載腳本的核心邏輯就是「先取列表再遍歷拉K線」這個(gè)鏈路我接下來(lái)會(huì)在第3章完整展開(kāi)。3. 復(fù)現(xiàn)批量下載登錄、拉指數(shù)、拉全市場(chǎng)股票的完整腳本3.1 環(huán)境準(zhǔn)備與最小可用代碼先把依賴裝上。建議用Python 3.8以上版本配合pandas處理數(shù)據(jù)。裝好依賴后第一步永遠(yuǎn)是登錄拉一個(gè)標(biāo)的驗(yàn)證連通性不要一上來(lái)就跑全市場(chǎng)。pip install baostock pandas下面這段是驗(yàn)證連通性的最小代碼也是后續(xù)所有下載任務(wù)的基礎(chǔ)骨架import baostock as bs import pandas as pd # 1. 登錄不需要任何憑證 lg bs.login() print(login:, lg.error_code, lg.error_msg) # 2. 取上證指數(shù)日K rs bs.query_history_k_data_plus( sh.000001, date,code,open,high,low,close,preclose,volume,amount, start_date2020-01-01, end_date2024-12-31, frequencyd, adjustflag2, # 前復(fù)權(quán) ) # 3. 遍歷游標(biāo)收集數(shù)據(jù) rows [] while (rs.error_code 0) and rs.next(): rows.append(rs.get_row_data()) # 4. 轉(zhuǎn)DataFrame并落盤 df pd.DataFrame(rows, columnsrs.fields) print(df.head()) df.to_csv(sh000001_d.csv, indexFalse) # 5. 退出登錄釋放連接 bs.logout()這段代碼的邏輯分五步登錄獲取會(huì)話、調(diào)用查詢接口、用while next()游標(biāo)方式逐行讀取返回結(jié)果、將字符串行列表組裝成DataFrame、最后存成CSV并退出登錄。rs.error_code是判斷查詢是否成功的核心標(biāo)識(shí)只有等于0才說(shuō)明數(shù)據(jù)返回正常rs.fields保存的是當(dāng)前查詢的字段名列表用它做列名永遠(yuǎn)不會(huì)跟字段參數(shù)寫(xiě)錯(cuò)順序。參數(shù)上需要注意start_date和end_date格式必須嚴(yán)格是YYYY-MM-DDpandas解析時(shí)少零補(bǔ)零都容易出錯(cuò)adjustflag2用的是前復(fù)權(quán)如果拿不準(zhǔn)該用哪種在第5章我會(huì)給出選型建議。3.2 拉取全市場(chǎng)股票列表拿到基礎(chǔ)標(biāo)的清單單標(biāo)的驗(yàn)證通過(guò)后就要解決「下載哪些股票」的問(wèn)題。手工維護(hù)一份代碼列表很不現(xiàn)實(shí)推薦每天或每月用query_all_stock拉一次當(dāng)時(shí)在市交易的標(biāo)的清單既包含全部A股代碼也能順帶看到交易狀態(tài)。import baostock as bs import pandas as pd bs.login() # 指定一個(gè)交易日獲取當(dāng)天所有在市交易的證券 rs bs.query_all_stock(day2024-12-31) stock_list [] while (rs.error_code 0) and rs.next(): row rs.get_row_data() # row[0]是帶前綴的代碼row[1]是交易狀態(tài)row[2]是名稱 if row[1] 1: # 只保留正常交易狀態(tài) stock_list.append({code: row[0], code_name: row[2]}) df_stocks pd.DataFrame(stock_list) df_stocks.to_csv(stock_list_20241231.csv, indexFalse, encodingutf-8-sig) print(valid stocks:, len(df_stocks)) bs.logout()query_all_stock返回的每一行有三個(gè)字段證券代碼、交易狀態(tài)、證券名稱。tradeStatus等于1表示正常交易退市或長(zhǎng)期停牌的標(biāo)的標(biāo)記為0過(guò)濾邏輯就寫(xiě)在循環(huán)里。將列表存成CSV的好處是后續(xù)斷點(diǎn)續(xù)傳時(shí)可以直接讀文件重新開(kāi)始不用再請(qǐng)求一次接口。這份列表文件就是第八次跑全市場(chǎng)下載時(shí)的「任務(wù)清單」。需要說(shuō)明的是列表里的代碼已經(jīng)帶交易所前綴比如sh.600519、sz.000001后續(xù)下載K線時(shí)直接作為第一個(gè)參數(shù)傳入即可千萬(wàn)不要自己再拼一次前綴很容易出現(xiàn)sh.sh.600519這種低級(jí)錯(cuò)誤。3.3 全市場(chǎng)批量下載帶進(jìn)度、帶限速、帶錯(cuò)誤記錄有了任務(wù)清單接下來(lái)就是全市場(chǎng)批量下載。這里我給出的做法是單標(biāo)的封裝成函數(shù)循環(huán)遍歷列表每個(gè)標(biāo)的之間做小延時(shí)失敗標(biāo)的寫(xiě)入日志后繼續(xù)絕不中斷。import time import random import os import baostock as bs import pandas as pd DATA_DIR output/daily LOG_FILE output/download_errors.log os.makedirs(DATA_DIR, exist_okTrue) FIELDS date,code,open,high,low,close,preclose,volume,amount,pctChg,turn def download_one(code, start_date, end_date, adjustflag2): 下載單只股票日K成功返回行數(shù)失敗返回0 rs bs.query_history_k_data_plus( code, FIELDS, start_datestart_date, end_dateend_date, frequencyd, adjustflagadjustflag, ) if rs.error_code ! 0: print(query error:, code, rs.error_msg) return 0 rows [] while rs.next(): rows.append(rs.get_row_data()) if rows: df pd.DataFrame(rows, columnsrs.fields) # 統(tǒng)一用代碼命名文件方便后續(xù)快速讀取 safe_code code.replace(., _) df.to_csv(os.path.join(DATA_DIR, f{safe_code}.csv), indexFalse, encodingutf-8-sig) return len(rows) # 登錄一次 lg bs.login() print(login:, lg.error_code, lg.error_msg) # 讀任務(wù)清單 tasks pd.read_csv(stock_list_20241231.csv) # 遍歷下載 errors [] for i, row in tasks.iterrows(): code row[code] try: n download_one(code, 2020-01-01, 2024-12-31) if n 0: errors.append(code) # 每200個(gè)標(biāo)的打印一次進(jìn)度 if (i 1) % 200 0: print(fprogress: {i1}/{len(tasks)}, last{code}, rows{n}) except Exception as e: errors.append(code) print(exception:, code, e) # 隨機(jī)延時(shí)避免短時(shí)間請(qǐng)求過(guò)于密集 time.sleep(random.uniform(0.05, 0.2)) # 記錄失敗清單 with open(LOG_FILE, w) as f: f.write(\n.join(errors)) bs.logout()這個(gè)批量腳本的設(shè)計(jì)要點(diǎn)有三個(gè)一是單標(biāo)的下載函數(shù)獨(dú)立封裝出錯(cuò)了只影響當(dāng)前標(biāo)的不會(huì)讓整個(gè)循環(huán)崩潰二是進(jìn)度打印以200個(gè)為間隔跑全市場(chǎng)時(shí)能直觀看到剩余時(shí)間不用心里沒(méi)底三是失敗清單單獨(dú)落盤等全部跑完后再針對(duì)error.log里的代碼單獨(dú)重試效率比中途打斷重跑高得多。延時(shí)參數(shù)random.uniform(0.05, 0.2)是我常用的值。延時(shí)太小容易觸發(fā)服務(wù)端限流太大則全市場(chǎng)幾千只股票要跑好幾個(gè)小時(shí)。實(shí)際跑的時(shí)候如果發(fā)現(xiàn)連續(xù)報(bào)錯(cuò)優(yōu)先加大延時(shí)而不是反復(fù)重試——這是數(shù)據(jù)采集類腳本的通病越急越容易被限制。4. 本地存儲(chǔ)與增量更新讓歷史數(shù)據(jù)只下載一次的落盤方案4.1 目錄結(jié)構(gòu)按數(shù)據(jù)類型分目錄別把幾千個(gè)CSV混在一起全市場(chǎng)數(shù)據(jù)下載完成后目錄組織決定了后面寫(xiě)策略時(shí)讀數(shù)據(jù)的效率。我習(xí)慣按「數(shù)據(jù)類型/代碼」兩級(jí)目錄來(lái)組織日線和分鐘線分開(kāi)存儲(chǔ)指數(shù)和個(gè)股分開(kāi)存儲(chǔ)元數(shù)據(jù)單獨(dú)放一層。output/ ├── daily/ # 個(gè)股日K線 │ ├── sh_600000.csv │ └── sz_000001.csv ├── index/ # 指數(shù)日K線 │ ├── sh_000001.csv │ ├── sz_399001.csv │ ├── sh_000300.csv │ └── sz_399006.csv ├── minute5/ # 5分鐘K線 │ └── sh_600000.csv ├── meta/ │ └── download_log.json └── stock_list_20241231.csv文件名里的點(diǎn)號(hào)替換成下劃線是為了避免不同工具解析文件路徑時(shí)把.sh當(dāng)成擴(kuò)展名。目錄分層的核心價(jià)值是回測(cè)時(shí)可以直接按目錄批量讀文件比如只讀output/index下的指數(shù)數(shù)據(jù)做大盤擇時(shí)不用遍歷幾千個(gè)個(gè)股文件。download_log.json記錄每次下載的起始日期、結(jié)束日期、股票數(shù)量和耗時(shí)方便下次增量的時(shí)間斷點(diǎn)判斷。這個(gè)文件不是必須的但強(qiáng)烈建議維護(hù)尤其在增量更新時(shí)能幫你快速定位「上次跑到哪了」。4.2 增量更新實(shí)現(xiàn)先讀本地最新日期再只拉缺口區(qū)間如果每次更新都把全歷史重拉一遍既浪費(fèi)帶寬又容易被接口限流。正確做法是先讀本地CSV的最后一條日期從那個(gè)日期開(kāi)始往后拉然后拼接去重。import os from datetime import datetime import baostock as bs import pandas as pd DATA_DIR output/daily def get_local_max_date(code): 讀取本地CSV的最后交易日期文件不存在返回None path os.path.join(DATA_DIR, f{code}.csv) if not os.path.exists(path): return None df pd.read_csv(path, usecols[date]) return df[date].max() # 日期是YYYY-MM-DD字符串可直接比較 def incremental_download(code): local_max get_local_max_date(code) today datetime.now().strftime(%Y-%m-%d) # 本地?cái)?shù)據(jù)已是最新直接跳過(guò) if local_max and local_max today: return False start local_max if local_max else 2015-01-01 rs bs.query_history_k_data_plus( code, date,code,open,high,low,close,preclose,volume,amount,pctChg,turn, start_datestart, end_datetoday, frequencyd, adjustflag2, ) if rs.error_code ! 0: raise RuntimeError(f{code} query failed: {rs.error_msg}) rows [] while rs.next(): rows.append(rs.get_row_data()) if not rows: return False new_df pd.DataFrame(rows, columnsrs.fields) path os.path.join(DATA_DIR, f{code}.csv) if local_max is not None: old_df pd.read_csv(path) # 拼接后按日期去重保留最新數(shù)據(jù) merged pd.concat([old_df, new_df], ignore_indexTrue) merged merged.drop_duplicates(subset[date], keeplast) merged merged.sort_values(date).reset_index(dropTrue) merged.to_csv(path, indexFalse, encodingutf-8-sig) else: new_df.to_csv(path, indexFalse, encodingutf-8-sig) return True這段代碼的邏輯核心是「用字符串日期做比較」。YYYY-MM-DD格式下字符串比較和日期比較結(jié)果一致所以不需要轉(zhuǎn)成datetime對(duì)象。drop_duplicates(subset[date], keeplast)保證了即使起始日期和本地已有數(shù)據(jù)重疊最終入庫(kù)數(shù)據(jù)也不會(huì)有重復(fù)K線。增量更新的邊界條件有兩個(gè)第一如果本地最新日期恰好等于今天說(shuō)明數(shù)據(jù)已經(jīng)是最新直接返回。第二如果文件不存在則從2015-01-01拉全量歷史。這里的起始日期按你自己的需求改想拉更長(zhǎng)歷史就改成2000-01-01。還要注意增量更新最好在收盤后執(zhí)行盤中拉到的當(dāng)日K線只有未收盤的臨時(shí)數(shù)據(jù)混入歷史庫(kù)會(huì)污染回測(cè)結(jié)果。4.3 失敗重試與日志把斷點(diǎn)續(xù)傳做成標(biāo)配能力跑全市場(chǎng)增量時(shí)網(wǎng)絡(luò)抖動(dòng)、接口超時(shí)幾乎必然發(fā)生。我的經(jīng)驗(yàn)是不要指望一次跑完而是把「失敗重試」和「進(jìn)度記錄」做進(jìn)腳本里。import time import json def run_with_retry(code, max_retry3, wait5): for attempt in range(1, max_retry 1): try: incremental_download(code) return True except Exception as e: print(fattempt {attempt}/{max_retry} failed: {code}, {e}) time.sleep(wait * attempt) # 退避等待5s, 10s, 15s return False # 讀取上次失敗的清單繼續(xù)跑 fail_list [] if os.path.exists(meta/failed.json): with open(meta/failed.json) as f: fail_list json.load(f) for code in fail_list: ok run_with_retry(code) if not ok: with open(meta/failed_again.json, a) as f: f.write(code \n)重試采用線性退避策略第一次失敗等5秒第二次等10秒第三次等15秒。三次仍然失敗就直接跳過(guò)記錄到failed_again.json。這種「本輪跳過(guò)、下一輪再試」的方式比單個(gè)標(biāo)的上死磕更符合全市場(chǎng)批量的節(jié)奏。進(jìn)度記錄方面只要meta/failed.json始終保留未完成標(biāo)的腳本重啟后可以從斷點(diǎn)繼續(xù)不需要重新掃描全部文件。5. Baostock避坑手冊(cè)六個(gè)最常被問(wèn)到的異?,F(xiàn)場(chǎng)5.1 跑著跑著突然全部報(bào)錯(cuò)日志提示尚未登錄現(xiàn)象是腳本前幾百個(gè)標(biāo)的正常后面所有請(qǐng)求開(kāi)始返回尚未登錄或連接異常。原因是Baostock的登錄會(huì)話有有效期長(zhǎng)任務(wù)跑半小時(shí)以上可能自動(dòng)掉線并非代碼寫(xiě)錯(cuò)。解決的常見(jiàn)做法是分段處理比如每處理300個(gè)標(biāo)的執(zhí)行一次bs.logout()再bs.login()重新建立會(huì)話。for i, row in tasks.iterrows(): if i % 300 0: bs.logout() lg bs.login() print(relogin at, i, lg.error_code)5.2 數(shù)據(jù)拉回來(lái)發(fā)現(xiàn)日期不連續(xù)以為漏數(shù)據(jù)現(xiàn)象是某只股票CSV文件里日K日期跳過(guò)了好幾天比如1月10號(hào)之后直接跳到1月15號(hào)。原因大概率是該股票在1月11日到14日處于停牌狀態(tài)停牌期間Baostock不返回K線數(shù)據(jù)這不是接口故障。遇到這種情況不要急著補(bǔ)數(shù)據(jù)先通過(guò)query_all_stock的tradeStatus字段確認(rèn)停牌狀態(tài)或者對(duì)照交易日歷文件檢查缺失日期。5.3 同一天的前復(fù)權(quán)價(jià)格換了起始日期就變了這是最容易讓人崩潰的坑。我用start_date2020-01-01拉的前復(fù)權(quán)數(shù)據(jù)和用start_date2022-01-01拉的數(shù)據(jù)在同一交易日的收盤價(jià)居然不同。原因是前復(fù)權(quán)價(jià)格是根據(jù)指定區(qū)間的除權(quán)除息事件回溯調(diào)整的起始日期不同復(fù)權(quán)基準(zhǔn)就不同歷史價(jià)格自然對(duì)不上。解決方案是如果要做跨年度增量更新存儲(chǔ)時(shí)統(tǒng)一用后復(fù)權(quán)adjustflag1它的復(fù)權(quán)基準(zhǔn)固定在上市首日價(jià)格序列不會(huì)因?yàn)樵隽繀^(qū)間改變而漂移。這是血淚經(jīng)驗(yàn)回測(cè)數(shù)據(jù)一定要保證「同一標(biāo)的價(jià)格序列自洽」。5.4 5分鐘數(shù)據(jù)下載卡死進(jìn)度半天不動(dòng)現(xiàn)象是下載5分鐘K線時(shí)腳本長(zhǎng)時(shí)間無(wú)響應(yīng)看起來(lái)像死機(jī)。原因是5分鐘數(shù)據(jù)量遠(yuǎn)大于日線一只股票一年就有約11520條記錄全市場(chǎng)幾千萬(wàn)條數(shù)據(jù)在同一個(gè)請(qǐng)求里返回網(wǎng)絡(luò)和內(nèi)存都扛不住。解決方式是分時(shí)間片下載比如每次只拉一個(gè)季度拉完一批落盤再拉下一批同時(shí)把延時(shí)加大到random.uniform(0.5, 1.0)。5分鐘數(shù)據(jù)建議獨(dú)立腳本執(zhí)行別跟日線放一起跑。# 分季度拉取5分鐘數(shù)據(jù)避免單次請(qǐng)求數(shù)據(jù)量過(guò)大 periods [ (2024-01-01, 2024-03-31), (2024-04-01, 2024-06-30), (2024-07-01, 2024-09-30), (2024-10-01, 2024-12-31), ] for start, end in periods: rs bs.query_history_k_data_plus( code, date,time,code,open,high,low,close,volume,amount, start_datestart, end_dateend, frequency5m, adjustflag2, ) # ... 收集并落盤 time.sleep(1)5.5 CSV文件用Excel打開(kāi)中文亂碼現(xiàn)象是CSV文件用pandas讀取正常但Excel打開(kāi)后字段名和股票名稱全是亂碼。原因是Baostock返回的字段名是英文不受影響但如果你把code_name寫(xiě)入CSVpandas默認(rèn)的UTF-8編碼在Excel里不兼容。解決方式是寫(xiě)文件時(shí)統(tǒng)一指定encodingutf-8-sigBOM頭會(huì)讓Excel自動(dòng)識(shí)別UTF-8編碼。從第3章的代碼開(kāi)始我已經(jīng)全部用了sig后綴直接照抄就不會(huì)踩。5.6 全市場(chǎng)下載太慢一個(gè)循環(huán)幾小時(shí)跑不完現(xiàn)象是幾千只股票全部串行下載預(yù)估耗時(shí)好幾個(gè)小時(shí)感覺(jué)效率太低。原因是網(wǎng)絡(luò)請(qǐng)求本身有往返延遲單標(biāo)的雖然只要幾十毫秒但串行累積起來(lái)就是天文數(shù)字。改進(jìn)方向有兩個(gè)一是用ThreadPoolExecutor做多線程并發(fā)但要注意Baostock對(duì)同一賬戶的并發(fā)連接數(shù)有限制建議線程數(shù)控制在5以內(nèi)二是縮小全量范圍只下載自己策略需要的板塊或指數(shù)成分股不必每次都把全市場(chǎng)拉一遍。常見(jiàn)的做法是用4線程并發(fā)加0.1秒延時(shí)整體耗時(shí)能縮短到串行的三分之一左右。并發(fā)方案涉及會(huì)話管理邏輯比串行復(fù)雜新手階段還是先跑串行跑順了再優(yōu)化。6. 數(shù)據(jù)校驗(yàn)走一遍用三行斷言給本地K線庫(kù)兜底6.1 拉完數(shù)據(jù)先過(guò)校驗(yàn)?zāi)_本別急著喂給策略數(shù)據(jù)下載完成不等于數(shù)據(jù)可用。我見(jiàn)過(guò)太多因?yàn)镃SV里混入空行、價(jià)格為零、日期重復(fù)而導(dǎo)致回測(cè)結(jié)果嚴(yán)重失真的事故。我的習(xí)慣是每次下載或增量更新后強(qiáng)制跑一遍校驗(yàn)?zāi)_本把明顯的數(shù)據(jù)異常攔截在策略之外。import pandas as pd import os DATA_DIR output/daily def verify_file(code): path os.path.join(DATA_DIR, code.replace(., _) .csv) if not os.path.exists(path): return False df pd.read_csv(path) # 斷言1非空文件 assert len(df) 0, f{code} is empty # 斷言2收盤價(jià)全部為正 assert (df[close].astype(float) 0).all(), f{code} has non-positive close # 斷言3日期嚴(yán)格遞增且無(wú)重復(fù) assert df[date].is_monotonic_increasing, f{code} dates not sorted assert not df[date].duplicated().any(), f{code} duplicated dates return True # 跑最近下載過(guò)的前200只股票 tasks pd.read_csv(stock_list_20241231.csv).head(200) failed [] for row in tasks.iterrows(): code row[1][code] try: verify_file(code) except AssertionError as e: failed.append(str(e)) print(failed:, failed)三個(gè)斷言分別解決三類典型問(wèn)題空文件說(shuō)明下載被跳過(guò)、非正價(jià)格說(shuō)明字段里有臟數(shù)據(jù)、日期亂序說(shuō)明拼接時(shí)排序出了問(wèn)題。如果你發(fā)現(xiàn)is_monotonic_increasing報(bào)錯(cuò)優(yōu)先檢查增量更新的sort_values(date)是否執(zhí)行——我一度把這個(gè)排序放在drop_duplicates之前導(dǎo)致去重后順序被破壞翻車過(guò)一次。6.2 把下載和校驗(yàn)串成一條命令定時(shí)任務(wù)直接調(diào)用校驗(yàn)?zāi)_本寫(xiě)好后建議和下載腳本放進(jìn)同一條命令鏈里先下載后校驗(yàn)任何一環(huán)失敗都讓任務(wù)報(bào)錯(cuò)退出。python download_daily.py python verify_kline.py校驗(yàn)通過(guò)后再生成一份meta/verify_report.json記錄校驗(yàn)時(shí)間、文件數(shù)和失敗項(xiàng)后續(xù)想在策略里判斷數(shù)據(jù)新鮮度直接讀這個(gè)報(bào)告就行不用每次重新掃描全部CSV。從那以后我每次拿到新下載的K線數(shù)據(jù)不管是從這套資源腳本跑出來(lái)的還是手動(dòng)補(bǔ)的都會(huì)強(qiáng)制先走一遍校驗(yàn)流程再讓策略去讀。這個(gè)習(xí)慣幫我擋掉過(guò)好幾回?cái)?shù)值為0的壞數(shù)據(jù)混進(jìn)回測(cè)的情況也讓「數(shù)據(jù)有沒(méi)有問(wèn)題」從玄學(xué)變成了一個(gè)可以確認(rèn)的步驟。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天操天天射青青草| 日本影视久久免费| 婷婷色综合| 欧洲欧美视频一区二区| 欧美亚洲首页| 屁股久久久久久久久| 丁香五月婷婷啪啪| 91丨九色丨国产丨人妻在线| 亚洲国产另类在线中文| 97色网| 伊人国产视频| 天美精品av| 99久久精品无码一区二区| 亚洲丝袜二区在线| 97天天弄| 色综合加勒比四四季| 久久亚洲AV成人精品无码| 青青在线视频日韩欧美| 九七超碰人人乐| 成人女人国产| 久久大香蕉手机高清| 天天色天天干天天射| 超碰欧美97| 久久久久亚洲一区女同性恋中文字幕| www.狠狠干.coom| 久久av成人无码免费| 午夜精品久久99蜜桃的功能章节| 久久超碰com| 久久超碰av在线| 国产嫩草精品A88AV在线| 天天日日舔舔| 欧美色图亚洲特色| 国产精品91一样| 激情综合五月| 男人的天堂一区三区| 亚一综合久久久久久久久久| 无码天天操| 国内精品久久人妻性色av| 精品久久久久久久| 1级黄色夫妻对换性交免费看| 亚洲国产综合图区中文字幕| 欧美色图电影| 男人天堂导航| 亚洲精品人伦一区二区| 欧美三级偷拍| 91亚洲情色| 日韩本不卡视频在线观看| 青青伊人久久| 日日嗷| 中文欧丝袜诱惑| 伊人国产视频| 2017大香蕉国产精品久久| 一及黄久一点| 熟女一区二区三区| 蜜臀久久久国产| 97亚洲国产影视| 欧美专利1区2区3区4区5区免费| 青青草色情网站视频| 成人综合色网| 久久一留热品黄| 天天插夜夜爽| 欧美综色欧| 96超碰网| 黄色大片免费在线| 日韩黄色一区二区三区| 99热精品在线观看| 人妻无码后入| 人妻少妇久久| 日韩三级伊人| 思思热久久成人| 26uuu国产亚洲综合| 嗯啊抽插大香蕉网页| 人人爱人人操人人性| 国产懂色精品国产av| 成人性爱全视频观看| www超碰| 亚洲中文字幕有码视频一区二区三区| 亚洲视频一二区| 熟女久久久| 日韩欧视频| 日本操逼aaaaa| 亚洲高清无码AAA久久久精品| 久久综合资源一区二区| 亚洲超碰在线| #NAME?| 蜜臀久久99精品久久久久久无删减 | 嫩呦国产一区二区三区AV| 操逼操逼逼操操逼91| 静品嫩模一区二区| 超碰97资源中文字幕| 欧美老妇女内射网址| 超碰社区97| 韩国三级一线观看久| 一级A片女人高潮叫床| 亚洲少妇色| 日韩操呦呦影院在线观看| 超碰久在线天天做| 久久性生大片免费观看性| 两女互慰AV高潮喷水在线观看| 色香色欲天天综合网天天来吧| 91爱综合| 久操视频这里只有精品| 女人喷水视频在线观看| 欧美美女在线高潮999| 熟女熟妇一区二区三四区| 国产一区二区免费福利片| 99操逼| 骚鸭AV| 免费一级精品啪啪视频| 大香蕉在线视频15| 91日韩网站| 国模不卡| 亚洲男人天堂2| 日本熟女免费視颖| 久jiu久神马影院| 国产AV人人夜夜澡人人爽麻豆| 91操操操操| 高清在线偷拍自拍视频| 亚洲好色人妻| 亚一综合久久久久久久久久| 日韩AV色图| 色欧美综合| 女人爽到高潮潮喷18禁网站 | 情趣丝袜无码操逼视频| 国产最新AV| 色悠久| 99操逼| 日韩色图 一区二区| 国产91av在线播放| 97精品久久久久久久| 一级婬片120分钟试看| 精品区9| 中国和日本人色哪个不下载能放| 中文一区在线视频| 91美女视频直播| 久热99| 久久精品无码熟妇一区二区三区视频导航| 国产精品久久99日日| 久久內射| 久久久久久久亚洲Av无码| 天天综合影院91| AAAA欧美日韩| 中文字幕人妻色偷偷久久皮| 熟女五十路一区二区三| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 国产日韩精品人妻久久久久色欲网站| 蜜臀AV成人精品蜜臀| 日本韩国国产精品一区| 97超碰免费人人性爱| 国产女人高潮嗷嗷嗷叫小说| 日本高清一本二本免费不卡| 国产大片精久久久久久| 熟女精品va中文字幕| 蜜桃色院一区久久 | 无卡一区=区| 美日韩成人| 欧美天天干| 蜜臀av中字字幕网站| A片大香蕉在线| 天美传媒在线一区| 欧美拳交在线播放| 国产宅男宅女在线观看| 久久久91| 日韩AV电影网站 | 韩日欧亚a级| 伊人AAA| 国产乱伦搜索结果91P| 第四色色综合91| 天天搞在线综合网| 国产真实子伦对白| 综合性视频99| 亚洲91网站| 大香蕉综合在线| 水多多映视AV| 久久国产精品熟女人妻| 国产A v无码专区| 日韩欧美久久婷婷网站| 欧美综合网A| 欧洲射精91| 午夜120视频在线观看| 久久精品女同亚洲女同13| 亚洲图片 91| 成人性爱视频在线看| 啪啪啪综合| 亚洲日本天堂| 按摩中文字幕| 国产超碰在线| 午夜福利精品| 国产精品网址| 亚洲一区中文精品| 97综合网| 一本色道久久综合精品婷婷| 亚洲九九视频在线观看| 99九九久久| 免费精品人妻一区二区三| 日韩欧美女求操每天更新| 国产视频大全| 亚洲AV无码久久精品蜜桃小说| 国产高清成人传媒影视| 久操视频资源站公开| 色99999| 97 国产精品| 精品人妻视频一区二区三区蜜桃视频| 激情六月婷婷| 9999免费精彩视频| 制服乱伦| 性久久| 亚码激情| 最新日韩黄片| 99re28在线观看| 国产精品午夜成人福利| www欧美性爱| 超碰精品日韩欧美国产| 九草九九九| 国产精品乱码久久久久久| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 人妻精品视频一区二区三区| 国产青青综合伊人| 亚洲男人天堂视频| 抽插一区二区视频| 99re欧美| 精品无码欧美三级| 操一操摸一摸| 美国日韩黄片| 日产操逼| 色综合久久av| 熟妇操花| 91狠狠综合久久久久久| 99精品网站| 91超碰在线播放| 久久精品中文字幕无码l| 狠狠干狠狠干| 欧美日韩国产另类综合| 13小男生GAY自慰脱裤子| 亭亭在线资源| 伊人一区二区三区| 2017人人操,人人摸| 在线黄页看毛片| 久草男人天堂| 先锋影音av先锋一区| 四虎国产精品永久入口| 日本一级特级毛片视频| 男人的天堂VA| 亚洲无线码欧洲精品区别| 久久熟妇五十路一区| 日韩人妻有码免费视频| 亚洲美女高潮喷水视频| 欧美欧美啪啪视频| 狠狠操狠狠操操| 一本大道不卡一二三区| 中文字幕在线观看视频www| 第四色色综合91| av天天在线观看| 91视频综合在线| 九九精品无码专区免费| 五月天春色激情网| 亚洲九九视频| 妺妺跟我一起洗澡没忍住| 日韩美女,国产传媒,视频一区| 久久成人东京热人妻| 欧美激情性爱视频网站| 超碰爽人妻熟女Av| 99re28在线观看| 综合操逼| 亚洲色香| 亚洲字幕一区二区| 欧美色综合图片| 日韩免费看在线黄色片| 少妇人妻精品| 成人无码在线视频网站| 亚洲黄日韩无码专区| 搡老女人911熟妇老熟女| 欧美|91色综合| 天天干人人看综合| 成人精品电影| 青草伊人久久| 人妻少妇久久久| 日韩肏逼视频| 日本不卡二三区| 日本操逼视频导航| 深夜视频| 91美女在线观看| 九九九九九九九| 亚洲九九九九| 抽插无码高清一区| 亚洲情色综合网| 狠狠干91| 少妇一区二区三区| 欧美激情在线观看视频| 丁香7月婷婷| 超碰97男人| 免費黃色視頻觀看一| 久艹视频在线| 中文字幕精品一区二区精| 欧美综合站| 欧美亚洲厕所精品偷拍91| 日韩熟女操逼| 97AV爱| 高潮毛片无遮挡高清免费| 人妻人久久精品中文字幕| 亚洲欲色9532548967一区| 精品人妻一区二区视频| 男人天堂新| 熟女久久久| 国产夜夜操| 日韩欧美午夜视频在线| 欧美se综合| 亚洲国产蜜臀系列在线观看| 亚洲人在线| 亚洲日韩精品在线播放| 二男一女成人A片| 亚洲一区在线观看欧洲| 亚洲欧美天堂| 97爱爱爱| 免费精品无码一级毛片牛牛影视 | 一区操逼| 久久精品人妻一区| 97超碰中文在线| 久久久久久中文| 97精品综合久久网| 亚洲精品国产精品乱码不卡| 射丝袜高跟鞋99| 六月天婷婷| 亚洲午夜免费狠狠干| 97玖玖人妻| 九九热五区| 啊啊啊在线观看免费视频| 青青草久久一区网| 伊人久久久日韩一区| 国产 大胆 对白| 无码操逼视频一下| 九九热免费国产视频婷婷伊人五月 | 日韩欧美丝袜诱惑| 揉揉日日日日| 五月天成人综合| 加勒比东京热五月天天堂网| 日韩欧美性吧婷婷乱伦大香蕉 | 黑人精品久久97| 精品小视频在线| 五月婷婷综合在线| 香蕉免费一区二区三区不读| 色吧 综合| 天天透伊人| 日韩中文字幕av在线播放| 中文字幕av片| 日日操免费视频| 天天日天天舔天天喷天天射| 日韩av色图综合| 久久久久久九九九九| 亚洲国产一级精品毛一级精品看免费视频| 国产亚洲一黄| 97精品视频在线| 韩国黄片aaaa| 精品一区二区三区四区女| 色综合天天爱去电影网| 中文字幕成人理论在线| 伊人久久亚洲中文字幕不卡| 天天干天天舔| 超AV色女| 加勒比伊人| 欧美性猛交美女自慰91| 久久久久久久久久久精| 人人做人人妻人人夜视频| 日本大香蕉| 亚洲精品毛片在线观看| 91国产在线精品| 免费一级精品啪啪视频| 精品国产乱码久久久兰草影视| 无码精品久久| 中文字幕人乱码中文字的预防方法 | 大香蕉中文网| 久久6热视频免费观看| 色偷偷男人的天堂麻豆| 黄片直播三级黄片两女一男| 午夜福利一区二区三区四区五区色婷婷| 99热精品在线观看| 粘花网06av视频| 久久99深爱久久99精品| 屁股久久久久久| a片自拍直播视频| 国产成人精品亚洲日本| 日本 免费 一区二区三区 久久香蕉| 国产精品999zyz| 亚洲美腿丝袜香蕉影视欧美成人| 啊嗯嗯啊好大好爽| 综合网亚洲1| 91oumei| 尤物黄色在线观看网站| 午夜精品久久久久| 成年人网站在线免费观看| 操b网站亚洲无码| 丁香五月成人| 91撸色网 玖玖网 欧美| 成人乱码一区二区三少妇| 欧美色图91| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 中文久久久| 国产久久一区二区三区野外在线| 亚洲成人性| a亚洲欧美色欲| 色五月激情AV在线| 好看的91视频| 丝袜美腿诱惑亚洲欧美视频在线观看| 亚洲另类小说卡通动漫| 91操操操操| 国产97色在线 | 亚洲| 天美传媒av一区二区| 野狼激情网| 91丨九色丨大屁股| 久久98| 久久‘黄片视频| 国产成年免费大片黄在线观看| 尤物网站91| 日韩小电影| 欧美啪啪天堂| 久久久三区二区一区| 东京热不卡视频| 97色视频在线| 黄色十八禁| 久久97超碰香蕉| 色综合99999| 国产热av| 色原狠狠天天天| 麻豆色约约| 亚洲熟女诱惑| 99无码| 日韩av电影成人在线| 中文乱码字字幕在线第5页| 男人的天堂2018| 中文字幕日韩电影人妻| 中文字幕日韩人妻视频一区二区三区 | 97综合网| 日欧美色| 九色 人妻 大香蕉| 大香蕉92| 久久首页| av网站免费看| 91欧美另类| 96久久久久久久| 亚洲第一免费视频| 岛园激情| 欧美偷偷网| 大香蕉专区| 综合色图亚洲欧美| 亚洲男人在线观看天堂| 四虎免费视频| 哈哈操电影| 亚洲高清色综合| 色综合五月天| 人人妻人人爽人人精品| 色999亚洲人成色| 日韩三级在线观看mp4| 91熟女视频网| wwwxxx日本爽| 无码又爽又硬又激情免费视频| 99国产天美| 日韩精品一区二区人人人| 尤物网址| 18岁禁 茉莉成人久久| 久久久久久久唑| 色色婷婷五月天| 91 综合 色| 日韩av不卡在线看| 艳美熟妇先锋一二三区| 欧美日本不卡在线| 韩国一级做A片免费的| 天天综合网AV91| 日熟女| 国产不卡精品91| 夜夜欧美| AV天堂丝袜| 亚州综合网| 人妻夜夜爽天天爽麻豆三区网站| 黑人精品欧美一区二区蜜桃| 国产av美女被艹的乱叫| 欧洲亚洲人人爽爽视频| 日日操丁香五月天| 欧美极品少妇| 狠狠综合网| 好吊色综合| 欧美白嫩在线放| 另类小说综合网| 操91| 丁香五月婷婷基地| 粉嫩av在线| 欧美在线伊人色| 亚洲啪啪视频一区二区| 日本加勒比无码专区一二三| 人妻中文在线| 波多野结衣AV无码一区| 天天超级碰碰碰| 欧美大香蕉97| 欧美在线干| 综合色拍| 欧美性爱91| 尹人大香蕉视频在线| 久久超碰98| 性色A∨91| 最新日本中文字幕| 久久久性少妇| 欧美日韩中国x| 天天做天天爱天天爽AV| 99色视频| 人妻密肉在线观看| 富二代亚洲精品99| caoni国产亚洲av| 亚洲综人网| 超碰在线人妻不卡| 手机在线A片| 欧美日韩国产高清在线一二三区 | 成人八戒网站| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 校园春色 亚洲| 欧美午夜色妇色鬼| 亚洲另类综合欧美| 日韩成人电影AV| 久久毛卡| 网页导航五月天免费一二三区| 91网站18| 男人天堂网站| 男女国产精品| 亚洲色人阁| 精品一区二区三区麻豆| 亚洲,欧美,综合网| 67914在线兔费成人视频| 国产91专区| 大香蕉92| 91制服丝袜| 91欧美综合| 亚洲激情视频| 日本熟女不卡视频| 三级日本一区二区三区| 夜夜爽爽爽| 国产传媒美日韩av| 亚洲 另类 丝袜 自拍 动漫| 96久久久精品| 欧美最婬乱婬爆婬牲视频| 久久精品国产97欧美精品亚洲 | 久久香蕉网| 狠狠操狠狠| 97超碰国产精品| 97色色色综合网站| 加勒比av网| 啊啊啊啊啊啊在线| 色综合V| 日韩国产在线观看av| 极品白嫩福利在线| 精品九九九九| 日韩精品资源| 欧美淫乱视频| 欧美影音在线| 97色色国产视频| 俺去久久| 天天爽天天干| 色官网色综合| 大香蕉懂9| 能看的av| 黄色av网站在线播放| 亚州色图欧美| 国产精品色色| 国产麻豆福利av在线播放| 日韩无码专区| 久久久久ab| 天天欧美| 久久久A∨| 亚洲在线a| 色优久久| 日韩久草| 91热热色| 国产在线播放成人免费| 思思视频免费看网站| CCYY草草影院地址入口| www.av在线观看| 少妇99成人麻豆| 呻吟 欧美 日本 中出| 成人一二三区| 中文字幕AV乱伦| av资源在线观看少妇| 亚洲欧美天堂在线| 91九色丰满高潮| 操操逼视频| 久久婷婷影院| 超碰久久草| AV麻豆免费一区| 六月丁香网| 久操 高清| 欧美亚洲手机在线| 国产精品一二三区福利| www.acm成人黄色毛片| 免费?级毛片无码?∨蜜芽试看| 日韩精品中文字幕二区| 男人的亚洲天堂| 欧美大波激情xxxx| 丁香色婷婷| 九九超碰综合网| 99久久e免费热视| 美女骚尻视频| 激情四射五月天| 啪啪啪综合| 婷婷精品视频| 蜜臀久久99精品久久久久久-DVD原版全| 在线综合色| 日韩无码服务区| 自拍偷拍 日韩无码| 狠狠97| 精品国产一区二区三区四区在线看| 欧美日韩国第一区| 日韩三级伦理中文字幕| 91超碰人人| 免费A片三p视频| 九九热九九热| 综合影院永久入口国产| 人人色人人射人人妻| 91久久久久久久久18| 99精品在线观看| 欧美在线天堂| 少妇99成人麻豆| 韩国午夜理伦三级好看| 加勒比综合在线| 中文字幕十五区| 激情久久久| 超清福利精品视频在线| 中文字幕免费在线观看| 亚洲,欧美,春色,另类| 国产精品高清2021在线| 少妇高潮一区二区三区在线| 亚洲骚女一区二区三区| 人人天天干干| 欧美专区17页| 欧美A√综合网| 国产AV天美| 999久久久久久久精| 成视频在线观看免费看| 日本成人A片网站| 色婷婷综合久久久久中文一区二区| 超碰97COm中文| 色婷婷婷五月天激情四射| 日韩97超碰中文字幕| 99久久99久久综合| 99性爱| 日韩婷婷| 91精品国产高清久久久久久,亚洲成人| 97超碰超碰| 天天肏天天干| 麻豆久久一区二区三区| 青青草毛片| 人人操人人摸超碰| 成人三级片一区二区三区视频| 亚洲综合夜色| 丝袜美腿射精91| 91碰碰| 青青操视频在线| 中文字幕AV片| 久久天堂网| 99热18这里只有精品| 日影院久久婷婷夜夜网| 色综合 加勒比| 久久骚| 欧美亚州综合网图片| 在线播放中文字幕| 日韩无码第3页| 青青色在线观看| 亚洲无码一区成人免费午夜| 国产日本一区二区三区蜜臀在线观看| 色色九区| wwwxxx日本爽| 青娱乐日韩无码| ,国产乱人伦精品一区二区三区| 欧美日韩资源在线| 欧美亚洲影视| 黄色十八禁| 啊啊啊啊在线播放| 91熟女综合| 夜精品久无码| www.男人的天堂| 乱欲一区二区| 99热精品青草在线| 欧美亚洲今日在线| 亚洲天堂中文字| 欧美午夜一区二区三区| 9999免费精彩视频| 超碰99热中文字幕| 婷婷综合视频| 久久中文色图| 97色综合中文网| 久久精品国产免费观看99| 少妇二级| 97欧美综合网| se吧提供国产乱老熟视频胖女人 | 亚洲欲色9532548967一区| 夜夜高潮夜夜爽高清视频一 | 欧美成人色| 78超碰| 黄色性爱网网| 天天天天天超碰| 日韩大香蕉精品在线视频| 亚洲色图欧美激情| 五月丁香六月综合缴清无码| 天天综合91在线| 国产白丝网站| 激情综合网五月婷婷五月天| 少妇同性| 国产拍偷精品网站| 99re这里只有精品3| 99中文字幕| 日本九九九九| 少妇久久久久| 亚洲情色五月天 | 草草影院日本第一页| 91国产精品熟女| 天天噜| 嗯嗯嗯啊啊啊在线免费观看| 国产91美女视频| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 一级黄色影片| rion磁力链接| 色噜噜综合在线| 精品九九| 久久国产对白激情浪潮 | 国产黄色影片在线观看| 少妇内射www在线观看视频| 天天操天天干一区二区 | 蜜臀视频网站| 熟女久久久| 亚洲最新Av| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 最新一二三区视频| 欧美九一精品久久久熟妇| 睡产熟女乱伦| 囯产精品久久久久久久久久梁医生 | 玖玖久久久| av在线人气| 91超碰人人| 五月天婷婷成人网| 五月丁香狠狠爱| 人人操,操人人| 亚洲小电影免费涩涩成人在线高清 | 日韩一级久久毛片| 欧美97超碰| 日躁天天爽爽| 九九九999久久久网站| 国产午夜福利合集| 蜜臀久久精品久久久久视频| 一本久久精品中文字| 一区二区三区四区姦女| 97久久精品亚洲| 人妻少妇一区二区| 丰满人妻一区二区三区四区| 三级激情网站| 波多野结衣一级视频| www..com操老师| 亚洲欧洲日韩天堂av| 日本操大逼| 日本不卡高清视频| 亚洲砖码砖专无区2023| 美女操逼福利视频| 欧美精品日韩一区二区| 六月丁香婷| 亚洲天堂男人在线| 污啪啪啪视频| 内射黑人| 性性久久| 9I1性色影院| 精品久久97观看在线视频| 午夜精品久久99蜜桃的功能章节 | 女优免费一区二区永久| 国产精品乱人伊人网| 91是天天| 人妻无码视频一区二区三区久久| 天天日美女的B| 密臀在线一区尤物| 97在线视频免费观看| 亚洲一区日韩精品| 新久久AV| 狠狠综合网| 日韩欧美成人大香蕉| x97av| 抽插亚洲无码| 国内精品嫩模A∨私拍小视频| 操逼大黄片| 久草五月| 一二三四免费视频| 欧美国产有色电影| 国产一区二区在线看| 中文字幕精品探花视频| 在线播放免费av福利片| 九九色色| 大香伊人在线一区| 国产成人五月天丁香花| 日韩在线地址一| 婷婷91| 99国产天美| 亚洲色图欧美色18直播在线| 伊人久久AV诱惑悠悠| 欧美五十路熟| 丁香六月婷婷综合| 黄色高清久久无码依人| 欧美色97| 激情无码日韩| 97久精品| 女人18精品一区二区三区| 极品销魂美女一区二区| 免费中文在线| 啊啊啊快操我视频| 啊啊啊啊好疼| 欧美大香蕉专区网| 综精品久久久aaaa| 亚洲中文字幕熟女少妇一区二区| 免费av在线播放二区| 国产伦精品一区二区三区视频女| 影音先锋一区二区在线资源| 搡老女人老91妇女老熟女| 亚洲色图日韩精品| 牛牛久久国产精品视频一二三| 97ai亚洲| 爱我干综合| 嗯嗯嗯啊啊啊干死我吧| 极品销魂美女一区二区| 久热婷婷| 综合网亚洲1| 无码逼| 夜夜騷av、一區二區| 97超碰久久| 啪啪啪大香蕉| 后入人妻无码| 日韩一级成人毛片免费观看 | 亚洲男人天堂2| 操迟操逼在巾线Fre看| 大吊色| 国产黄色在线播放观看| 欧美黑人猛交春色影视大全| 东京热91| 九九干| 国产欧美第五页| 床戏久久久av一区二区麻豆| 国产成人在线观看综合| 豆1无夜无码| 欧美日本一区二区a人| 中文字幕97色| 强奸乱伦大香蕉| 亚洲一本色码中文字幕| 伊人久久在线视频观看| 国产91精品久久久久久久网曝门| 亚洲色图欧美色图另类图片| 91色碰| 亚洲天堂精品日韩电影| 小草精彩毛片| 蜜区区视频79| 五月天社区| 久久蜜桃一区二区| 淫妻综合网| 东京热天堂网| AND人妻系列| 91在线免费精品视频| 亚洲网自拍| 欧洲亚洲国产综合在线| 日韩一级二级三级免费看完整版国语版 | 久久久久久久久久久久久久久久9| 亚洲人妻中文在线视频| 传媒免费一区二区三区| 国产51色综合久久免费| 熟女熟妇一区二区三区视频| 大香网站| 久久精品噜噜噜成人看免欧美大片| 五月丁香综合激情| 夜夜嗨视频| 日韩美女,国产传媒,视频一区| 高清无码一区二区三区| 99热这里只有精品1| 色区久久| 激情小说图片亚洲首页| 老汉网| 少妇一区二区三区在线观看| av一区二区三区四区| 婷婷情色五月天| 粉嫩绯色AV一区二区在线| 久草成人影片| 久久不卡一区二区| 色狠狠 - 百度| 久久久久国色αv免费观看| A V少妇特黄三级| 黄片免费看的| 国产精品成人午夜福利| 动漫片子网站3黄| 天天看,天天做| 91亚洲电影| 中文字幕av丝袜| 1024日韩| A V视频日本| henhen91| 97视频在线免费播放| 95精品在线| 99久久e免费热视| 精品视频一区二区| 丝袜色综合| 嗯嗯嗯啊啊啊操的我好爽| 久久久亚洲高清不打码| 搡老女人老91妇女老熟女| 国产乱人妻精品入口| 日韩精品99999| 国产尤物AV尤物在线观看不卡| 蜜臀99久久精品久久久久| 天欧美在线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 天天综合网视频91| 少妇被玩视频二三区| 婷婷丁香成人| 桃花色综合影院| 久 久无码人妻AV| av线电影| 欧美在线啊啊啊| 99啪啪视频| 久久人人爽爽人人爽人人片αV| 白丝AV| 天天碰久久入| 欧美综合传媒| 欧美老妇女内射网址| 花野真衣| 人妻天天夜夜爽一区二区| 中国女人内射6XXXXX| 91伊人久| 呦呦一区| 3PAV乱伦视频| 亚洲欧洲综合| 日韩射图| 日1区2区3区2020| 欧美久久人妻少妇一区二区| 日韩成人午夜精品久久高潮| 天天日少妇逼AV| 国产刺激视频| 91精品久久久久久77777| 亚洲操逼无码| 欧美日韩国产色图在线| 黄色AAAAA欧美| 国产精品亚洲天堂网址| 97免费视频在线观看| 爱爱动态60秒| 高潮精品| 久久久999| 大象AV在线| 超清中文乱码字幕| 91精品人| 玖玖爱在线视频免费观看| 91无遮挡| 无码高清操逼网址| 伊人五月天婷婷| 97在线精品观看视频| 大学生口爆吞精| 99久久精品无码一区二区毛片免费| 丰满人妻被猛烈进入中| av影片在线观看不卡| 亚洲无码电影久久久| 老女人综合网| 免费av在线播放二区| 亚欧性爱无码| 秋霞无码av鲁丝片一区| 久久久久国产精品片区无码直播| 中日韩久久久| 国产成人+综合亚洲+天堂| 99热在线观看| 狼人综合婷婷激情四射 | 久久女人视频| 极品色www影院| 婷婷导航| 91九久| 69综合网| 狠狠色一区二区中文字幕| 狠狠做深爱婷婷久久二区| 色97综合中文字幕| 亚洲开心网| 日韩精品在线放| 欧亚性爱啪啪| 亚洲高潮少妇| 久久一区,青青青青草视频在线播放| 日本大香蕉| 插B在线观看| 极品销魂美女一区二区| 95自拍视频在线观看| 欧美精品1区2区3区| 亚洲熟女国产综合另类| 亚洲男人天堂2016| 欧美激情精品| 天天综合网日韩7799| 综合久久中文字幕综合日韩精品| 99久久无色码| 亚洲精品人伦一区二区| 性综合网| 中文字幕精品区先锋资源| www.婷婷六月天| 欧美亚洲厕所精品偷拍91 | 婷婷丁香五月综合| 啊啊啊好爽快点啊啊啊嗯嗯| 中文字幕亚洲欧美在线不卡| 中文字幕熟女人妻丝袜丝| 麻豆天美91| 亚卅熟女乱色| 精品美女在线视频| 91痴汉| 91在线超高颜值国产| 性爱av在线免费观看| 97国产亚洲中文在线| 亚洲色图A| 亚洲 日本 国产 综合| 亚洲日产专区| 国产精品白丝AV| 国产精品不卡一区二区电影| 色色亚洲| A男人的天堂| 国产家庭乱伦表演| 偷拍 精品另类 凸凹了四区| 91AV天堂| 青娱乐福利99| 97超级久久强资源| 国产高清在线自在拍69| 亚洲日本激情| 日本一区三级韩国| 人人妻人人爽| 这里都是精品在线观看| 免费久久9999| 92性色国产午夜福利在线661| 亚洲成人碰碰| 天天综合~91| 女同性恋久久| 综合网久久| 亚洲天天在线| 天美传媒av 在线| 亚洲另类色综合网站| WWW啪啪的com| 五月丁香影院| 2017天天操天天日| 韩国黄色片精品久久久| 中文字幕日韩人妻视频一区二区三区交换夫妻| 日本不卡一区| 少妇毛片久久| 久久精品一区二区| 欧美制服另类丝袜| 久久神马| 超碰97起碰| 91亚州| 91在线限制级| 欧美精品三级黄片| 少妇国产不卡| 边做饭边操逼逼| 人妻在线臀日韩| 成年无码动漫av片无尽在线 | 中文久久一区| 激情五月综合开心五月| 欧美性爱一区二区三区四区| 亚洲本色精品一区二区久久| 天天看片天天爽| 视频不卡中文字幕| 欧美熟妇精品黑人巨大一二三区| 欧美激情综合| 97日韩欧美亚洲| 丁香五月综合| 人人操欧美风骚| 91人人看| 午夜.DJ高清在线观看免费7| 欧美久久久| 欧美日韩香蕉| 男人的天堂VA| 18精品一区| 一级一性爱免费视频| 伊人一区二区三区| 日日碰狠狠添天天爽超| 欧美少妇高潮视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产精品免费久久久久久久久久| 婷婷伊人一区| 性在久久久久久| 日韩干B| 欧插网站| 亚洲一级特黄大片在线播放91| 99热18这里只有精品| 另类在线| 色欲三区| 欧美在线第五页| 丝袜夫妻自拍| 欧美日韩国产高清在线一二三区| 成人久久久精品| 亚洲综合小说另类图欧美视频激情小说色五月天 | 亚洲欧美一区二区不卡视频播放| 一级久久久久久久久久久| 九九九成人| 久久大线蕉一区| 97干在线| 亚洲av综合伊人久久| 日韩中文字幕精品一二三事国产精品 | 国产高清不卡视频| 99性视频| 大学生口爆吞精| 91男人综合| 极品内射| 一本久道久久综合狠狠爱| 日韩强奸av| 久久亚洲一区女同性恋中文字幕| 欧美色66| 青娱乐亚洲自拍| 色九九九九九九| 嗯嗯嗯不要不要免费视频| 欧美成人黄网色网站| 国产黄色视频久久| nuu12国产麻豆精品| 欧美一区二区三区大综合| 激情五月天视频| 黄色电影在线播放综合网站| 久久超碰97| 久久久精品九| 亚洲 图片 综合91| 日本久久精品| 乱伦av.com| 国产真乱mangent| 一区二区三区看视频| 欧洲亚洲综合| 亚洲综合九| 老鸭窝亚洲毛片| 色综合色色| 蜜乳AV网址| 青青免费在线视频一区| 国产后入清纯| 亚洲色入欧美| 欧美一二在线| 夜夜高潮夜夜爽高清视频一 | 日本啊啊啊啊啊视频| 亚洲综合色男人网| 色色色综合网| 丝袜美腿制服人妻二区中文字幕| 黄色人人| 一个色导综合| 青青色在线观看| 国产精品一区二区三| 综合五月天| 中国少妇啪啪视频| 国产和美国毛片| 欧美91久久久久| 91精品久久久久久77777| 嗯嗯啊啊用力视频免费| 久久伊人在线五区| 久久最新免费视频23| 久久久久亚洲Aⅴ无码| 精品人体无圣光凹凸| 亚洲欧美日韩二区视频| 艹精品| 秋霞成人做爱| 变态乱伦伪娘灌肠一区二区| 久久综合国产精品国产| 91丨国产丨白浆秘 洗澡动漫| 亚洲综合电影| 日韩精品在线放| 亚洲精品尤物yw在线影院| 日韩有码 一区二区三区| 国产强奸91| 国产AV毛片| 久久精品中文字幕无码l| 国产一区二区av综合| 欧美精品自慰系列寂寞少妇| 极品尤物在线观看| 九九精品热| 婷婷三区| 伊人991|