USMSMP.msmp_to_dic 轉成回測用格式

將多個 DataFrame(以 dataframes 傳入)依標的代碼拆分,整理成字典格式,方便後續個股逐筆處理。同時過濾掉停牌日期的資料,並附加調整後的開盤與收盤價格。
轉成符合backtest的數據格式

Example

input
con1 =api.USMSMP.季財報_財務指標.股價淨值比>2 
con2 = api.USMSMP.季營收.QoQ>20 
Close = api.USMSMP.日_K.Close 
con3 = (Close>10) &(Close<100) 
pos = con1 &con2 &con3 
qty = np.floor(100/Close) 
dic = api.USMSMP.msmp_to_dic(['sig','qty'],pos,qty)
dic['UMC']
output
date id sig qty Close Open
02021-08-05UMCFalse811.550011.4200
12021-08-06UMCFalse811.330011.2600
22021-08-09UMCFalse811.200011.2600
32021-08-10UMCFalse910.830010.9000
42021-08-11UMCFalse910.840010.9100
...
9952025-07-24UMCFalse137.32007.4600
9962025-07-25UMCFalse137.30007.2800
9972025-07-28UMCFalse137.20007.3000
9982025-07-29UMCFalse147.12007.1900
9992025-07-30UMCTrue147.10007.0300

Attribute

參數 資料型態 說明
names list 對應每個dataframe的欄位名稱。例如:['sig', 'qty']
dataframes kgi.msmp.dataframe.ProboDataFrame 多檔股票多個時間的資料表,index 是日期,columns 是股票代碼。可以放1個或多個。
startday object 起始日,格式為YYYYMMDD

Return Attribute

以證券代碼(symbol)為鍵,對應值為該證券的 pandas.DataFrame
dic{symbol1:dataFrame1, symbol2:dataFrame2,….}

DataFrame 欄位說明:

欄位名稱 資料型態 說明
date datetime64 日期
id object 股票代號
sig bool 是longsig設定的欄位
值為True表示進場信號,False為出場信號
qty int 進場時的進場股數
close float 收盤價
open float 開盤價
- 其他由 names 參數指定的欄位名稱,對應各資料表中欄位資料