abupy文件结构功能
學(xué)習(xí)量化系統(tǒng)開(kāi)發(fā)
量化系統(tǒng)分為:
擇時(shí)系統(tǒng):
系統(tǒng)選股:
于是想學(xué)習(xí)github上的開(kāi)源項(xiàng)目:
abupy
vnpy
abupy量化交易系統(tǒng)學(xué)習(xí),想了解代碼的功能結(jié)構(gòu)。
作者在開(kāi)發(fā)時(shí),將文件的功能都標(biāo)注明確,該文只是將其內(nèi)容提取。
這個(gè)習(xí)慣比較好,有利于其他人快速了解一個(gè)項(xiàng)目,值得學(xué)習(xí)。
abupy文件結(jié)構(gòu)功能
========AlphaBu: =======
—ABuAlpha.py :
—ABuPickBase.py : 擇時(shí)與選股抽象基類(lèi)
—ABuPickStockExecute.py : 包裝選股worker進(jìn)行,完善前后工作
—ABuPickStockMaster.py : 選股并行多任務(wù)調(diào)度模塊
—ABuPickStockWorker.py : 選股具體工作者,整合金融時(shí)間序列,選股因子,資金類(lèi)進(jìn)行
選股操作,在擇時(shí)金融時(shí)間序列之前一段時(shí)間上迭代初始交易對(duì)象
進(jìn)行選股因子的擬合操作
—ABuPickTimeExecute.py : 多支交易對(duì)象進(jìn)行擇時(shí)操作封裝模塊,內(nèi)部通過(guò)AbuPickTimeWorker進(jìn)行
擇時(shí),包裝完善前后工作,包括多進(jìn)程下的進(jìn)度顯示,錯(cuò)誤處理捕獲,結(jié)果
處理等事務(wù)
—ABuPickTimeMaster.py : 擇時(shí)并行多任務(wù)調(diào)度模塊
—ABuPickTimeWorker.py : 擇時(shí)具體工作者,整合金融時(shí)間序列,買(mǎi)入因子,賣(mài)出因子,資金類(lèi)進(jìn)行
擇時(shí)操作,以時(shí)間驅(qū)動(dòng)擇時(shí)事件的發(fā)生
========BetaBu: =======
—ABuAtrPosition.py : 示例倉(cāng)位管理:atr倉(cāng)位管理模塊
—ABuBeta.py :
—ABuKellyPosition.py : 示例倉(cāng)位管理:kelly倉(cāng)位管理模塊
—ABuPositionBase.py : 風(fēng)險(xiǎn)控制倉(cāng)位管理基礎(chǔ)
—ABuPtPosition.py : 示例倉(cāng)位管理:示例價(jià)格位置倉(cāng)位模塊
========CheckBu: =======
—ABuChecker.py : 檢查類(lèi),檢查函數(shù)對(duì)象、函數(shù)參數(shù)、函數(shù)返回值
—ABuChecks.py : 檢查范圍的函數(shù)
—ABuFuncUtil.py : 函數(shù)對(duì)象的工具類(lèi)
—ABuProcessor.py : 預(yù)處理函數(shù)參數(shù)或返回值
========CoreBu: =======
—ABu.py : 封裝執(zhí)行擇時(shí),選股回測(cè)。
推薦在使用abu.run_loop_back()函數(shù)進(jìn)行全市場(chǎng)回測(cè)前使用abu.run_kl_update()函數(shù)首先將數(shù)據(jù)進(jìn)行更新, 在run_kl_update()中它會(huì)首選強(qiáng)制使用網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行更新,在更新完畢后,更改數(shù)據(jù)獲取方式為本地緩存, 使用abu.run_kl_update()的好處是將數(shù)據(jù)更新與策略回測(cè)分離,在運(yùn)行效率及問(wèn)題排查上都會(huì)帶來(lái)正面的提升—ABuBase.py : 類(lèi)基礎(chǔ)通用模塊
—ABuDeprecated.py : Deprecated警告模塊
—ABuEnv.py : 全局環(huán)境配置模塊
—ABuEnvProcess.py : 多任務(wù)子進(jìn)程拷貝跟隨主進(jìn)程設(shè)置模塊
—ABuFixes.py : 對(duì)各個(gè)依賴庫(kù)不同版本,不同系統(tǒng)的規(guī)范進(jìn)行統(tǒng)一以及問(wèn)題修正模塊
—ABuParallel.py : 并行封裝模塊,主要針對(duì)不同平臺(tái)統(tǒng)一接口規(guī)范:
windows 上使用joblib進(jìn)行長(zhǎng)時(shí)間的多任務(wù),如超過(guò)10小時(shí)以上時(shí),在任何最后有系統(tǒng)pop任務(wù)
的錯(cuò)誤,所以windows上使用ProcessPoolExecutor進(jìn)行多任務(wù),套上Parallel和delayed保持接口的
通用性及規(guī)范統(tǒng)一
—ABuPdHelper.py : 封裝pandas中版本兼容問(wèn)題,保持接口規(guī)范情況下,避免警告
—ABuStore.py : 針對(duì)交易回測(cè)結(jié)果存儲(chǔ),讀取模塊
========CrawlBu: =======
—ABuXqApi.py :
—ABuXqConsts.py : s:static
—ABuXqCrawl.py : :return: dict
一級(jí)菜單:類(lèi)別,如。美股,港股,滬深,基金,債券等
二級(jí)菜單:如,行業(yè)分類(lèi),美股一覽等
三級(jí)菜單:可能會(huì)有(,比如行業(yè)就需細(xì)分)
—ABuXqCrawlImp.py : 使用BeautifulSoup解析html
—ABuXqFile.py : 臨時(shí)存取 stock info
========DLBu: =======
—ABuDL.py :
—ABuDLImgStd.py : 深度學(xué)習(xí)工具模塊,為caffe等工具庫(kù)標(biāo)準(zhǔn)化圖片格式
—ABuDLTVSplit.py : 深度學(xué)習(xí)工具模塊,為caffe工具庫(kù)做數(shù)據(jù)集準(zhǔn)備,
切割訓(xùn)練集
========ExtBu: ======= 外部依賴工具
========FactorBuyBu: =======
—ABuBuyFactorWrap.py : 買(mǎi)入因子類(lèi)裝飾器模塊
—ABuFactorBuyBase.py : 買(mǎi)入擇時(shí)策略因子基礎(chǔ)模塊
—ABuFactorBuyBreak.py : 買(mǎi)入擇時(shí)示例因子:突破買(mǎi)入擇時(shí)因子
—ABuFactorBuyDemo.py : 示例買(mǎi)入擇時(shí)因子
—ABuFactorBuyDM.py : 買(mǎi)入擇時(shí)示例因子:動(dòng)態(tài)自適應(yīng)雙均線策略
—ABuFactorBuyTrend.py : 買(mǎi)入擇時(shí)示例因子:長(zhǎng)線趨勢(shì)跟蹤與短線均值回復(fù)的配合
—ABuFactorBuyWD.py : 買(mǎi)入擇時(shí)示例因子:日勝率均值買(mǎi)入擇時(shí)因子
========FactorSellBu: =======
—ABuFactorAtrNStop.py : 賣(mài)出擇時(shí)示例因子:n倍atr(止盈止損)擇時(shí)賣(mài)出策略
—ABuFactorCloseAtrNStop.py : 賣(mài)出擇時(shí)示例因子: 較小利潤(rùn)值 < 買(mǎi)入后最大收益價(jià)格 - 今日價(jià)格 < 較大利潤(rùn)值 -> 止盈賣(mài)出
只做為單邊止盈因子使用,作為利潤(rùn)保護(hù)因子使用
—ABuFactorPreAtrNStop.py : 賣(mài)出擇時(shí)示例因子:單日最大跌幅n倍atr止損
做為單邊止損因子使用,作為風(fēng)險(xiǎn)控制保護(hù)因子
—ABuFactorSellBase.py : 賣(mài)出擇時(shí)策略因子基礎(chǔ)模塊
—ABuFactorSellBreak.py : 賣(mài)出擇時(shí)示例因子:突破賣(mài)出擇時(shí)因子
—ABuFactorSellDM.py : 賣(mài)出擇時(shí)示例因子,雙均線策略
—ABuFactorSellNDay.py : 賣(mài)出擇時(shí)示例因子:n日賣(mài)出策略,不管什么結(jié)果,買(mǎi)入后只持有N天
—ABuFS.py :
========IndicatorBu: =======
—ABuND.py :
—ABuNDAtr.py : ATR
ATR又稱 Average true range平均真實(shí)波動(dòng)范圍,簡(jiǎn)稱ATR指標(biāo),是由J.Welles Wilder 發(fā)明的,ATR指標(biāo)主要是用來(lái)衡量市場(chǎng)波動(dòng)的強(qiáng)烈度,
即為了顯示市場(chǎng)變化率的指標(biāo)。
—ABuNDMa.py : 移動(dòng)平均線,Moving Average,簡(jiǎn)稱MA,原本的意思是移動(dòng)平均,由于我們將其制作成線形,所以一般稱之為移動(dòng)平均線,簡(jiǎn)稱均線。
—ABuNDMacd.py : MACD
—ABuNDRsi.py : 相對(duì)強(qiáng)弱指數(shù)(RSI)是通過(guò)比較一段時(shí)期內(nèi)的平均收盤(pán)漲數(shù)和平均收盤(pán)跌數(shù)來(lái)分析市場(chǎng)買(mǎi)沽盤(pán)的意向和實(shí)力,
從而作出未來(lái)市場(chǎng)的走勢(shì)
========MarketBu: =======
—ABuDataBase.py : 數(shù)據(jù)源基礎(chǔ)模塊
—ABuDataCache.py : 對(duì)數(shù)據(jù)采集進(jìn)行存儲(chǔ),讀取,以及數(shù)據(jù)更新merge策略等實(shí)現(xiàn)模塊
—ABuDataCheck.py : 本地緩存監(jiān)測(cè)模塊
—ABuDataFeed.py : 內(nèi)置數(shù)據(jù)源示例實(shí)現(xiàn)模塊:
—ABuDataParser.py : 數(shù)據(jù)源解析模塊以及示例內(nèi)置數(shù)據(jù)源的解析類(lèi)實(shí)現(xiàn)
—ABuDataSource.py : 數(shù)據(jù)源模塊
—ABuHkUnit.py : 港股每一手交易數(shù)量模塊
—ABuIndustries.py : 行業(yè)分類(lèi)模塊,僅支持美股,a股,港股
—ABuMarket.py : 市場(chǎng)相關(guān)切割,選股,等操作模塊
—ABuMarketDrawing.py : 市場(chǎng),數(shù)據(jù)可視化繪制模塊
—ABuNetWork.py : 網(wǎng)絡(luò)統(tǒng)一接口模塊
—ABuSymbol.py : symbol模塊
—ABuSymbolFutures.py : 期貨symbol數(shù)據(jù)模塊
—ABuSymbolPd.py : 數(shù)據(jù)對(duì)外接口模塊,其它模塊需要數(shù)據(jù)都只應(yīng)該使用ABuSymbolPd, 不應(yīng)涉及其它內(nèi)部模塊的使用
—ABuSymbolStock.py : 股票類(lèi)型的symbol模塊,a股,美股,港股
========MetricsBu: =======
—ABuCrossVal.py : 策略驗(yàn)證模塊
—ABuGridHelper.py : 組合參數(shù)輔助模塊
—ABuGridSearch.py : 借鑒sklearn GridSearch,針對(duì)買(mǎi)入因子,賣(mài)出因子,選股因子最合進(jìn)行最優(yōu)尋找分析
—ABuMetrics.py :
—ABuMetricsBase.py : 度量模塊基礎(chǔ)
—ABuMetricsFutures.py : 期貨度量模塊
—ABuMetricsScore.py : 回測(cè)結(jié)果評(píng)分模塊
—ABuMetricsTC.py : 比特幣度量模塊
========MLBu: =======
—ABuML.py : 中間層,從上層拿到x,y,df
擁有create estimator
—ABuMLApi.py :
—ABuMLBinsCs.py : 直觀可視化制作qcut的bins點(diǎn)
—ABuMLCreater.py : 封裝常用學(xué)習(xí)器的初始化流程的模塊
—ABuMLExecute.py : 封裝常用的分析方式及流程模塊
—ABuMLGrid.py : 封裝grid search相關(guān)操作模塊
—ABuMLPd.py : 封裝AbuML為業(yè)務(wù)邏輯層進(jìn)行規(guī)范模塊
========PickStockBu: =======
—ABuPickRegressAngMinMax.py : 選股示例因子:價(jià)格擬合角度選股因子
—ABuPickSimilarNTop.py : 選股示例因子:相似度選股因子,主要示例fit_first_choice
—ABuPickStock.py :
—ABuPickStockBase.py : 選股因子抽象基類(lèi)
—ABuPickStockDemo.py : 選股示例因子:價(jià)格選股因子
—ABuPickStockPriceMinMax.py : 選股示例因子:價(jià)格選股因子
========RomDataBu: ======= 數(shù)據(jù)文件
========SimilarBu: =======
—ABuCorrcoef.py : 相關(guān)系數(shù)具體計(jì)算功能實(shí)現(xiàn)模塊
—ABuSimilar.py : 相關(guān)系數(shù)相似應(yīng)用模塊
—ABuSimilarCache.py :
—ABuSimilarDrawing.py : 相關(guān)系數(shù),相似度可視化模塊
========SlippageBu: =======
—ABuSlippage.py :
—ABuSlippageBuyBase.py : 日內(nèi)滑點(diǎn)買(mǎi)入價(jià)格決策基礎(chǔ)模塊:暫時(shí)遷移簡(jiǎn)單實(shí)現(xiàn)方式,符合回測(cè)需求,如遷移實(shí)盤(pán)模塊
需添加日內(nèi)擇時(shí)策略,通過(guò)日內(nèi)分鐘k線,實(shí)現(xiàn)日內(nèi)分鐘k線擇時(shí),更微觀的
實(shí)現(xiàn)日內(nèi)擇時(shí)滑點(diǎn)功能,不考慮大資金的沖擊成本及系統(tǒng)外的大幅滑點(diǎn)
—ABuSlippageBuyMean.py : 日內(nèi)滑點(diǎn)買(mǎi)入示例實(shí)現(xiàn):均價(jià)買(mǎi)入最簡(jiǎn)單的回測(cè)買(mǎi)入方式,優(yōu)點(diǎn)簡(jiǎn)單,且回測(cè)高效,在回測(cè)交易數(shù)量足夠多的前提下也能接近實(shí)盤(pán)
—ABuSlippageSellBase.py : 日內(nèi)滑點(diǎn)賣(mài)出價(jià)格決策基礎(chǔ)模塊:暫時(shí)遷移簡(jiǎn)單實(shí)現(xiàn)方式,符合回測(cè)需求,如遷移實(shí)盤(pán)模塊
需添加日內(nèi)擇時(shí)策略,通過(guò)日內(nèi)分鐘k線,實(shí)現(xiàn)日內(nèi)分鐘k線擇時(shí),更微觀的
實(shí)現(xiàn)日內(nèi)擇時(shí)滑點(diǎn)功能,不考慮大資金的沖擊成本及系統(tǒng)外的大幅滑點(diǎn)
—ABuSlippageSellMean.py : 日內(nèi)滑點(diǎn)賣(mài)出示例實(shí)現(xiàn):均價(jià)賣(mài)出
最簡(jiǎn)單的回測(cè)賣(mài)出方式,優(yōu)點(diǎn)簡(jiǎn)單,且回測(cè)高效,在回測(cè)交易
數(shù)量足夠多的前提下也能接近實(shí)盤(pán)
========TLineBu: =======
—ABuTL.py :
—ABuTLAtr.py : 計(jì)算線atr模塊
—ABuTLExecute.py : 技術(shù)線內(nèi)部執(zhí)行模塊
—ABuTLGolden.py : 黃金分割及比例分割示例模塊
—ABuTLine.py : 技術(shù)線對(duì)象,對(duì)外執(zhí)行,輸出模塊
—ABuTLJump.py : 跳空缺口模塊
—ABuTLSimilar.py : 相關(guān)系數(shù)上層技術(shù)線應(yīng)用模塊
—ABuTLVwap.py : VWAP: Volume Weighted Average Price 成交量加權(quán)平均價(jià)
非標(biāo)準(zhǔn)傳統(tǒng)意義vwap計(jì)算,即非使用高頻的分鐘k線和量進(jìn)行計(jì)算,只是套用概念計(jì)算
日線級(jí)別的vwap
—ABuTLWave.py : 量化波動(dòng)程度模塊
========TradeBu: =======
—ABuBenchmark.py : 基準(zhǔn)模塊,基準(zhǔn)的作用在于交易時(shí)間范圍確定,交易時(shí)間序列對(duì)齊,
拋棄異常時(shí)間序列,交易市場(chǎng)范圍限制,以及對(duì)比與策略的度量結(jié)果等作用
—ABuCapital.py : 資金模塊,不區(qū)分美元,人民幣等類(lèi)型,做美股交易默認(rèn)當(dāng)作美元,a股默認(rèn)當(dāng)作人民幣
—ABuCommission.py : 手續(xù)費(fèi)模塊
—ABuKLManager.py : 金融時(shí)間序列管理模塊
—ABuMLFeature.py : 內(nèi)置特征定義,以及用戶特征擴(kuò)展,定義模塊
—ABuOrder.py : 交易訂單模塊
—ABuTradeDrawer.py : 交易可視化模塊
—ABuTradeExecute.py : 交易執(zhí)行模塊
—ABuTradeProxy.py : 交易執(zhí)行代理模塊
========UmpBu: =======
—ABuUmp.py :
—ABuUmpBase.py : ump基礎(chǔ)模塊
—ABuUmpEdgeBase.py : 邊裁基礎(chǔ)實(shí)現(xiàn)模塊
—ABuUmpEdgeDeg.py : 示例ump邊裁特征走勢(shì)擬合角度模塊
—ABuUmpEdgeFull.py : 示例ump邊裁特征多混模塊
—ABuUmpEdgeMul.py : 示例ump邊裁特征單混模塊
—ABuUmpEdgePrice.py : 示例ump邊裁特征價(jià)格模塊
—ABuUmpEdgeWave.py : 示例ump邊裁價(jià)格波動(dòng)特征模塊
—ABuUmpMainBase.py : 主裁基礎(chǔ)實(shí)現(xiàn)模塊
—ABuUmpMainDeg.py : 示例ump主裁特征走勢(shì)擬合角度模塊
—ABuUmpMainFull.py : 示例ump多混特征模塊
—ABuUmpMainJump.py : 示例ump主裁特征跳空模塊
—ABuUmpMainMul.py : 示例ump單混特征模塊
—ABuUmpMainPrice.py : 示例ump價(jià)格特征模塊
—ABuUmpMainWave.py : 示例ump價(jià)格波動(dòng)特征模塊
—ABuUmpManager.py : 買(mǎi)入賣(mài)出因子與ump進(jìn)行組織管理通信模塊
========UtilBu: =======
—ABuDateUtil.py : 時(shí)間日期工具模塊
—ABuDelegateUtil.py : 委托工具模塊
—ABuDTUtil.py : 通用裝飾器, 上下文管理器工具模塊
—ABuFileUtil.py : 文件處理讀取寫(xiě)入
—ABuKLUtil.py : abupy中使用的金融時(shí)間序列分析模塊,
—ABuLazyUtil.py : lazy工具模塊
—ABuMacUtil.py : mac os 平臺(tái)工具模塊
—ABuMd5.py : md5, crc32等加密,變換匹配模塊
—ABuOsUtil.py : 操作系統(tǒng)工具函數(shù)整合模塊
—ABuPlatform.py : 平臺(tái)信息工具模塊
—ABuProgress.py : 輔助進(jìn)度顯示模塊,多進(jìn)程,單進(jìn)程
—ABuRegUtil.py : 擬合工具模塊
—ABuScalerUtil.py : 標(biāo)準(zhǔn)規(guī)范化數(shù)據(jù)工具模塊
—ABuStatsUtil.py : 統(tǒng)計(jì)相關(guān)工具模塊
—ABuStrUtil.py : 字符工具模塊
—ABuWinUtil.py : windows pop彈窗,主要用在長(zhǎng)時(shí)間且耗時(shí)的任務(wù)中,提示重要問(wèn)題信息
========WidgetBu: =======
—ABuWGBase.py : 股票基本信息圖形可視化
—ABuWGBFBase.py : 買(mǎi)入因子參數(shù)以及選擇圖形可視化
—ABuWGBRun.py : 上層回測(cè)圖形可視化
—ABuWGBRunBase.py : 股票基本信息圖形可視化
—ABuWGBSymbol.py : 股票池選股ui界面
—ABuWGBuyFactor.py : 買(mǎi)入因子參數(shù)以及選擇圖形可視化
—ABuWGCrossVal.py : 策略相關(guān)性交叉驗(yàn)證圖形可視化
—ABuWGDATool.py : 量化振幅分析工具圖形可視化
—ABuWGGridSearch.py : 策略最優(yōu)參數(shù)grid search圖形可視化
—ABuWGPickStock.py : 選股因子參數(shù)以及選擇圖形可視化
—ABuWGPosBase.py : 倉(cāng)位資金管理參數(shù)以及選擇圖形可視化
—ABuWGPosition.py : 資金倉(cāng)位管理策略圖形可視化
—ABuWGPSBase.py : 選股因子參數(shù)以及選擇圖形可視化
—ABuWGQuantTool.py : 量化技術(shù)分析工具圖形可視化
—ABuWGSellFactor.py : 賣(mài)出因子參數(shù)以及選擇圖形可視化
—ABuWGSFBase.py : 賣(mài)出因子參數(shù)以及選擇圖形可視化
—ABuWGSMTool.py : 量化相關(guān)分析工具圖形可視化
—ABuWGStockInfo.py : 股票基本信息圖形可視化
—ABuWGTLTool.py : 量化技術(shù)分析工具圖形可視化
—ABuWGToolBase.py : 量化技術(shù)分析工具圖形可視化基礎(chǔ)模塊
—ABuWGUmp.py : ump回測(cè)裁判訓(xùn)練以及交易預(yù)測(cè)攔截圖形可視化
—ABuWGUpdate.py : 數(shù)據(jù)下載圖形可視化
—ABuWGVerifyTool.py : 策略驗(yàn)證工具圖形可視化
提取文件功能代碼
import os import rebase_path = './'def file_or_dir(path):if '.idea' in path or '__' in path or 'RomDataBu' in path or 'ExtBu' in path:returnif os.path.isfile(path):try:with open(path, 'r', encoding='utf-8') as f:text = f.read()try:content = re.findall('"""(.*?)"""', text,re.S)[0].strip()except:content = ''file_path = path.replace('/', '.').replace('\\', '.')file_name = '.'.join(file_path.split('.')[-2:])dir_path = file_path.replace(file_name, '')file_path = file_path.replace(dir_path, '---')print(file_path, ': ', content)returnexcept:print(path, '---------有誤')returnelse:path_list = os.listdir(path)print()print(f"========{path.replace('./','')}: =======")print()for path_l in path_list:all_path = os.path.join(path, path_l)file_or_dir(all_path)file_or_dir(base_path)總結(jié)
以上是生活随笔為你收集整理的abupy文件结构功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【软工Work1】四则加减乘除混合运算(
- 下一篇: 【文献阅读】ChangeNet——变化检