Commit 57df73cd authored by Dr.李's avatar Dr.李

using hb classification

parent 64406a81
...@@ -497,15 +497,25 @@ def fd_fund_mktv(security_ids, trade_dt): ...@@ -497,15 +497,25 @@ def fd_fund_mktv(security_ids, trade_dt):
return df return df
def fd_rl_classification(security_ids, trade_dt): def fd_rl_classification(security_ids, trade_dt, source="hb"):
sec_id_strs = _join_ids(security_ids) sec_id_strs = _join_ids(security_ids)
query = f""" if source == "rl":
SELECT security_id as SECURITYID, rl_class, rl_class_name, rl_sub_class, rl_sub_class_name FROM fd_rl_classification table = "fd_rl_classification"
WHERE query = f"""
trade_date = '{_to_yyyymmdd(trade_dt)}' AND SELECT security_id as SECURITYID, rl_class, rl_class_name, rl_sub_class, rl_sub_class_name FROM {table}
security_id in ({sec_id_strs}) AND WHERE
flag = 1 trade_date = '{_to_yyyymmdd(trade_dt)}' AND
""" security_id in ({sec_id_strs}) AND
flag = 1
"""
elif source == "hb":
table = "hb_fd_classification"
query = f"""
SELECT security_code as SECURITYID, rl_class, rl_class_name, rl_sub_class, rl_sub_class_name FROM {table}
WHERE
security_code in ({sec_id_strs}) AND
flag = 1
"""
return read_sql(query, source="mysql").sort_values("SECURITYID").reset_index(drop=True) return read_sql(query, source="mysql").sort_values("SECURITYID").reset_index(drop=True)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 1,
"id": "ca389ee5-b800-4682-bfab-a22a6247bd67", "id": "ca389ee5-b800-4682-bfab-a22a6247bd67",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 2,
"id": "008213ed-f569-4535-8519-7a5b1b06503c", "id": "008213ed-f569-4535-8519-7a5b1b06503c",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 5, "execution_count": 3,
"id": "be10d317-bca6-41db-9b54-56573cd564a6", "id": "be10d317-bca6-41db-9b54-56573cd564a6",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
"4 19000101 " "4 19000101 "
] ]
}, },
"execution_count": 5, "execution_count": 3,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 6, "execution_count": 4,
"id": "ffbac3af-39d6-4cd3-95cb-705c32380985", "id": "ffbac3af-39d6-4cd3-95cb-705c32380985",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
...@@ -197,40 +197,40 @@ ...@@ -197,40 +197,40 @@
" <td>1030000867</td>\n", " <td>1030000867</td>\n",
" <td>1.9650</td>\n", " <td>1.9650</td>\n",
" <td>1.708075</td>\n", " <td>1.708075</td>\n",
" <td>1.940913e+08</td>\n", " <td>1.050033e+09</td>\n",
" <td>3.813894e+08</td>\n", " <td>2.063315e+09</td>\n",
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>1</th>\n", " <th>1</th>\n",
" <td>1030004356</td>\n", " <td>1030004356</td>\n",
" <td>1.5530</td>\n", " <td>1.5530</td>\n",
" <td>1.569653</td>\n", " <td>1.569653</td>\n",
" <td>3.329090e+08</td>\n", " <td>2.049993e+08</td>\n",
" <td>5.170077e+08</td>\n", " <td>3.183639e+08</td>\n",
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>2</th>\n", " <th>2</th>\n",
" <td>1030005207</td>\n", " <td>1030005207</td>\n",
" <td>1.8904</td>\n", " <td>1.8904</td>\n",
" <td>1.689080</td>\n", " <td>1.689080</td>\n",
" <td>8.860713e+07</td>\n", " <td>9.794179e+07</td>\n",
" <td>1.675029e+08</td>\n", " <td>1.851492e+08</td>\n",
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>3</th>\n", " <th>3</th>\n",
" <td>1030007006</td>\n", " <td>1030007006</td>\n",
" <td>1.1860</td>\n", " <td>1.1860</td>\n",
" <td>0.168919</td>\n", " <td>0.168919</td>\n",
" <td>4.971115e+08</td>\n", " <td>5.582928e+08</td>\n",
" <td>5.895742e+08</td>\n", " <td>6.621352e+08</td>\n",
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>4</th>\n", " <th>4</th>\n",
" <td>1030008874</td>\n", " <td>1030008874</td>\n",
" <td>1.7560</td>\n", " <td>1.7560</td>\n",
" <td>1.679213</td>\n", " <td>1.679213</td>\n",
" <td>1.152421e+07</td>\n", " <td>2.997801e+06</td>\n",
" <td>2.023652e+07</td>\n", " <td>5.264138e+06</td>\n",
" </tr>\n", " </tr>\n",
" </tbody>\n", " </tbody>\n",
"</table>\n", "</table>\n",
...@@ -238,14 +238,14 @@ ...@@ -238,14 +238,14 @@
], ],
"text/plain": [ "text/plain": [
" SECURITYID UNITNAV NAVGRTD ENDFDSHARE MKTV\n", " SECURITYID UNITNAV NAVGRTD ENDFDSHARE MKTV\n",
"0 1030000867 1.9650 1.708075 1.940913e+08 3.813894e+08\n", "0 1030000867 1.9650 1.708075 1.050033e+09 2.063315e+09\n",
"1 1030004356 1.5530 1.569653 3.329090e+08 5.170077e+08\n", "1 1030004356 1.5530 1.569653 2.049993e+08 3.183639e+08\n",
"2 1030005207 1.8904 1.689080 8.860713e+07 1.675029e+08\n", "2 1030005207 1.8904 1.689080 9.794179e+07 1.851492e+08\n",
"3 1030007006 1.1860 0.168919 4.971115e+08 5.895742e+08\n", "3 1030007006 1.1860 0.168919 5.582928e+08 6.621352e+08\n",
"4 1030008874 1.7560 1.679213 1.152421e+07 2.023652e+07" "4 1030008874 1.7560 1.679213 2.997801e+06 5.264138e+06"
] ]
}, },
"execution_count": 6, "execution_count": 4,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -258,7 +258,7 @@ ...@@ -258,7 +258,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 7, "execution_count": 5,
"id": "3dc7be9d-e8c2-4566-bf14-d617ea230c14", "id": "3dc7be9d-e8c2-4566-bf14-d617ea230c14",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
...@@ -325,11 +325,11 @@ ...@@ -325,11 +325,11 @@
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>4</th>\n", " <th>4</th>\n",
" <td>1030008874</td>\n", " <td>1030010453</td>\n",
" <td>9902</td>\n", " <td>9901</td>\n",
" <td>混合型基金</td>\n", " <td>股票型基金</td>\n",
" <td>990202</td>\n", " <td>990102</td>\n",
" <td>高权益仓位混合型基金</td>\n", " <td>普通股票型基金</td>\n",
" </tr>\n", " </tr>\n",
" </tbody>\n", " </tbody>\n",
"</table>\n", "</table>\n",
...@@ -341,10 +341,10 @@ ...@@ -341,10 +341,10 @@
"1 1030004356 9901 股票型基金 990102 普通股票型基金\n", "1 1030004356 9901 股票型基金 990102 普通股票型基金\n",
"2 1030005207 9901 股票型基金 990102 普通股票型基金\n", "2 1030005207 9901 股票型基金 990102 普通股票型基金\n",
"3 1030007006 9902 混合型基金 990202 高权益仓位混合型基金\n", "3 1030007006 9902 混合型基金 990202 高权益仓位混合型基金\n",
"4 1030008874 9902 混合型基金 990202 高权益仓位混合型基金" "4 1030010453 9901 股票型基金 990102 普通股票型基金"
] ]
}, },
"execution_count": 7, "execution_count": 5,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -357,7 +357,7 @@ ...@@ -357,7 +357,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8, "execution_count": 6,
"id": "1055c68c-3875-489b-acaa-a9046d98a2c1", "id": "1055c68c-3875-489b-acaa-a9046d98a2c1",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
...@@ -368,7 +368,7 @@ ...@@ -368,7 +368,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": 7,
"id": "00d6c888-682e-43c5-8c57-420a279effa3", "id": "00d6c888-682e-43c5-8c57-420a279effa3",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
...@@ -389,7 +389,7 @@ ...@@ -389,7 +389,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 10, "execution_count": 8,
"id": "e1817df4-ce3f-48ca-b656-2a17abc18f8e", "id": "e1817df4-ce3f-48ca-b656-2a17abc18f8e",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
...@@ -406,17 +406,19 @@ ...@@ -406,17 +406,19 @@
" def calc(g):\n", " def calc(g):\n",
" market_manager_index_ret = g.MKTV @ g.NAVGRTD / (1e-10 + g.MKTV.sum()) / 100.0\n", " market_manager_index_ret = g.MKTV @ g.NAVGRTD / (1e-10 + g.MKTV.sum()) / 100.0\n",
" flags = g.rl_sub_class.isin(BOND_CLASSES)\n", " flags = g.rl_sub_class.isin(BOND_CLASSES)\n",
" bond_market_mktv = g[flags].MKTV.sum()\n",
" bond_market_manager_index_ret = g[flags].MKTV @ g[flags].NAVGRTD / (1e-10 + g[flags].MKTV.sum()) / 100.0\n", " bond_market_manager_index_ret = g[flags].MKTV @ g[flags].NAVGRTD / (1e-10 + g[flags].MKTV.sum()) / 100.0\n",
" equity_market_mktv = g[~flags].MKTV.sum()\n",
" equity_market_manager_index_ret = g[~flags].MKTV @ g[~flags].NAVGRTD / (1e-10 + g[~flags].MKTV.sum()) / 100.0\n", " equity_market_manager_index_ret = g[~flags].MKTV @ g[~flags].NAVGRTD / (1e-10 + g[~flags].MKTV.sum()) / 100.0\n",
" return pd.Series(\n", " return pd.Series(\n",
" dict(MANAGERNAME=g.MANAGERNAME.values[0], all=market_manager_index_ret, bond=bond_market_manager_index_ret, equity=equity_market_manager_index_ret)\n", " dict(MANAGERNAME=g.MANAGERNAME.values[0], all=market_manager_index_ret, bond=bond_market_manager_index_ret, equity=equity_market_manager_index_ret, bond_mktv=bond_market_mktv, equity_mktv=equity_market_mktv)\n",
" )\n", " )\n",
" return total_df.groupby(\"MANAGERCODE\", as_index=False).apply(calc)" " return total_df.groupby(\"MANAGERCODE\", as_index=False).apply(calc)"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 11, "execution_count": 13,
"id": "3225d437-56a8-4fc6-80bc-22456a356754", "id": "3225d437-56a8-4fc6-80bc-22456a356754",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
...@@ -446,26 +448,65 @@ ...@@ -446,26 +448,65 @@
" <th>all</th>\n", " <th>all</th>\n",
" <th>bond</th>\n", " <th>bond</th>\n",
" <th>equity</th>\n", " <th>equity</th>\n",
" <th>bond_mktv</th>\n",
" <th>equity_mktv</th>\n",
" <th>trade_date</th>\n", " <th>trade_date</th>\n",
" </tr>\n", " </tr>\n",
" </thead>\n", " </thead>\n",
" <tbody>\n", " <tbody>\n",
" <tr>\n", " <tr>\n",
" <th>0</th>\n", " <th>0</th>\n",
" <td>30026663</td>\n",
" <td>王安良</td>\n",
" <td>-0.009760</td>\n",
" <td>0.000000</td>\n",
" <td>-0.009760</td>\n",
" <td>0.000000e+00</td>\n",
" <td>3.521567e+07</td>\n",
" <td>20220207</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>30189744</td>\n", " <td>30189744</td>\n",
" <td>张坤</td>\n", " <td>张坤</td>\n",
" <td>0.039522</td>\n", " <td>0.020960</td>\n",
" <td>0.0</td>\n", " <td>0.000000</td>\n",
" <td>0.039522</td>\n", " <td>0.020960</td>\n",
" <td>0.000000e+00</td>\n",
" <td>2.635986e+10</td>\n",
" <td>20220207</td>\n", " <td>20220207</td>\n",
" </tr>\n", " </tr>\n",
" <tr>\n", " <tr>\n",
" <th>1</th>\n", " <th>2</th>\n",
" <td>30212064</td>\n",
" <td>董阳阳</td>\n",
" <td>0.003522</td>\n",
" <td>0.003466</td>\n",
" <td>0.004702</td>\n",
" <td>4.004395e+09</td>\n",
" <td>1.906394e+08</td>\n",
" <td>20220207</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>30241730</td>\n",
" <td>陈轶平</td>\n",
" <td>0.001170</td>\n",
" <td>0.001170</td>\n",
" <td>0.000000</td>\n",
" <td>1.935148e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>20220207</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>30322345</td>\n", " <td>30322345</td>\n",
" <td>左金保</td>\n", " <td>左金保</td>\n",
" <td>0.011596</td>\n", " <td>0.013261</td>\n",
" <td>0.0</td>\n", " <td>0.000000</td>\n",
" <td>0.011596</td>\n", " <td>0.013261</td>\n",
" <td>0.000000e+00</td>\n",
" <td>1.796571e+09</td>\n",
" <td>20220207</td>\n", " <td>20220207</td>\n",
" </tr>\n", " </tr>\n",
" </tbody>\n", " </tbody>\n",
...@@ -473,18 +514,28 @@ ...@@ -473,18 +514,28 @@
"</div>" "</div>"
], ],
"text/plain": [ "text/plain": [
" MANAGERCODE MANAGERNAME all bond equity trade_date\n", " MANAGERCODE MANAGERNAME all bond equity bond_mktv \\\n",
"0 30189744 张坤 0.039522 0.0 0.039522 20220207\n", "0 30026663 王安良 -0.009760 0.000000 -0.009760 0.000000e+00 \n",
"1 30322345 左金保 0.011596 0.0 0.011596 20220207" "1 30189744 张坤 0.020960 0.000000 0.020960 0.000000e+00 \n",
"2 30212064 董阳阳 0.003522 0.003466 0.004702 4.004395e+09 \n",
"3 30241730 陈轶平 0.001170 0.001170 0.000000 1.935148e+10 \n",
"4 30322345 左金保 0.013261 0.000000 0.013261 0.000000e+00 \n",
"\n",
" equity_mktv trade_date \n",
"0 3.521567e+07 20220207 \n",
"1 2.635986e+10 20220207 \n",
"2 1.906394e+08 20220207 \n",
"3 0.000000e+00 20220207 \n",
"4 1.796571e+09 20220207 "
] ]
}, },
"execution_count": 11, "execution_count": 13,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"res = cal_manager_index_ret([\"30322345\", \"30189744\"], trade_dt=trade_dt)\n", "res = cal_manager_index_ret([\"30322345\", \"30189744\", \"30026663\", \"30241730\", \"30212064\"], trade_dt=trade_dt)\n",
"res[\"trade_date\"] = trade_dt\n", "res[\"trade_date\"] = trade_dt\n",
"res" "res"
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment