Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
fof
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dr.李
fof
Commits
041faa29
Commit
041faa29
authored
Feb 12, 2022
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change category codes
parent
382ae34b
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1399 additions
and
3199 deletions
+1399
-3199
010 股票型基金.ipynb
category/010 股票型基金.ipynb
+202
-974
020 混合型基金.ipynb
category/020 混合型基金.ipynb
+465
-614
030 债券型基金.ipynb
category/030 债券型基金.ipynb
+404
-838
040 货币基金.ipynb
category/040 货币基金.ipynb
+26
-62
050 另类投资基金.ipynb
category/050 另类投资基金.ipynb
+39
-375
060 QDII基金.ipynb
category/060 QDII基金.ipynb
+214
-126
070 FOF基金.ipynb
category/070 FOF基金.ipynb
+33
-205
utility.py
fof/utility.py
+16
-5
No files found.
category/010 股票型基金.ipynb
View file @
041faa29
...
...
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count":
4
,
"execution_count":
1
,
"id": "3604e08c-d849-4d0e-aa6d-384657b1b6c8",
"metadata": {},
"outputs": [],
...
...
@@ -36,7 +36,7 @@
},
{
"cell_type": "code",
"execution_count":
5
,
"execution_count":
2
,
"id": "35ca37b3-41d1-4c2d-a576-eef1cb9c1ec5",
"metadata": {},
"outputs": [],
...
...
@@ -51,7 +51,7 @@
},
{
"cell_type": "code",
"execution_count":
6
,
"execution_count":
3
,
"id": "96a3611d-8f1e-4420-9b08-7ca5dd6443cd",
"metadata": {},
"outputs": [
...
...
@@ -61,7 +61,7 @@
"1229"
]
},
"execution_count":
6
,
"execution_count":
3
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -69,19 +69,18 @@
"source": [
"# 获取所有目标股票型基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(current_date, 2201)\n",
"security_info = fd_alive_funds(current_date, 2201)\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count":
8
,
"execution_count":
4
,
"id": "79115d35-0712-4432-a73c-29bd5262dda7",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, report_dates_begin, current_date)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
...
...
@@ -89,43 +88,37 @@
},
{
"cell_type": "code",
"execution_count":
9
,
"execution_count":
5
,
"id": "0c30cc50-a1c3-4774-84a8-5ab5faca8b67",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"1229"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\", how=\"inner\")\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(security_info, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
"\n",
"if \"ACCNETMKTCAP\" in df:\n",
" df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)\n",
"else:\n",
" df[\"ACCNETMKTCAP\"] = 0.0"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c99e0fe3-7193-449e-b5ee-6cbd0b003035",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"\n",
"flag = df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5\n",
"df.loc[flag, \"股票型(子类)\"] = \"港股通股票型基金\"\n",
"\n",
"df.loc[(~flag) & (df[\"L3NAME\"].isin([\"其他行业股票型基金\", \"偏股型基金(股票上下限60%-95%)\", '标准股票型基金', '医药行业股票型基金', '封闭式标准股票型基金'])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
"df.loc[(~flag) & (df[\"L3NAME\"].isin([\"标准指数股票型基金\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
"df.loc[(~flag) & (df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"股票型(子类)\"])"
" df[\"ACCNETMKTCAP\"] = 0.0\n",
" \n",
"len(df)"
]
},
{
"cell_type": "code",
"execution_count":
11
,
"id": "
a42b357e-6b87-424b-9ca9-4ce60904b66b
",
"execution_count":
6
,
"id": "
2731d952-7bd6-4445-958e-247e53a11390
",
"metadata": {},
"outputs": [
{
...
...
@@ -150,147 +143,103 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" <tr>\n",
" <th>股票型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>增强指数型基金</th>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>47</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" <th>0</th>\n",
" <td>1030000030</td>\n",
" <td>20071111</td>\n",
" <td>19000101</td>\n",
" <td>22010701</td>\n",
" <td>94.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>普通股票型基金</th>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>70</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <th>1</th>\n",
" <td>1030000034</td>\n",
" <td>20021108</td>\n",
" <td>19000101</td>\n",
" <td>22010703</td>\n",
" <td>94.113333</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通股票型基金</th>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>12</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <th>2</th>\n",
" <td>1030000045</td>\n",
" <td>20080101</td>\n",
" <td>19000101</td>\n",
" <td>22010701</td>\n",
" <td>93.666667</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>被动指数型基金</th>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>194</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>307</td>\n",
" <td>317</td>\n",
" <th>3</th>\n",
" <td>1030000096</td>\n",
" <td>20040322</td>\n",
" <td>19000101</td>\n",
" <td>22010703</td>\n",
" <td>92.616667</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030000136</td>\n",
" <td>20030930</td>\n",
" <td>19000101</td>\n",
" <td>22010703</td>\n",
" <td>94.809167</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 47 63 63 63 \n",
"普通股票型基金 204 204 70 204 204 204 \n",
"港股通股票型基金 18 18 12 18 18 18 \n",
"被动指数型基金 317 317 194 317 317 317 \n",
"\n",
" L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME EQUITYINVERTO \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 63 63 63 63 60 \n",
"普通股票型基金 204 204 204 204 204 204 204 \n",
"港股通股票型基金 18 18 18 18 18 18 18 \n",
"被动指数型基金 317 317 317 317 317 317 307 \n",
"\n",
" ACCNETMKTCAP \n",
"股票型(子类) \n",
"增强指数型基金 63 \n",
"普通股票型基金 204 \n",
"港股通股票型基金 18 \n",
"被动指数型基金 317 "
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO ACCNETMKTCAP\n",
"0 1030000030 20071111 19000101 22010701 94.000000 0.0\n",
"1 1030000034 20021108 19000101 22010703 94.113333 0.0\n",
"2 1030000045 20080101 19000101 22010701 93.666667 0.0\n",
"3 1030000096 20040322 19000101 22010703 92.616667 0.0\n",
"4 1030000136 20030930 19000101 22010703 94.809167 0.0"
]
},
"execution_count":
11
,
"execution_count":
6
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupbyby(\"股票型(子类)\").count()"
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "c99e0fe3-7193-449e-b5ee-6cbd0b003035",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"\n",
"flag = df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5\n",
"df.loc[flag, \"股票型(子类)\"] = \"港股通股票型基金\"\n",
"\n",
"df.loc[(~flag) & (df[\"CLASSCODE\"].isin([\"22010701\", \"22010702\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
"df.loc[(~flag) & (df[\"CLASSCODE\"].isin([\"22010703\", \"22010704\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
"df.loc[(~flag) & (pd.isnull(df[\"股票型(子类)\"])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"股票型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count":
12
,
"id": "
3a20a243-ebe0-4410-a3e8-3363e1e793e2
",
"execution_count":
8
,
"id": "
a42b357e-6b87-424b-9ca9-4ce60904b66b
",
"metadata": {},
"outputs": [
{
...
...
@@ -315,462 +264,86 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" <tr>\n",
" <th>股票型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030000030</td>\n",
" <td>国泰沪深300指数证券投资基金</td>\n",
" <td>国泰沪深300指数</td>\n",
" <td>020011</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>94.000000</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000034</td>\n",
" <td>华安MSCI中国A股指数增强型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>040002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>94.113333</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030000045</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>93.666667</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030000096</td>\n",
" <td>易方达上证50指数增强型证券投资基金</td>\n",
" <td>易方达上证50增强</td>\n",
" <td>110003</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>92.616667</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>551</th>\n",
" <td>1030000136</td>\n",
" <td>融通深证100指数证券投资基金</td>\n",
" <td>融通深证100指数</td>\n",
" <td>161604</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>94.809167</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>575</th>\n",
" <td>1030000149</td>\n",
" <td>泰达宏利首选企业股票型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>162208</td>\n",
" <td>证券投资基金</td>\n",
" <td>增值型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>1.1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>93.595000</td>\n",
" <td>0.0</td>\n",
" <td>普通股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>559</th>\n",
" <td>1030000159</td>\n",
" <td>银华-道琼斯88精选证券投资基金</td>\n",
" <td>None</td>\n",
" <td>180003</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>88.701667</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>572</th>\n",
" <td>1030000168</td>\n",
" <td>长城久泰沪深300指数证券投资基金</td>\n",
" <td>长城久泰沪深300指数</td>\n",
" <td>200002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>94.536667</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>714</th>\n",
" <td>1030000245</td>\n",
" <td>申万菱信沪深300指数增强型证券投资基金</td>\n",
" <td>申万菱信沪深300指数增强</td>\n",
" <td>310318</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>91.016667</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>642</th>\n",
" <td>1030000258</td>\n",
" <td>兴全全球视野股票型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>340006</td>\n",
" <td>证券投资基金</td>\n",
" <td>成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>1.1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>89.285000</td>\n",
" <td>0.0</td>\n",
" <td>普通股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>699</th>\n",
" <td>1030000264</td>\n",
" <td>光大保德信量化核心证券投资基金</td>\n",
" <td>None</td>\n",
" <td>360001</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>1.1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>91.493333</td>\n",
" <td>0.0</td>\n",
" <td>普通股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>458</th>\n",
" <td>1030000340</td>\n",
" <td>长盛中证100指数证券投资基金</td>\n",
" <td>None</td>\n",
" <td>519100</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>94.151667</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>581</th>\n",
" <td>1030000342</td>\n",
" <td>万家180指数证券投资基金</td>\n",
" <td>None</td>\n",
" <td>519180</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>94.815000</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>446</th>\n",
" <td>1030000345</td>\n",
" <td>大成沪深300指数证券投资基金</td>\n",
" <td>大成沪深300指数</td>\n",
" <td>519300</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>92.999167</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030000540</td>\n",
" <td>富国中证红利指数增强型证券投资基金</td>\n",
" <td>富国中证红利指数增强</td>\n",
" <td>100032</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>91.775833</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>754</th>\n",
" <td>1030000560</td>\n",
" <td>工银瑞信沪深300指数证券投资基金</td>\n",
" <td>工银沪深300指数</td>\n",
" <td>481009</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>94.341667</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>818</th>\n",
" <td>1030000628</td>\n",
" <td>汇丰晋信大盘股票型证券投资基金</td>\n",
" <td>汇丰晋信大盘股票</td>\n",
" <td>540006</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>1.1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>93.045833</td>\n",
" <td>0.0</td>\n",
" <td>普通股票型基金</td>\n",
" <th>增强指数型基金</th>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>82</td>\n",
" <td>86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>741</th>\n",
" <td>1030000633</td>\n",
" <td>汇添富上证综合指数证券投资基金</td>\n",
" <td>None</td>\n",
" <td>470007</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>94.299167</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" <th>普通股票型基金</th>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>780</td>\n",
" <td>821</td>\n",
" </tr>\n",
" <tr>\n",
" <th>724</th>\n",
" <td>1030000667</td>\n",
" <td>中银中证100指数增强型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>163808</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>92.773333</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" <th>港股通股票型基金</th>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>705</th>\n",
" <td>1030000670</td>\n",
" <td>富兰克林国海沪深300指数增强型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>450008</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>92.531667</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" <th>被动指数型基金</th>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>271</td>\n",
" <td>286</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000030 国泰沪深300指数证券投资基金 国泰沪深300指数 020011 证券投资基金 \n",
"1 1030000034 华安MSCI中国A股指数增强型证券投资基金 None 040002 证券投资基金 \n",
"2 1030000045 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 \n",
"3 1030000096 易方达上证50指数增强型证券投资基金 易方达上证50增强 110003 证券投资基金 \n",
"551 1030000136 融通深证100指数证券投资基金 融通深证100指数 161604 证券投资基金 \n",
"575 1030000149 泰达宏利首选企业股票型证券投资基金 None 162208 证券投资基金 \n",
"559 1030000159 银华-道琼斯88精选证券投资基金 None 180003 证券投资基金 \n",
"572 1030000168 长城久泰沪深300指数证券投资基金 长城久泰沪深300指数 200002 证券投资基金 \n",
"714 1030000245 申万菱信沪深300指数增强型证券投资基金 申万菱信沪深300指数增强 310318 证券投资基金 \n",
"642 1030000258 兴全全球视野股票型证券投资基金 None 340006 证券投资基金 \n",
"699 1030000264 光大保德信量化核心证券投资基金 None 360001 证券投资基金 \n",
"458 1030000340 长盛中证100指数证券投资基金 None 519100 证券投资基金 \n",
"581 1030000342 万家180指数证券投资基金 None 519180 证券投资基金 \n",
"446 1030000345 大成沪深300指数证券投资基金 大成沪深300指数 519300 证券投资基金 \n",
"4 1030000540 富国中证红利指数增强型证券投资基金 富国中证红利指数增强 100032 证券投资基金 \n",
"754 1030000560 工银瑞信沪深300指数证券投资基金 工银沪深300指数 481009 证券投资基金 \n",
"818 1030000628 汇丰晋信大盘股票型证券投资基金 汇丰晋信大盘股票 540006 证券投资基金 \n",
"741 1030000633 汇添富上证综合指数证券投资基金 None 470007 证券投资基金 \n",
"724 1030000667 中银中证100指数增强型证券投资基金 None 163808 证券投资基金 \n",
"705 1030000670 富兰克林国海沪深300指数增强型证券投资基金 None 450008 证券投资基金 \n",
"\n",
" INVESTSTYLE L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"1 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"2 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"3 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"551 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"575 增值型 1 股票基金 1.1 标准股票型基金 1.1.1 标准股票型基金 \n",
"559 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"572 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"714 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"642 成长型 1 股票基金 1.1 标准股票型基金 1.1.1 标准股票型基金 \n",
"699 稳健成长型 1 股票基金 1.1 标准股票型基金 1.1.1 标准股票型基金 \n",
"458 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"581 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"446 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"4 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"754 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"818 稳健成长型 1 股票基金 1.1 标准股票型基金 1.1.1 标准股票型基金 \n",
"741 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"724 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"705 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"股票型(子类) \n",
"增强指数型基金 86 86 86 86 82 \n",
"普通股票型基金 821 821 821 821 780 \n",
"港股通股票型基金 36 36 36 36 36 \n",
"被动指数型基金 286 286 286 286 271 \n",
"\n",
" EQUITYINVERTO ACCNETMKTCAP 股票型(子类) \n",
"0 94.000000 0.0 被动指数型基金 \n",
"1 94.113333 0.0 增强指数型基金 \n",
"2 93.666667 0.0 被动指数型基金 \n",
"3 92.616667 0.0 增强指数型基金 \n",
"551 94.809167 0.0 增强指数型基金 \n",
"575 93.595000 0.0 普通股票型基金 \n",
"559 88.701667 0.0 增强指数型基金 \n",
"572 94.536667 0.0 增强指数型基金 \n",
"714 91.016667 0.0 增强指数型基金 \n",
"642 89.285000 0.0 普通股票型基金 \n",
"699 91.493333 0.0 普通股票型基金 \n",
"458 94.151667 0.0 被动指数型基金 \n",
"581 94.815000 0.0 被动指数型基金 \n",
"446 92.999167 0.0 被动指数型基金 \n",
"4 91.775833 0.0 增强指数型基金 \n",
"754 94.341667 0.0 被动指数型基金 \n",
"818 93.045833 0.0 普通股票型基金 \n",
"741 94.299167 0.0 被动指数型基金 \n",
"724 92.773333 0.0 增强指数型基金 \n",
"705 92.531667 0.0 增强指数型基金 "
" ACCNETMKTCAP \n",
"股票型(子类) \n",
"增强指数型基金 86 \n",
"普通股票型基金 821 \n",
"港股通股票型基金 36 \n",
"被动指数型基金 286 "
]
},
"execution_count":
12
,
"execution_count":
8
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby("
"df.groupby(
\"股票型(子类)\").count()
"
]
},
{
...
...
@@ -783,7 +356,7 @@
},
{
"cell_type": "code",
"execution_count":
17
,
"execution_count":
9
,
"id": "c9c557cf-2b92-402a-8c57-9711f42de08b",
"metadata": {},
"outputs": [],
...
...
@@ -794,15 +367,13 @@
" report_dates_begin = nearest_report_date(date_3yrs_ago.strftime(\"%Y%m%d\"))\n",
" current_date = trade_dt.strftime(\"%Y%m%d\")\n",
" \n",
" security_ids = fd_alive_funds(current_date, 2201)\n",
" basic_info = fd_basicinfo(security_ids, current_date)\n",
" type_info = fd_typeclass(security_ids, current_date)\n",
" security_info = fd_alive_funds(current_date, 2201)\n",
" security_ids = security_info.SECURITYID.unique().tolist()\n",
" hkport_info = fd_hshkiport(security_ids, report_dates_begin, current_date)\n",
" hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
" asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()\n",
" \n",
" df = pd.merge(basic_info, type_info, on=\"SECURITYID\", how=\"inner\")\n",
" df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"\n",
" df = pd.merge(security_info, asset_port, on=\"SECURITYID\", how=\"left\")\n",
" df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
" if \"ACCNETMKTCAP\" in df:\n",
" df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)\n",
...
...
@@ -812,16 +383,15 @@
" flag = df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5\n",
" df.loc[flag, \"股票型(子类)\"] = \"港股通股票型基金\"\n",
"\n",
" df.loc[(~flag) & (df[\"L3NAME\"].isin([\"其他行业股票型基金\", \"偏股型基金(股票上下限60%-95%)\", '标准股票型基金', '医药行业股票型基金', '封闭式标准股票型基金'])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
" df.loc[(~flag) & (df[\"L3NAME\"].isin([\"标准指数股票型基金\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
" df.loc[(~flag) & (df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
" \n",
" df.loc[(~flag) & (df[\"CLASSCODE\"].isin([\"22010701\", \"22010702\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
" df.loc[(~flag) & (df[\"CLASSCODE\"].isin([\"22010703\", \"22010704\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
" df.loc[(~flag) & (pd.isnull(df[\"股票型(子类)\"])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
" return df.sort_values(\"SECURITYID\").dropna(subset=[\"股票型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count": 1
8
,
"execution_count": 1
0
,
"id": "e38ec99c-1674-41b2-a912-767b14b5795c",
"metadata": {},
"outputs": [
...
...
@@ -829,7 +399,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 2
.51
s\n"
"Wall time: 2
1.7
s\n"
]
},
{
...
...
@@ -854,17 +424,9 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
...
...
@@ -876,113 +438,66 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>增强指数型基金</th>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>47</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>82</td>\n",
" <td>86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>普通股票型基金</th>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>70</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>204</td>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>821</td>\n",
" <td>785</td>\n",
" <td>821</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通股票型基金</th>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>12</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>被动指数型基金</th>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>194</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>317</td>\n",
" <td>309</td>\n",
" <td>317</td>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>286</td>\n",
" <td>272</td>\n",
" <td>286</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 47 63 63 63 \n",
"普通股票型基金 204 204 70 204 204 204 \n",
"港股通股票型基金 19 19 12 19 19 19 \n",
"被动指数型基金 317 317 194 317 317 317 \n",
"\n",
" L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME EQUITYINVERTO \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 63 63 63 63 60 \n",
"普通股票型基金 204 204 204 204 204 204 204 \n",
"港股通股票型基金 19 19 19 19 19 19 19 \n",
"被动指数型基金 317 317 317 317 317 317 309 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"股票型(子类) \n",
"增强指数型基金 86 86 86 86 82 \n",
"普通股票型基金 821 821 821 821 785 \n",
"港股通股票型基金 36 36 36 36 36 \n",
"被动指数型基金 286 286 286 286 272 \n",
"\n",
" ACCNETMKTCAP \n",
"股票型(子类) \n",
"增强指数型基金
63
\n",
"普通股票型基金
204
\n",
"港股通股票型基金
19
\n",
"被动指数型基金
317
"
"增强指数型基金
86
\n",
"普通股票型基金
821
\n",
"港股通股票型基金
36
\n",
"被动指数型基金
286
"
]
},
"execution_count": 1
8
,
"execution_count": 1
0
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -1004,7 +519,7 @@
},
{
"cell_type": "code",
"execution_count": 1
9
,
"execution_count": 1
1
,
"id": "cf8394c6-c0d2-4c28-a803-7597fbebadb2",
"metadata": {},
"outputs": [],
...
...
@@ -1022,7 +537,7 @@
},
{
"cell_type": "code",
"execution_count":
20
,
"execution_count":
null
,
"id": "66cdd0ee-91e1-42eb-9b04-f958c9286ba7",
"metadata": {},
"outputs": [
...
...
@@ -1043,21 +558,7 @@
"20170731 20171031\n",
"20171031 20180131\n",
"20180131 20180427\n",
"20180427 20180731\n",
"20180731 20181031\n",
"20181031 20190131\n",
"20190131 20190430\n",
"20190430 20190731\n",
"20190731 20191031\n",
"20191031 20200123\n",
"20200123 20200430\n",
"20200430 20200731\n",
"20200731 20201030\n",
"20201030 20210129\n",
"20210129 20210430\n",
"20210430 20210730\n",
"20210730 20211029\n",
"20211029 20211109\n"
"20180427 20180731\n"
]
}
],
...
...
@@ -1080,7 +581,7 @@
},
{
"cell_type": "code",
"execution_count":
21
,
"execution_count":
null
,
"id": "82b9db84-2b77-4311-a232-48bc03dd6d81",
"metadata": {},
"outputs": [],
...
...
@@ -1091,283 +592,10 @@
},
{
"cell_type": "code",
"execution_count":
22
,
"execution_count":
null
,
"id": "a6f34c58-5c01-4c27-b206-60efcf35302e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>股票型(子类)</th>\n",
" <th>增强指数型基金</th>\n",
" <th>普通股票型基金</th>\n",
" <th>港股通股票型基金</th>\n",
" <th>被动指数型基金</th>\n",
" </tr>\n",
" <tr>\n",
" <th>level_0</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>20150430</th>\n",
" <td>0.373081</td>\n",
" <td>0.417971</td>\n",
" <td>0.125148</td>\n",
" <td>0.399283</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20150731</th>\n",
" <td>-0.150522</td>\n",
" <td>-0.137675</td>\n",
" <td>-0.111623</td>\n",
" <td>-0.159260</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20151030</th>\n",
" <td>-0.062868</td>\n",
" <td>-0.000603</td>\n",
" <td>-0.058962</td>\n",
" <td>-0.064701</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160129</th>\n",
" <td>-0.154214</td>\n",
" <td>-0.172520</td>\n",
" <td>-0.100790</td>\n",
" <td>-0.177081</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160429</th>\n",
" <td>0.088368</td>\n",
" <td>0.101418</td>\n",
" <td>0.059279</td>\n",
" <td>0.084457</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160729</th>\n",
" <td>0.047092</td>\n",
" <td>0.055620</td>\n",
" <td>0.038617</td>\n",
" <td>0.037963</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20161031</th>\n",
" <td>0.041936</td>\n",
" <td>0.035465</td>\n",
" <td>0.041392</td>\n",
" <td>0.036679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170126</th>\n",
" <td>0.000413</td>\n",
" <td>-0.035301</td>\n",
" <td>0.032578</td>\n",
" <td>-0.015172</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170428</th>\n",
" <td>0.017795</td>\n",
" <td>0.033446</td>\n",
" <td>0.079169</td>\n",
" <td>0.005582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170731</th>\n",
" <td>0.075612</td>\n",
" <td>0.047931</td>\n",
" <td>0.088230</td>\n",
" <td>0.049321</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20171031</th>\n",
" <td>0.064314</td>\n",
" <td>0.087960</td>\n",
" <td>0.046405</td>\n",
" <td>0.059791</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180131</th>\n",
" <td>0.035647</td>\n",
" <td>0.000956</td>\n",
" <td>0.073874</td>\n",
" <td>-0.001129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180427</th>\n",
" <td>-0.090244</td>\n",
" <td>-0.054775</td>\n",
" <td>-0.085842</td>\n",
" <td>-0.071061</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180731</th>\n",
" <td>-0.049883</td>\n",
" <td>-0.058404</td>\n",
" <td>-0.005988</td>\n",
" <td>-0.076560</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20181031</th>\n",
" <td>-0.125866</td>\n",
" <td>-0.154344</td>\n",
" <td>-0.127595</td>\n",
" <td>-0.128107</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190131</th>\n",
" <td>0.006905</td>\n",
" <td>0.017349</td>\n",
" <td>0.041945</td>\n",
" <td>-0.004368</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190430</th>\n",
" <td>0.227508</td>\n",
" <td>0.234833</td>\n",
" <td>0.095237</td>\n",
" <td>0.233135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190731</th>\n",
" <td>-0.002496</td>\n",
" <td>0.017715</td>\n",
" <td>-0.016089</td>\n",
" <td>-0.017767</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20191031</th>\n",
" <td>0.027008</td>\n",
" <td>0.072729</td>\n",
" <td>0.026100</td>\n",
" <td>0.020263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200123</th>\n",
" <td>0.063628</td>\n",
" <td>0.121703</td>\n",
" <td>0.042807</td>\n",
" <td>0.072575</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200430</th>\n",
" <td>0.011756</td>\n",
" <td>0.040520</td>\n",
" <td>-0.048957</td>\n",
" <td>-0.003712</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200731</th>\n",
" <td>0.258409</td>\n",
" <td>0.333625</td>\n",
" <td>0.198965</td>\n",
" <td>0.251960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20201030</th>\n",
" <td>-0.002921</td>\n",
" <td>0.011518</td>\n",
" <td>-0.006524</td>\n",
" <td>-0.019254</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210129</th>\n",
" <td>0.116040</td>\n",
" <td>0.168545</td>\n",
" <td>0.167749</td>\n",
" <td>0.095511</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210430</th>\n",
" <td>-0.014573</td>\n",
" <td>-0.014434</td>\n",
" <td>0.007898</td>\n",
" <td>-0.015876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210730</th>\n",
" <td>-0.002418</td>\n",
" <td>0.081714</td>\n",
" <td>-0.054480</td>\n",
" <td>0.014684</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211029</th>\n",
" <td>0.027797</td>\n",
" <td>0.009677</td>\n",
" <td>-0.025261</td>\n",
" <td>0.024735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211109</th>\n",
" <td>-0.007915</td>\n",
" <td>0.002842</td>\n",
" <td>-0.015284</td>\n",
" <td>-0.001546</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"股票型(子类) 增强指数型基金 普通股票型基金 港股通股票型基金 被动指数型基金\n",
"level_0 \n",
"20150430 0.373081 0.417971 0.125148 0.399283\n",
"20150731 -0.150522 -0.137675 -0.111623 -0.159260\n",
"20151030 -0.062868 -0.000603 -0.058962 -0.064701\n",
"20160129 -0.154214 -0.172520 -0.100790 -0.177081\n",
"20160429 0.088368 0.101418 0.059279 0.084457\n",
"20160729 0.047092 0.055620 0.038617 0.037963\n",
"20161031 0.041936 0.035465 0.041392 0.036679\n",
"20170126 0.000413 -0.035301 0.032578 -0.015172\n",
"20170428 0.017795 0.033446 0.079169 0.005582\n",
"20170731 0.075612 0.047931 0.088230 0.049321\n",
"20171031 0.064314 0.087960 0.046405 0.059791\n",
"20180131 0.035647 0.000956 0.073874 -0.001129\n",
"20180427 -0.090244 -0.054775 -0.085842 -0.071061\n",
"20180731 -0.049883 -0.058404 -0.005988 -0.076560\n",
"20181031 -0.125866 -0.154344 -0.127595 -0.128107\n",
"20190131 0.006905 0.017349 0.041945 -0.004368\n",
"20190430 0.227508 0.234833 0.095237 0.233135\n",
"20190731 -0.002496 0.017715 -0.016089 -0.017767\n",
"20191031 0.027008 0.072729 0.026100 0.020263\n",
"20200123 0.063628 0.121703 0.042807 0.072575\n",
"20200430 0.011756 0.040520 -0.048957 -0.003712\n",
"20200731 0.258409 0.333625 0.198965 0.251960\n",
"20201030 -0.002921 0.011518 -0.006524 -0.019254\n",
"20210129 0.116040 0.168545 0.167749 0.095511\n",
"20210430 -0.014573 -0.014434 0.007898 -0.015876\n",
"20210730 -0.002418 0.081714 -0.054480 0.014684\n",
"20211029 0.027797 0.009677 -0.025261 0.024735\n",
"20211109 -0.007915 0.002842 -0.015284 -0.001546"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"final_report.pivot_table(index=\"level_0\", columns=\"股票型(子类)\", values=\"chg.\")"
]
...
...
@@ -1397,7 +625,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
category/020 混合型基金.ipynb
View file @
041faa29
...
...
@@ -44,7 +44,6 @@
"# 获取回溯的报告日\n",
"\n",
"today = dt.datetime.today()\n",
"today = dt.date(2015, 1, 30)\n",
"date_3yrs_ago = today.replace(year=today.year - 3)\n",
"report_dates_begin = nearest_report_date(date_3yrs_ago.strftime(\"%Y%m%d\"))\n",
"current_date = today.strftime(\"%Y%m%d\")"
...
...
@@ -52,27 +51,184 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
25
,
"id": "74246462-2676-4817-8c89-3a024ed8e412",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"3042"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 获取所有目标混合型基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(report_dates_begin, 2202)"
"security_info = fd_alive_funds(report_dates_begin, 2202)\n",
"\n",
"# # 去掉绝对收益型产品去量化\n",
"security_info = security_info[~((security_info.CLASSCODE.str.startswith(\"22020803\")) | (security_info.CLASSCODE.str.startswith(\"22021401\")))]\n",
"\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 26,
"id": "c39ef461-6ff7-4afe-a684-8009c70d9e49",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030000001</td>\n",
" <td>20070910</td>\n",
" <td>19000101</td>\n",
" <td>22020101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000004</td>\n",
" <td>20080321</td>\n",
" <td>19000101</td>\n",
" <td>22020101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030000005</td>\n",
" <td>20070718</td>\n",
" <td>19000101</td>\n",
" <td>22020101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030000006</td>\n",
" <td>20011218</td>\n",
" <td>19000101</td>\n",
" <td>22020103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030000007</td>\n",
" <td>20040811</td>\n",
" <td>19000101</td>\n",
" <td>22020103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3062</th>\n",
" <td>2030009804</td>\n",
" <td>20171218</td>\n",
" <td>19000101</td>\n",
" <td>22021301</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3063</th>\n",
" <td>2030009935</td>\n",
" <td>20180123</td>\n",
" <td>20200123</td>\n",
" <td>22022101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3064</th>\n",
" <td>2030009999</td>\n",
" <td>20180131</td>\n",
" <td>19000101</td>\n",
" <td>22021101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3065</th>\n",
" <td>2030010091</td>\n",
" <td>20180408</td>\n",
" <td>19000101</td>\n",
" <td>22021101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3066</th>\n",
" <td>2030010156</td>\n",
" <td>20180322</td>\n",
" <td>19000101</td>\n",
" <td>22021301</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3042 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE\n",
"0 1030000001 20070910 19000101 22020101\n",
"1 1030000004 20080321 19000101 22020101\n",
"2 1030000005 20070718 19000101 22020101\n",
"3 1030000006 20011218 19000101 22020103\n",
"4 1030000007 20040811 19000101 22020103\n",
"... ... ... ... ...\n",
"3062 2030009804 20171218 19000101 22021301\n",
"3063 2030009935 20180123 20200123 22022101\n",
"3064 2030009999 20180131 19000101 22021101\n",
"3065 2030010091 20180408 19000101 22021101\n",
"3066 2030010156 20180322 19000101 22021301\n",
"\n",
"[3042 rows x 4 columns]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"security_info"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "61270089-05d5-4396-829e-651118231b60",
"metadata": {},
"outputs": [],
"source": [
"# 获取相关组合情况\n",
"\n",
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, report_dates_begin, current_date)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
...
...
@@ -80,13 +236,12 @@
},
{
"cell_type": "code",
"execution_count":
5
,
"execution_count":
28
,
"id": "3968c35a-fa98-479b-a9e2-9cbeec4def1a",
"metadata": {},
"outputs": [],
"source": [
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(security_info, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\")\n",
"if \"ACCNETMKTCAP\" in df:\n",
" df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)\n",
...
...
@@ -96,7 +251,7 @@
},
{
"cell_type": "code",
"execution_count":
6
,
"execution_count":
29
,
"id": "73250ba3-83f4-41fe-8e61-2869f7db8662",
"metadata": {},
"outputs": [],
...
...
@@ -108,12 +263,13 @@
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
"df.loc[((~flag) & (pd.isnull(df[\"混合型(子类)\"]))), \"混合型(子类)\"] = \"其他混合型基金\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"混合型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count":
7
,
"execution_count":
30
,
"id": "a27e2473-ddf5-4883-bb50-6fe46914d3da",
"metadata": {},
"outputs": [
...
...
@@ -139,276 +295,108 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" <tr>\n",
" <th>混合型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030000001</td>\n",
" <td>华夏复兴混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000031</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.1</td>\n",
" <td>偏股型基金(股票上限95%)</td>\n",
" <td>85.680000</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000001</td>\n",
" <td>华夏复兴混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000031</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>85.680000</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>274</th>\n",
" <td>1030000004</td>\n",
" <td>南方盛元红利混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>202009</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>88.385833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>273</th>\n",
" <td>1030000004</td>\n",
" <td>南方盛元红利混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>202009</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>1.1.1</td>\n",
" <td>标准股票型基金</td>\n",
" <td>88.385833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>668</th>\n",
" <td>1030000005</td>\n",
" <td>工银瑞信红利混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>481006</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>88.524167</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>205</td>\n",
" <td>205</td>\n",
" <td>205</td>\n",
" <td>205</td>\n",
" <td>205</td>\n",
" <td>205</td>\n",
" </tr>\n",
" <tr>\n",
" <th>349</th>\n",
" <td>2030000280</td>\n",
" <td>银华消费主题分级混合型证券投资基金</td>\n",
" <td>银华消费主题混合</td>\n",
" <td>150047</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.3</td>\n",
" <td>股票型分级子基金</td>\n",
" <td>1.3.1</td>\n",
" <td>股票型分级子基金(优先份额)</td>\n",
" <td>84.331667</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>230</td>\n",
" <td>230</td>\n",
" <td>230</td>\n",
" <td>230</td>\n",
" <td>230</td>\n",
" <td>230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>350</th>\n",
" <td>2030000281</td>\n",
" <td>银华消费主题分级混合型证券投资基金</td>\n",
" <td>银华消费主题混合</td>\n",
" <td>150048</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.3</td>\n",
" <td>股票型分级子基金</td>\n",
" <td>1.3.2</td>\n",
" <td>股票型分级子基金(进取份额)</td>\n",
" <td>84.331667</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>680</td>\n",
" <td>680</td>\n",
" <td>680</td>\n",
" <td>680</td>\n",
" <td>680</td>\n",
" <td>680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>358</th>\n",
" <td>2030000302</td>\n",
" <td>国投瑞银新兴产业混合型证券投资基金(LOF)</td>\n",
" <td>None</td>\n",
" <td>161219</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.2</td>\n",
" <td>灵活配置型基金</td>\n",
" <td>2.2.2</td>\n",
" <td>灵活配置型基金(股票上限80%)</td>\n",
" <td>72.502500</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>其他混合型基金</th>\n",
" <td>334</td>\n",
" <td>334</td>\n",
" <td>334</td>\n",
" <td>334</td>\n",
" <td>0</td>\n",
" <td>334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>721</th>\n",
" <td>2030000351</td>\n",
" <td>中欧盛世成长分级股票型证券投资基金</td>\n",
" <td>中欧盛世成长分级股票</td>\n",
" <td>150071</td>\n",
" <td>证券投资基金</td>\n",
" <td>价值优化型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.10</td>\n",
" <td>其他混合型基金</td>\n",
" <td>2.10.1</td>\n",
" <td>其他混合型基金</td>\n",
" <td>70.670833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>港股通混合型基金</th>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>2030000352</td>\n",
" <td>中欧盛世成长分级股票型证券投资基金</td>\n",
" <td>中欧盛世成长分级股票</td>\n",
" <td>150072</td>\n",
" <td>证券投资基金</td>\n",
" <td>价值优化型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.10</td>\n",
" <td>其他混合型基金</td>\n",
" <td>2.10.1</td>\n",
" <td>其他混合型基金</td>\n",
" <td>70.670833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>1562</td>\n",
" <td>1562</td>\n",
" <td>1562</td>\n",
" <td>1562</td>\n",
" <td>1562</td>\n",
" <td>1562</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>808 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000001 华夏复兴混合型证券投资基金 None 000031 证券投资基金 \n",
"1 1030000001 华夏复兴混合型证券投资基金 None 000031 证券投资基金 \n",
"274 1030000004 南方盛元红利混合型证券投资基金 None 202009 证券投资基金 \n",
"273 1030000004 南方盛元红利混合型证券投资基金 None 202009 证券投资基金 \n",
"668 1030000005 工银瑞信红利混合型证券投资基金 None 481006 证券投资基金 \n",
".. ... ... ... ... ... \n",
"349 2030000280 银华消费主题分级混合型证券投资基金 银华消费主题混合 150047 证券投资基金 \n",
"350 2030000281 银华消费主题分级混合型证券投资基金 银华消费主题混合 150048 证券投资基金 \n",
"358 2030000302 国投瑞银新兴产业混合型证券投资基金(LOF) None 161219 LOF \n",
"721 2030000351 中欧盛世成长分级股票型证券投资基金 中欧盛世成长分级股票 150071 证券投资基金 \n",
"722 2030000352 中欧盛世成长分级股票型证券投资基金 中欧盛世成长分级股票 150072 证券投资基金 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"混合型(子类) \n",
"中权益仓位混合型基金 205 205 205 205 205 \n",
"中高权益仓位混合型基金 230 230 230 230 230 \n",
"低权益仓位混合型基金 680 680 680 680 680 \n",
"其他混合型基金 334 334 334 334 0 \n",
"港股通混合型基金 31 31 31 31 31 \n",
"高权益仓位混合型基金 1562 1562 1562 1562 1562 \n",
"\n",
" INVESTSTYLE L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.1 偏股型基金(股票上限95%) \n",
"1 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 偏股型基金(股票上下限60%-95%) \n",
"274 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 偏股型基金(股票上下限60%-95%) \n",
"273 稳健成长型 1 股票基金 1.1 标准股票型基金 1.1.1 标准股票型基金 \n",
"668 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 偏股型基金(股票上下限60%-95%) \n",
".. ... ... ... ... ... ... ... \n",
"349 稳健成长型 1 股票基金 1.3 股票型分级子基金 1.3.1 股票型分级子基金(优先份额) \n",
"350 稳健成长型 1 股票基金 1.3 股票型分级子基金 1.3.2 股票型分级子基金(进取份额) \n",
"358 稳健成长型 2 混合基金 2.2 灵活配置型基金 2.2.2 灵活配置型基金(股票上限80%) \n",
"721 价值优化型 2 混合基金 2.10 其他混合型基金 2.10.1 其他混合型基金 \n",
"722 价值优化型 2 混合基金 2.10 其他混合型基金 2.10.1 其他混合型基金 \n",
"\n",
" EQUITYINVERTO ACCNETMKTCAP 混合型(子类) \n",
"0 85.680000 0.0 高权益仓位混合型基金 \n",
"1 85.680000 0.0 高权益仓位混合型基金 \n",
"274 88.385833 0.0 高权益仓位混合型基金 \n",
"273 88.385833 0.0 高权益仓位混合型基金 \n",
"668 88.524167 0.0 高权益仓位混合型基金 \n",
".. ... ... ... \n",
"349 84.331667 0.0 高权益仓位混合型基金 \n",
"350 84.331667 0.0 高权益仓位混合型基金 \n",
"358 72.502500 0.0 高权益仓位混合型基金 \n",
"721 70.670833 0.0 高权益仓位混合型基金 \n",
"722 70.670833 0.0 高权益仓位混合型基金 \n",
"\n",
"[808 rows x 15 columns]"
" ACCNETMKTCAP \n",
"混合型(子类) \n",
"中权益仓位混合型基金 205 \n",
"中高权益仓位混合型基金 230 \n",
"低权益仓位混合型基金 680 \n",
"其他混合型基金 334 \n",
"港股通混合型基金 31 \n",
"高权益仓位混合型基金 1562 "
]
},
"execution_count":
7
,
"execution_count":
30
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
"df
.groupby(\"混合型(子类)\").count()
"
]
},
{
...
...
@@ -432,15 +420,15 @@
" report_dates_begin = nearest_report_date(date_3yrs_ago.strftime(\"%Y%m%d\"))\n",
" current_date = trade_dt.strftime(\"%Y%m%d\")\n",
" \n",
" security_ids = fd_alive_funds(report_dates_begin, 2202)\n",
" basic_info = fd_basicinfo(security_ids, current_date)\n",
" type_info = fd_typeclass(security_ids, current_date)\n",
" security_info = fd_alive_funds(report_dates_begin, 2202)\n",
" security_info = security_info[~((security_info.CLASSCODE.str.startswith(\"22020803\")) | (security_info.CLASSCODE.str.startswith(\"22021401\")))]\n",
" security_ids = security_info.SECURITYID.unique().tolist()\n",
" \n",
" hkport_info = fd_hshkiport(security_ids, report_dates_begin, current_date)\n",
" hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
" asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()\n",
"\n",
" df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
" df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
" df = pd.merge(security_info, asset_port, on=\"SECURITYID\", how=\"left\")\n",
" df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
" if \"ACCNETMKTCAP\" in df:\n",
" df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)\n",
...
...
@@ -453,13 +441,14 @@
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
" \n",
" df.loc[((~flag) & (pd.isnull(df[\"混合型(子类)\"]))), \"混合型(子类)\"] = \"其他混合型基金\"\n",
"\n",
" return df.sort_values(\"SECURITYID\").dropna(subset=[\"混合型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count": 1
1
,
"execution_count": 1
3
,
"id": "8ef7a124-f9c5-4afc-b35f-44571dea387e",
"metadata": {},
"outputs": [
...
...
@@ -467,7 +456,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time:
3.78
s\n"
"Wall time:
9.76
s\n"
]
},
{
...
...
@@ -492,270 +481,102 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" <tr>\n",
" <th>混合型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030000001</td>\n",
" <td>华夏复兴混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000031</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>89.665833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1779</th>\n",
" <td>1030000004</td>\n",
" <td>南方盛元红利混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>202009</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>88.608333</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2039</th>\n",
" <td>1030000005</td>\n",
" <td>工银瑞信红利混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>481006</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.3</td>\n",
" <td>偏股型基金(股票上下限60%-95%)</td>\n",
" <td>92.279167</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000006</td>\n",
" <td>华夏成长证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000001</td>\n",
" <td>证券投资基金</td>\n",
" <td>成长型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.2</td>\n",
" <td>偏股型基金(股票上限80%)</td>\n",
" <td>71.650833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030000007</td>\n",
" <td>华夏大盘精选证券投资基金</td>\n",
" <td>华夏大盘精选混合</td>\n",
" <td>000011</td>\n",
" <td>证券投资基金</td>\n",
" <td>增值型</td>\n",
" <td>2</td>\n",
" <td>混合基金</td>\n",
" <td>2.1</td>\n",
" <td>偏股型基金</td>\n",
" <td>2.1.1</td>\n",
" <td>偏股型基金(股票上限95%)</td>\n",
" <td>87.699167</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>206</td>\n",
" <td>206</td>\n",
" <td>206</td>\n",
" <td>206</td>\n",
" <td>206</td>\n",
" <td>206</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1659</th>\n",
" <td>2030007644</td>\n",
" <td>东海祥龙灵活配置混合型证券投资基金(LOF)</td>\n",
" <td>None</td>\n",
" <td>168301</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>8</td>\n",
" <td>封闭式混合基金</td>\n",
" <td>8.10</td>\n",
" <td>封闭式其他混合型基金</td>\n",
" <td>8.10.1</td>\n",
" <td>封闭式其他混合型基金</td>\n",
" <td>78.950833</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2124</th>\n",
" <td>2030007687</td>\n",
" <td>华夏磐泰混合型证券投资基金(LOF)</td>\n",
" <td>华夏磐泰混合(LOF)</td>\n",
" <td>160323</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>8</td>\n",
" <td>封闭式混合基金</td>\n",
" <td>8.4</td>\n",
" <td>封闭式偏债型基金</td>\n",
" <td>8.4.1</td>\n",
" <td>封闭式偏债型基金</td>\n",
" <td>21.970833</td>\n",
" <td>0.0</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>686</td>\n",
" <td>686</td>\n",
" <td>686</td>\n",
" <td>686</td>\n",
" <td>686</td>\n",
" <td>686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1670</th>\n",
" <td>2030007999</td>\n",
" <td>财通福盛多策略混合型发起式证券投资基金(LOF)</td>\n",
" <td>财通福盛混合发起(LOF)</td>\n",
" <td>501032</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>8</td>\n",
" <td>封闭式混合基金</td>\n",
" <td>8.10</td>\n",
" <td>封闭式其他混合型基金</td>\n",
" <td>8.10.1</td>\n",
" <td>封闭式其他混合型基金</td>\n",
" <td>56.721538</td>\n",
" <td>0.0</td>\n",
" <td>中高权益仓位混合型基金</td>\n",
" <th>其他混合型基金</th>\n",
" <td>335</td>\n",
" <td>335</td>\n",
" <td>335</td>\n",
" <td>335</td>\n",
" <td>0</td>\n",
" <td>335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2122</th>\n",
" <td>2030008355</td>\n",
" <td>银华惠安定期开放混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>501033</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>8</td>\n",
" <td>封闭式混合基金</td>\n",
" <td>8.4</td>\n",
" <td>封闭式偏债型基金</td>\n",
" <td>8.4.1</td>\n",
" <td>封闭式偏债型基金</td>\n",
" <td>3.400000</td>\n",
" <td>0.0</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <th>港股通混合型基金</th>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1496</th>\n",
" <td>2030008785</td>\n",
" <td>华夏磐晟灵活配置混合型证券投资基金(LOF)</td>\n",
" <td>None</td>\n",
" <td>160324</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>8</td>\n",
" <td>封闭式混合基金</td>\n",
" <td>8.2</td>\n",
" <td>封闭式灵活配置型基金</td>\n",
" <td>8.2.1</td>\n",
" <td>封闭式灵活配置型基金(股票上限95%)</td>\n",
" <td>86.546667</td>\n",
" <td>0.0</td>\n",
" <td>高权益仓位混合型基金</td>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>1570</td>\n",
" <td>1570</td>\n",
" <td>1570</td>\n",
" <td>1570</td>\n",
" <td>1570</td>\n",
" <td>1570</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2091 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000001 华夏复兴混合型证券投资基金 None 000031 证券投资基金 \n",
"1779 1030000004 南方盛元红利混合型证券投资基金 None 202009 证券投资基金 \n",
"2039 1030000005 工银瑞信红利混合型证券投资基金 None 481006 证券投资基金 \n",
"1 1030000006 华夏成长证券投资基金 None 000001 证券投资基金 \n",
"2 1030000007 华夏大盘精选证券投资基金 华夏大盘精选混合 000011 证券投资基金 \n",
"... ... ... ... ... ... \n",
"1659 2030007644 东海祥龙灵活配置混合型证券投资基金(LOF) None 168301 LOF \n",
"2124 2030007687 华夏磐泰混合型证券投资基金(LOF) 华夏磐泰混合(LOF) 160323 LOF \n",
"1670 2030007999 财通福盛多策略混合型发起式证券投资基金(LOF) 财通福盛混合发起(LOF) 501032 LOF \n",
"2122 2030008355 银华惠安定期开放混合型证券投资基金 None 501033 LOF \n",
"1496 2030008785 华夏磐晟灵活配置混合型证券投资基金(LOF) None 160324 LOF \n",
"\n",
" INVESTSTYLE L1CODE L1NAME L2CODE L2NAME L3CODE \\\n",
"0 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 \n",
"1779 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 \n",
"2039 稳健成长型 2 混合基金 2.1 偏股型基金 2.1.3 \n",
"1 成长型 2 混合基金 2.1 偏股型基金 2.1.2 \n",
"2 增值型 2 混合基金 2.1 偏股型基金 2.1.1 \n",
"... ... ... ... ... ... ... \n",
"1659 稳健成长型 8 封闭式混合基金 8.10 封闭式其他混合型基金 8.10.1 \n",
"2124 稳健成长型 8 封闭式混合基金 8.4 封闭式偏债型基金 8.4.1 \n",
"1670 稳健成长型 8 封闭式混合基金 8.10 封闭式其他混合型基金 8.10.1 \n",
"2122 稳健成长型 8 封闭式混合基金 8.4 封闭式偏债型基金 8.4.1 \n",
"1496 稳健成长型 8 封闭式混合基金 8.2 封闭式灵活配置型基金 8.2.1 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"混合型(子类) \n",
"中权益仓位混合型基金 206 206 206 206 206 \n",
"中高权益仓位混合型基金 239 239 239 239 239 \n",
"低权益仓位混合型基金 686 686 686 686 686 \n",
"其他混合型基金 335 335 335 335 0 \n",
"港股通混合型基金 31 31 31 31 31 \n",
"高权益仓位混合型基金 1570 1570 1570 1570 1570 \n",
"\n",
" L3NAME EQUITYINVERTO ACCNETMKTCAP 混合型(子类) \n",
"0 偏股型基金(股票上下限60%-95%) 89.665833 0.0 高权益仓位混合型基金 \n",
"1779 偏股型基金(股票上下限60%-95%) 88.608333 0.0 高权益仓位混合型基金 \n",
"2039 偏股型基金(股票上下限60%-95%) 92.279167 0.0 高权益仓位混合型基金 \n",
"1 偏股型基金(股票上限80%) 71.650833 0.0 高权益仓位混合型基金 \n",
"2 偏股型基金(股票上限95%) 87.699167 0.0 高权益仓位混合型基金 \n",
"... ... ... ... ... \n",
"1659 封闭式其他混合型基金 78.950833 0.0 高权益仓位混合型基金 \n",
"2124 封闭式偏债型基金 21.970833 0.0 低权益仓位混合型基金 \n",
"1670 封闭式其他混合型基金 56.721538 0.0 中高权益仓位混合型基金 \n",
"2122 封闭式偏债型基金 3.400000 0.0 低权益仓位混合型基金 \n",
"1496 封闭式灵活配置型基金(股票上限95%) 86.546667 0.0 高权益仓位混合型基金 \n",
"\n",
"[2091 rows x 15 columns]"
" ACCNETMKTCAP \n",
"混合型(子类) \n",
"中权益仓位混合型基金 206 \n",
"中高权益仓位混合型基金 239 \n",
"低权益仓位混合型基金 686 \n",
"其他混合型基金 335 \n",
"港股通混合型基金 31 \n",
"高权益仓位混合型基金 1570 "
]
},
"execution_count": 1
1
,
"execution_count": 1
3
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -763,7 +584,7 @@
"source": [
"%%time\n",
"\n",
"create_mutua_fund_info(\"202
11111\")#
.groupby( \"混合型(子类)\").count()"
"create_mutua_fund_info(\"202
20212\")
.groupby( \"混合型(子类)\").count()"
]
},
{
...
...
@@ -777,7 +598,7 @@
},
{
"cell_type": "code",
"execution_count": 1
2
,
"execution_count": 1
4
,
"id": "e6eb55c1-8e3e-4acf-a788-90e30d26623c",
"metadata": {},
"outputs": [],
...
...
@@ -795,7 +616,7 @@
},
{
"cell_type": "code",
"execution_count": 1
3
,
"execution_count": 1
5
,
"id": "2b724151-9978-4130-8103-4eae0485c3e9",
"metadata": {},
"outputs": [
...
...
@@ -853,7 +674,7 @@
},
{
"cell_type": "code",
"execution_count": 1
4
,
"execution_count": 1
6
,
"id": "7c174454-776a-4089-be7b-dc3a06f1a071",
"metadata": {},
"outputs": [],
...
...
@@ -864,7 +685,7 @@
},
{
"cell_type": "code",
"execution_count": 1
5
,
"execution_count": 1
7
,
"id": "a8f023ed-d9ce-4d0d-9efc-a3f76c0c434e",
"metadata": {},
"outputs": [
...
...
@@ -892,6 +713,7 @@
" <th>中权益仓位混合型基金</th>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <th>低权益仓位混合型基金</th>\n",
" <th>其他混合型基金</th>\n",
" <th>港股通混合型基金</th>\n",
" <th>高权益仓位混合型基金</th>\n",
" </tr>\n",
...
...
@@ -902,78 +724,88 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>20150430</th>\n",
" <td>0.158706</td>\n",
" <td>0.343851</td>\n",
" <td>0.104259</td>\n",
" <td>0.152468</td>\n",
" <td>0.351476</td>\n",
" <td>0.106609</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.4
33357
</td>\n",
" <td>0.4
27369
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20150731</th>\n",
" <td>-0.035837</td>\n",
" <td>-0.070910</td>\n",
" <td>0.003793</td>\n",
" <td>-0.041426</td>\n",
" <td>-0.073076</td>\n",
" <td>-0.000316</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.1218
5
4</td>\n",
" <td>-0.1218
6
4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20151030</th>\n",
" <td>-0.000123</td>\n",
" <td>0.005830</td>\n",
" <td>0.0010
74
</td>\n",
" <td>0.0010
63
</td>\n",
" <td>NaN</td>\n",
" <td>-0.001477</td>\n",
" <td>NaN</td>\n",
" <td>-0.001222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160129</th>\n",
" <td>-0.069494</td>\n",
" <td>-0.119268</td>\n",
" <td>-0.016718</td>\n",
" <td>-0.018003</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.1643
33
</td>\n",
" <td>-0.1643
52
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160429</th>\n",
" <td>0.049689</td>\n",
" <td>0.073115</td>\n",
" <td>0.013
842
</td>\n",
" <td>0.013
377
</td>\n",
" <td>NaN</td>\n",
" <td>0.096569</td>\n",
" <td>NaN</td>\n",
" <td>0.096501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160729</th>\n",
" <td>0.028211</td>\n",
" <td>0.033912</td>\n",
" <td>0.016797</td>\n",
" <td>0.017215</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.041
873
</td>\n",
" <td>0.041
731
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20161031</th>\n",
" <td>0.026168</td>\n",
" <td>0.022893</td>\n",
" <td>0.01
2184
</td>\n",
" <td>0.01
1616
</td>\n",
" <td>NaN</td>\n",
" <td>0.027644</td>\n",
" <td>NaN</td>\n",
" <td>0.027569</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170126</th>\n",
" <td>-0.027615</td>\n",
" <td>-0.026839</td>\n",
" <td>-0.007877</td>\n",
" <td>-0.007606</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.043
081
</td>\n",
" <td>-0.043
224
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170428</th>\n",
" <td>0.008647</td>\n",
" <td>0.033472</td>\n",
" <td>0.007420</td>\n",
" <td>0.007449</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.033880</td>\n",
" </tr>\n",
...
...
@@ -981,7 +813,8 @@
" <th>20170731</th>\n",
" <td>0.031883</td>\n",
" <td>0.033564</td>\n",
" <td>0.021043</td>\n",
" <td>0.020988</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.038220</td>\n",
" </tr>\n",
...
...
@@ -989,184 +822,202 @@
" <th>20171031</th>\n",
" <td>0.048306</td>\n",
" <td>0.077381</td>\n",
" <td>0.024545</td>\n",
" <td>0.024287</td>\n",
" <td>0.002929</td>\n",
" <td>NaN</td>\n",
" <td>0.0892
32
</td>\n",
" <td>0.0892
81
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180131</th>\n",
" <td>0.021488</td>\n",
" <td>0.021337</td>\n",
" <td>0.017642</td>\n",
" <td>0.017436</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.002
692
</td>\n",
" <td>0.002
879
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180427</th>\n",
" <td>-0.056714</td>\n",
" <td>-0.055376</td>\n",
" <td>-0.019904</td>\n",
" <td>-0.019819</td>\n",
" <td>NaN</td>\n",
" <td>-0.076295</td>\n",
" <td>-0.061
909
</td>\n",
" <td>-0.061
868
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180731</th>\n",
" <td>-0.030961</td>\n",
" <td>-0.037969</td>\n",
" <td>-0.004138</td>\n",
" <td>-0.004135</td>\n",
" <td>NaN</td>\n",
" <td>0.013507</td>\n",
" <td>-0.05
3051
</td>\n",
" <td>-0.05
2899
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20181031</th>\n",
" <td>-0.090266</td>\n",
" <td>-0.115204</td>\n",
" <td>-0.022268</td>\n",
" <td>-0.022297</td>\n",
" <td>NaN</td>\n",
" <td>-0.107380</td>\n",
" <td>-0.146
268
</td>\n",
" <td>-0.146
432
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190131</th>\n",
" <td>0.013078</td>\n",
" <td>0.010902</td>\n",
" <td>0.015465</td>\n",
" <td>0.015357</td>\n",
" <td>NaN</td>\n",
" <td>0.022036</td>\n",
" <td>0.012
453
</td>\n",
" <td>0.012
548
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190430</th>\n",
" <td>0.105354</td>\n",
" <td>0.178440</td>\n",
" <td>0.042897</td>\n",
" <td>0.042765</td>\n",
" <td>0.005341</td>\n",
" <td>0.149138</td>\n",
" <td>0.218
401
</td>\n",
" <td>0.218
195
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190731</th>\n",
" <td>0.017448</td>\n",
" <td>0.016056</td>\n",
" <td>0.023025</td>\n",
" <td>0.022984</td>\n",
" <td>0.015004</td>\n",
" <td>-0.020537</td>\n",
" <td>0.016
475
</td>\n",
" <td>0.016
384
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20191031</th>\n",
" <td>0.042466</td>\n",
" <td>0.049618</td>\n",
" <td>0.017897</td>\n",
" <td>0.017901</td>\n",
" <td>0.002708</td>\n",
" <td>0.039588</td>\n",
" <td>0.075
164
</td>\n",
" <td>0.075
066
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200123</th>\n",
" <td>0.063924</td>\n",
" <td>0.084381</td>\n",
" <td>0.031259</td>\n",
" <td>0.031199</td>\n",
" <td>0.014047</td>\n",
" <td>0.051023</td>\n",
" <td>0.1111
22
</td>\n",
" <td>0.1111
37
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200430</th>\n",
" <td>0.023858</td>\n",
" <td>0.034774</td>\n",
" <td>0.021448</td>\n",
" <td>0.023681</td>\n",
" <td>0.034650</td>\n",
" <td>0.021524</td>\n",
" <td>0.031996</td>\n",
" <td>0.004451</td>\n",
" <td>0.041
923
</td>\n",
" <td>0.041
476
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200731</th>\n",
" <td>0.144967</td>\n",
" <td>0.240062</td>\n",
" <td>0.065671</td>\n",
" <td>0.146119</td>\n",
" <td>0.240978</td>\n",
" <td>0.066132</td>\n",
" <td>-0.012089</td>\n",
" <td>0.229331</td>\n",
" <td>0.31
4409
</td>\n",
" <td>0.31
3030
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20201030</th>\n",
" <td>0.010279</td>\n",
" <td>0.006844</td>\n",
" <td>0.013590</td>\n",
" <td>0.007205</td>\n",
" <td>0.001557</td>\n",
" <td>0.012816</td>\n",
" <td>0.005541</td>\n",
" <td>0.013900</td>\n",
" <td>0.002145</td>\n",
" <td>-0.001549</td>\n",
" <td>0.001664</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210129</th>\n",
" <td>0.071818</td>\n",
" <td>0.121549</td>\n",
" <td>0.038564</td>\n",
" <td>0.187807</td>\n",
" <td>0.155830</td>\n",
" <td>0.075359</td>\n",
" <td>0.111436</td>\n",
" <td>0.039343</td>\n",
" <td>0.002360</td>\n",
" <td>0.176665</td>\n",
" <td>0.154486</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210430</th>\n",
" <td>-0.000511</td>\n",
" <td>-0.014250</td>\n",
" <td>0.007468</td>\n",
" <td>-0.019498</td>\n",
" <td>-0.018002</td>\n",
" <td>-0.001176</td>\n",
" <td>-0.014671</td>\n",
" <td>0.007276</td>\n",
" <td>0.007523</td>\n",
" <td>-0.022096</td>\n",
" <td>-0.017057</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210730</th>\n",
" <td>0.028818</td>\n",
" <td>0.052795</td>\n",
" <td>0.016447</td>\n",
" <td>-0.027494</td>\n",
" <td>0.086252</td>\n",
" <td>0.024234</td>\n",
" <td>0.049999</td>\n",
" <td>0.016621</td>\n",
" <td>0.023266</td>\n",
" <td>-0.031400</td>\n",
" <td>0.081586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211029</th>\n",
" <td>0.015676</td>\n",
" <td>0.012289</td>\n",
" <td>0.014721</td>\n",
" <td>-0.016214</td>\n",
" <td>0.013209</td>\n",
" <td>0.013566</td>\n",
" <td>0.010599</td>\n",
" <td>0.014174</td>\n",
" <td>0.007911</td>\n",
" <td>-0.032915</td>\n",
" <td>0.012236</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211109</th>\n",
" <td>-0.000245</td>\n",
" <td>0.001678</td>\n",
" <td>0.001289</td>\n",
" <td>-0.017195</td>\n",
" <td>0.003457</td>\n",
" <td>-0.000736</td>\n",
" <td>0.001592</td>\n",
" <td>0.001223</td>\n",
" <td>0.002537</td>\n",
" <td>-0.024260</td>\n",
" <td>0.002683</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"混合型(子类) 中权益仓位混合型基金 中高权益仓位混合型基金 低权益仓位混合型基金 港股通混合型基金 高权益仓位混合型基金\n",
"level_0 \n",
"20150430 0.15
8706 0.343851 0.104259 NaN 0.433357
\n",
"20150731 -0.0
35837 -0.070910 0.003793 NaN -0.12185
4\n",
"20151030 -0.000123 0.005830 0.0010
74 NaN -0.001477
\n",
"20160129 -0.069494 -0.119268 -0.01
6718 NaN -0.164333
\n",
"20160429 0.049689 0.073115 0.013
842 NaN 0.096569
\n",
"20160729 0.028211 0.033912 0.01
6797 NaN 0.041873
\n",
"20161031 0.026168 0.022893 0.01
2184 NaN 0.027644
\n",
"20170126 -0.027615 -0.026839 -0.007
877 NaN -0.043081
\n",
"20170428 0.008647 0.033472 0.0074
20
NaN 0.033880\n",
"20170731 0.031883 0.033564 0.02
1043
NaN 0.038220\n",
"20171031 0.048306 0.077381 0.024
545 NaN 0.089232
\n",
"20180131 0.021488 0.021337 0.017
642 NaN 0.002692
\n",
"20180427 -0.056714 -0.055376 -0.019
904 -0.076295 -0.061909
\n",
"20180731 -0.030961 -0.037969 -0.00413
8 0.013507 -0.053051
\n",
"20181031 -0.090266 -0.115204 -0.0222
68 -0.107380 -0.146268
\n",
"20190131 0.013078 0.010902 0.015
465 0.022036 0.012453
\n",
"20190430 0.105354 0.178440 0.042
897 0.149138 0.218401
\n",
"20190731 0.017448 0.016056 0.02
3025 -0.020537 0.016475
\n",
"20191031 0.042466 0.049618 0.017
897 0.039588 0.075164
\n",
"20200123 0.063924 0.084381 0.031
259 0.051023 0.111122
\n",
"20200430 0.023
858 0.034774 0.021448 0.004451 0.041923
\n",
"20200731 0.14
4967 0.240062 0.065671 0.229331 0.314409
\n",
"20201030 0.01
0279 0.006844 0.013590 0.007205 0.001557
\n",
"20210129 0.07
1818 0.121549 0.038564 0.187807 0.155830
\n",
"20210430 -0.00
0511 -0.014250 0.007468 -0.019498 -0.018002
\n",
"20210730 0.02
8818 0.052795 0.016447 -0.027494 0.086252
\n",
"20211029 0.01
5676 0.012289 0.014721 -0.016214 0.013209
\n",
"20211109 -0.000
245 0.001678 0.001289 -0.017195 0.003457
"
"混合型(子类) 中权益仓位混合型基金 中高权益仓位混合型基金 低权益仓位混合型基金
其他混合型基金
港股通混合型基金 高权益仓位混合型基金\n",
"level_0
\n",
"20150430 0.15
2468 0.351476 0.106609 NaN NaN 0.427369
\n",
"20150731 -0.0
41426 -0.073076 -0.000316 NaN NaN -0.12186
4\n",
"20151030 -0.000123 0.005830 0.0010
63 NaN NaN -0.001222
\n",
"20160129 -0.069494 -0.119268 -0.01
8003 NaN NaN -0.164352
\n",
"20160429 0.049689 0.073115 0.013
377 NaN NaN 0.096501
\n",
"20160729 0.028211 0.033912 0.01
7215 NaN NaN 0.041731
\n",
"20161031 0.026168 0.022893 0.01
1616 NaN NaN 0.027569
\n",
"20170126 -0.027615 -0.026839 -0.007
606 NaN NaN -0.043224
\n",
"20170428 0.008647 0.033472 0.0074
49 NaN
NaN 0.033880\n",
"20170731 0.031883 0.033564 0.02
0988 NaN
NaN 0.038220\n",
"20171031 0.048306 0.077381 0.024
287 0.002929 NaN 0.089281
\n",
"20180131 0.021488 0.021337 0.017
436 NaN NaN 0.002879
\n",
"20180427 -0.056714 -0.055376 -0.019
819 NaN -0.076295 -0.061868
\n",
"20180731 -0.030961 -0.037969 -0.00413
5 NaN 0.013507 -0.052899
\n",
"20181031 -0.090266 -0.115204 -0.0222
97 NaN -0.107380 -0.146432
\n",
"20190131 0.013078 0.010902 0.015
357 NaN 0.022036 0.012548
\n",
"20190430 0.105354 0.178440 0.042
765 0.005341 0.149138 0.218195
\n",
"20190731 0.017448 0.016056 0.02
2984 0.015004 -0.020537 0.016384
\n",
"20191031 0.042466 0.049618 0.017
901 0.002708 0.039588 0.075066
\n",
"20200123 0.063924 0.084381 0.031
199 0.014047 0.051023 0.111137
\n",
"20200430 0.023
681 0.034650 0.021524 0.031996 0.004451 0.041476
\n",
"20200731 0.14
6119 0.240978 0.066132 -0.012089 0.229331 0.313030
\n",
"20201030 0.01
2816 0.005541 0.013900 0.002145 -0.001549 0.001664
\n",
"20210129 0.07
5359 0.111436 0.039343 0.002360 0.176665 0.154486
\n",
"20210430 -0.00
1176 -0.014671 0.007276 0.007523 -0.022096 -0.017057
\n",
"20210730 0.02
4234 0.049999 0.016621 0.023266 -0.031400 0.081586
\n",
"20211029 0.01
3566 0.010599 0.014174 0.007911 -0.032915 0.012236
\n",
"20211109 -0.000
736 0.001592 0.001223 0.002537 -0.024260 0.002683
"
]
},
"execution_count": 1
5
,
"execution_count": 1
7
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -1208,7 +1059,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
category/030 债券型基金.ipynb
View file @
041faa29
...
...
@@ -41,7 +41,7 @@
},
{
"cell_type": "code",
"execution_count":
4
,
"execution_count":
15
,
"id": "07275364-e308-433e-9c3a-fe78ad8e9daa",
"metadata": {},
"outputs": [
...
...
@@ -51,7 +51,7 @@
"2044"
]
},
"execution_count":
4
,
"execution_count":
15
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -59,13 +59,14 @@
"source": [
"# 获取所有目标债券型基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(report_dates_begin, 2203)\n",
"security_info = fd_alive_funds(report_dates_begin, 2203)\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count":
6
5,
"id": "5049fc82-e1ee-476a-9fb6-79adedb6028e",
"metadata": {},
"outputs": [],
...
...
@@ -78,7 +79,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 6
6
,
"id": "0c2416b1-4edb-45d9-a31a-11fb70344539",
"metadata": {},
"outputs": [],
...
...
@@ -90,67 +91,36 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count":
6
7,
"id": "7810ff27-b4b0-4b30-a77a-c3e6d531e1ae",
"metadata": {},
"outputs": [],
"source": [
"agg_port = pd.concat([last_portfolio, last_4_cov_portfolio, last_4_stk_portfolio], axis=1).reset_index()\n",
"agg_port = pd.merge(agg_port, fd_typeclass(agg_port.SECURITYID.tolist(), current_date))\n",
"basic_info = fd_basicinfo(agg_port.SECURITYID.tolist())\n",
"agg_port = pd.merge(agg_port, basic_info)"
"df = pd.concat([last_portfolio, last_4_cov_portfolio, last_4_stk_portfolio], axis=1).reset_index()\n",
"df = pd.merge(security_info, df, on=[\"SECURITYID\"], how=\"left\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "858a98ea-e17f-4b4b-be64-becb4ce0a9b9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['普通债券型基金(一级A类)', '普通债券型基金(一级B/C类)', '普通债券型基金(二级A类)',\n",
" '普通债券型基金(二级B/C类)', '中短期标准债券型基金', '普通债券型基金(可投转债A类)',\n",
" '普通债券型基金(可投转债B类)', '指数债券型基金(A类)', '长期标准债券型基金(A类)', '可转换债券型基金(A类)',\n",
" '可转换债券型基金(B/C类)', '指数债券型基金(B/C类)', '长期标准债券型基金(B/C类)',\n",
" '封闭式普通债券型基金(可投转债)(B/C类)', '短期理财债券型基金(A类)', '短期理财债券型基金(B/C类)',\n",
" '封闭式长期标准债券型基金(A类)', '封闭式长期标准债券型基金(B/C类)', '封闭式普通债券型基金(可投转债)(A类)',\n",
" '保本型基金', '封闭式普通债券型基金(一级)(A类)', '债券型分级子基金(优先份额)', '债券型分级子基金(进取份额)',\n",
" '封闭式普通债券型基金(二级)(A类)', '封闭式普通债券型基金(二级)(B/C类)', '封闭式普通债券型基金(二级)',\n",
" '封闭式债券型分级子基金(优先份额)', '封闭式债券型分级子基金(进取份额)', '灵活配置型基金(股票上限95%)(A类)'],\n",
" dtype=object)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agg_port.L3NAME.unique()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 68,
"id": "894e01ee-8f44-472f-b37a-1d23fc8c57c1",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"agg_port.loc[(agg_port[\"BDRTO\"] >= 80) & (agg_port.L2NAME == \"短期理财债券型基金\"), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
"agg_port.loc[(agg_port[\"BDRTO\"] >= 80) & (agg_port[\"CONVBDRTO_TO_BDRTO\"] >= 80), \"债券型(子类)\"] = \"可转债基金\"\n",
"agg_port.loc[(agg_port[\"BDRTO\"] >= 80) & (agg_port[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (agg_port[\"CONVBDRTO_TO_BDRTO\"] < 80) & (agg_port[\"EQUITYINVERTO\"] <= 0.1), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
"agg_port.loc[(agg_port[\"BDRTO\"] >= 80) & (agg_port[\"EQUITYINVERTO\"] >= 0.1) & (~agg_port[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
"agg_port.loc[(agg_port[\"BDRTO\"] >= 80) & (agg_port[\"L2NAME\"] == \"指数债券型基金\") & (~agg_port[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
"agg_port.loc[pd.isnull(agg_port[\"债券型(子类)\"]), \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
"agg_port = agg_port.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])"
"df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220304\")), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80), \"债券型(子类)\"] = \"可转债基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & (df[\"EQUITYINVERTO\"] <= 0.1), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220307\")) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] < 0.05) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
"df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"其他债券型基金\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count":
10
,
"execution_count":
69
,
"id": "0fddaf03-8e90-474d-9584-7a5b60c3a15d",
"metadata": {},
"outputs": [
...
...
@@ -176,20 +146,12 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>BDRTO</th>\n",
" <th>CONVBDRTO_TO_BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" <tr>\n",
" <th>债券型(子类)</th>\n",
...
...
@@ -200,165 +162,112 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>中长期纯债型基金</th>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>779</td>\n",
" <td>783</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>565</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>792</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1014</td>\n",
" <td>1018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他债券型基金</th>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>130</td>\n",
" <td>76</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投股票型债券基金</th>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>322</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>371</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投转债型债券基金</th>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>98</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>115</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可转债基金</th>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>36</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>短期纯债型基金</th>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>50</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>50</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>61</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>被动指数型债券基金</th>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>9</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>39</td>\n",
" <td>46</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID BDRTO CONVBDRTO_TO_BDRTO EQUITYINVERTO L1CODE \\\n",
"债券型(子类) \n",
"中长期纯债型基金 792 792 779 783 792 \n",
"可投股票型债券基金 371 371 371 371 371 \n",
"可投转债型债券基金 115 115 115 115 115 \n",
"可转债基金 44 44 44 44 44 \n",
"短期纯债型基金 51 51 50 51 51 \n",
"被动指数型债券基金 15 15 15 15 15 \n",
"\n",
" L1NAME L2CODE L2NAME L3CODE L3NAME FDNAME SNAMECOMP FSYMBOL \\\n",
"债券型(子类) \n",
"中长期纯债型基金 792 792 792 792 792 792 565 792 \n",
"可投股票型债券基金 371 371 371 371 371 371 322 371 \n",
"可投转债型债券基金 115 115 115 115 115 115 98 115 \n",
"可转债基金 44 44 44 44 44 44 36 44 \n",
"短期纯债型基金 51 51 51 51 51 51 50 51 \n",
"被动指数型债券基金 15 15 15 15 15 15 9 15 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基金 1018 1018 1018 1018 1018 \n",
"其他债券型基金 282 282 282 282 130 \n",
"可投股票型债券基金 432 432 432 432 432 \n",
"可投转债型债券基金 143 143 143 143 143 \n",
"可转债基金 56 56 56 56 56 \n",
"短期纯债型基金 63 63 63 63 63 \n",
"被动指数型债券基金 50 50 50 50 50 \n",
"\n",
" FDNATURE INVESTSTYLE \n",
"债券型(子类) \n",
"中长期纯债型基金 792 792 \n",
"可投股票型债券基金 371 371 \n",
"可投转债型债券基金 115 115 \n",
"可转债基金 44 44 \n",
"短期纯债型基金 51 51 \n",
"被动指数型债券基金 15 15 "
" CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基金 1014 1018 \n",
"其他债券型基金 76 89 \n",
"可投股票型债券基金 432 432 \n",
"可投转债型债券基金 143 143 \n",
"可转债基金 56 56 \n",
"短期纯债型基金 61 63 \n",
"被动指数型债券基金 39 46 "
]
},
"execution_count":
10
,
"execution_count":
69
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"
agg_port
.groupby(\"债券型(子类)\").count()"
"
df
.groupby(\"债券型(子类)\").count()"
]
},
{
...
...
@@ -371,7 +280,7 @@
},
{
"cell_type": "code",
"execution_count":
17
,
"execution_count":
72
,
"id": "1985799f-9a72-4f53-a09b-e15c738f211f",
"metadata": {},
"outputs": [],
...
...
@@ -382,53 +291,32 @@
" report_dates_begin = nearest_report_date(date_3yrs_ago.strftime(\"%Y%m%d\"))\n",
" current_date = trade_dt.strftime(\"%Y%m%d\")\n",
" \n",
" security_i
ds
= fd_alive_funds(report_dates_begin, 2203)\n",
"
basic_info = fd_basicinfo(security_ids, current_date
)\n",
"
type_info = fd_typeclass(security_ids, current_date)
\n",
" security_i
nfo
= fd_alive_funds(report_dates_begin, 2203)\n",
"
security_ids = security_info.SECURITYID.unique().tolist(
)\n",
" \n",
" asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).fillna(0)\n",
" asset_port[\"CONVBDRTO_TO_BDRTO\"] = asset_port[\"CONVBDRTO\"] / asset_port[\"BDRTO\"] * 100\n",
" last_portfolio = asset_port.groupby(\"SECURITYID\").last()[[\"BDRTO\"]]\n",
" last_4_cov_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"CONVBDRTO_TO_BDRTO\"]]\n",
" last_4_stk_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"EQUITYINVERTO\"]]\n",
"\n",
" df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
" df = pd.merge(df, last_portfolio, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
" df = pd.merge(df, last_4_stk_portfolio, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
" df = pd.merge(df, last_4_cov_portfolio, on=\"SECURITYID\", how=\"left\").drop_duplicates()\n",
" \n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df.L2NAME == \"短期理财债券型基金\"), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
" df = pd.concat([last_portfolio, last_4_cov_portfolio, last_4_stk_portfolio], axis=1).reset_index()\n",
" df = pd.merge(security_info, df, on=[\"SECURITYID\"], how=\"left\")\n",
" \n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220304\")), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80), \"债券型(子类)\"] = \"可转债基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & (df[\"EQUITYINVERTO\"] <= 0.1), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"L2NAME\"] == \"指数债券型基金\") & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
" df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220307\")) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] < 0.05) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
" df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"其他债券型基金\"\n",
" \n",
" return df.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "992ce6ba-b2eb-4e11-b025-53bd78366ff0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 4.38 s\n"
]
}
],
"source": [
"%%time\n",
"\n",
"df = create_bond_fund_info(\"20211111\")#.groupby( \"债券型(子类)\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 73,
"id": "514f4c0b-bd1e-430b-9c5a-721bec381dc0",
"metadata": {},
"outputs": [
...
...
@@ -436,7 +324,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time:
3.86
s\n"
"Wall time:
4.07
s\n"
]
},
{
...
...
@@ -461,20 +349,12 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>CONVBDRTO_TO_BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" </tr>\n",
" <tr>\n",
" <th>债券型(子类)</th>\n",
...
...
@@ -485,159 +365,106 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>中长期纯债型基金</th>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>608</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>839</td>\n",
" <td>826</td>\n",
" <td>815</td>\n",
" <td>812</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1018</td>\n",
" <td>1014</td>\n",
" <td>1018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他债券型基金</th>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>282</td>\n",
" <td>130</td>\n",
" <td>76</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投股票型债券基金</th>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>331</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>386</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" <td>432</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投转债型债券基金</th>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>87</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>102</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" <td>143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可转债基金</th>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>33</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>短期纯债型基金</th>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>41</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>61</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>被动指数型债券基金</th>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>11</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>39</td>\n",
" <td>46</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \\\n",
"债券型(子类) \n",
"中长期纯债型基金 839 839 608 839 839 839 \n",
"可投股票型债券基金 386 386 331 386 386 386 \n",
"可投转债型债券基金 102 102 87 102 102 102 \n",
"可转债基金 39 39 33 39 39 39 \n",
"短期纯债型基金 42 42 41 42 42 42 \n",
"被动指数型债券基金 17 17 11 17 17 17 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基金 1018 1018 1018 1018 1018 \n",
"其他债券型基金 282 282 282 282 130 \n",
"可投股票型债券基金 432 432 432 432 432 \n",
"可投转债型债券基金 143 143 143 143 143 \n",
"可转债基金 56 56 56 56 56 \n",
"短期纯债型基金 63 63 63 63 63 \n",
"被动指数型债券基金 50 50 50 50 50 \n",
"\n",
" L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME BDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基金 839 839 839 839 839 839 826 \n",
"可投股票型债券基金 386 386 386 386 386 386 386 \n",
"可投转债型债券基金 102 102 102 102 102 102 102 \n",
"可转债基金 39 39 39 39 39 39 39 \n",
"短期纯债型基金 42 42 42 42 42 42 42 \n",
"被动指数型债券基金 17 17 17 17 17 17 17 \n",
"\n",
" EQUITYINVERTO CONVBDRTO_TO_BDRTO \n",
" CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基金 815 812 \n",
"可投股票型债券基金 386 386 \n",
"可投转债型债券基金 102 102 \n",
"可转债基金 39 39 \n",
"短期纯债型基金 42 42 \n",
"被动指数型债券基金 17 17 "
"中长期纯债型基金 1014 1018 \n",
"其他债券型基金 76 89 \n",
"可投股票型债券基金 432 432 \n",
"可投转债型债券基金 143 143 \n",
"可转债基金 56 56 \n",
"短期纯债型基金 61 63 \n",
"被动指数型债券基金 39 46 "
]
},
"execution_count":
19
,
"execution_count":
73
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -645,329 +472,7 @@
"source": [
"%%time\n",
"\n",
"create_bond_fund_info(\"20211111\").groupby( \"债券型(子类)\").count()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "13e11363-2e24-4a74-bd09-7b83669d4acd",
"metadata": {},
"outputs": [],
"source": [
"ddf = create_bond_fund_info(\"20211111\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "6c02fcff-7019-47f4-86e3-637939c9bb39",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>CONVBDRTO_TO_BDRTO</th>\n",
" <th>债券型(子类)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030000011</td>\n",
" <td>华夏债券投资基金</td>\n",
" <td>华夏债券</td>\n",
" <td>001001</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.1</td>\n",
" <td>普通债券型基金(一级A类)</td>\n",
" <td>114.06</td>\n",
" <td>6.9775</td>\n",
" <td>28.002064</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000012</td>\n",
" <td>华夏债券投资基金</td>\n",
" <td>华夏债券</td>\n",
" <td>001003</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.2</td>\n",
" <td>普通债券型基金(一级B/C类)</td>\n",
" <td>89.97</td>\n",
" <td>2.5225</td>\n",
" <td>24.734933</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030000014</td>\n",
" <td>华夏希望债券型证券投资基金</td>\n",
" <td>华夏希望债券</td>\n",
" <td>001011</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.3</td>\n",
" <td>普通债券型基金(二级A类)</td>\n",
" <td>83.65</td>\n",
" <td>9.0425</td>\n",
" <td>1.841911</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030000015</td>\n",
" <td>华夏希望债券型证券投资基金</td>\n",
" <td>华夏希望债券</td>\n",
" <td>001013</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.4</td>\n",
" <td>普通债券型基金(二级B/C类)</td>\n",
" <td>81.13</td>\n",
" <td>9.4025</td>\n",
" <td>1.632054</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030000022</td>\n",
" <td>国泰金龙债券证券投资基金</td>\n",
" <td>国泰金龙债券</td>\n",
" <td>020002</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.1</td>\n",
" <td>普通债券型基金(一级A类)</td>\n",
" <td>113.76</td>\n",
" <td>0.0000</td>\n",
" <td>17.436128</td>\n",
" <td>可投转债型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1074</th>\n",
" <td>2030008316</td>\n",
" <td>金鹰持久增利债券型证券投资基金(LOF)</td>\n",
" <td>金鹰持久增利债券(LOF)</td>\n",
" <td>162105</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.4</td>\n",
" <td>普通债券型基金(二级B/C类)</td>\n",
" <td>84.99</td>\n",
" <td>16.7400</td>\n",
" <td>55.675510</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1399</th>\n",
" <td>2030008318</td>\n",
" <td>浦银安盛稳健增利债券型证券投资基金(LOF)</td>\n",
" <td>浦银安盛稳健增利债券(LOF)</td>\n",
" <td>166401</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.2</td>\n",
" <td>普通债券型基金(一级B/C类)</td>\n",
" <td>130.90</td>\n",
" <td>0.0000</td>\n",
" <td>1.108862</td>\n",
" <td>中长期纯债型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1073</th>\n",
" <td>2030008417</td>\n",
" <td>金鹰元盛债券型发起式证券投资基金(LOF)</td>\n",
" <td>金鹰元盛债券(LOF)</td>\n",
" <td>162108</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.6</td>\n",
" <td>普通债券型基金(可投转债B类)</td>\n",
" <td>106.13</td>\n",
" <td>0.0000</td>\n",
" <td>0.011357</td>\n",
" <td>中长期纯债型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1123</th>\n",
" <td>2030011710</td>\n",
" <td>招商双债增强债券型证券投资基金(LOF)</td>\n",
" <td>招商双债增强(LOF)</td>\n",
" <td>161716</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.1</td>\n",
" <td>普通债券型基金(一级A类)</td>\n",
" <td>105.01</td>\n",
" <td>0.1250</td>\n",
" <td>3.309579</td>\n",
" <td>可投股票型债券基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1415</th>\n",
" <td>2030012612</td>\n",
" <td>富国天盈债券型证券投资基金(LOF)</td>\n",
" <td>富国天盈债券(LOF)</td>\n",
" <td>161015</td>\n",
" <td>LOF</td>\n",
" <td>稳健成长型</td>\n",
" <td>3</td>\n",
" <td>债券基金</td>\n",
" <td>3.2</td>\n",
" <td>普通债券型基金</td>\n",
" <td>3.2.1</td>\n",
" <td>普通债券型基金(一级A类)</td>\n",
" <td>89.26</td>\n",
" <td>0.0000</td>\n",
" <td>12.020257</td>\n",
" <td>可投转债型债券基金</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1425 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000011 华夏债券投资基金 华夏债券 001001 证券投资基金 \n",
"1 1030000012 华夏债券投资基金 华夏债券 001003 证券投资基金 \n",
"2 1030000014 华夏希望债券型证券投资基金 华夏希望债券 001011 证券投资基金 \n",
"3 1030000015 华夏希望债券型证券投资基金 华夏希望债券 001013 证券投资基金 \n",
"4 1030000022 国泰金龙债券证券投资基金 国泰金龙债券 020002 证券投资基金 \n",
"... ... ... ... ... ... \n",
"1074 2030008316 金鹰持久增利债券型证券投资基金(LOF) 金鹰持久增利债券(LOF) 162105 LOF \n",
"1399 2030008318 浦银安盛稳健增利债券型证券投资基金(LOF) 浦银安盛稳健增利债券(LOF) 166401 LOF \n",
"1073 2030008417 金鹰元盛债券型发起式证券投资基金(LOF) 金鹰元盛债券(LOF) 162108 LOF \n",
"1123 2030011710 招商双债增强债券型证券投资基金(LOF) 招商双债增强(LOF) 161716 LOF \n",
"1415 2030012612 富国天盈债券型证券投资基金(LOF) 富国天盈债券(LOF) 161015 LOF \n",
"\n",
" INVESTSTYLE L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 收益型 3 债券基金 3.2 普通债券型基金 3.2.1 普通债券型基金(一级A类) \n",
"1 收益型 3 债券基金 3.2 普通债券型基金 3.2.2 普通债券型基金(一级B/C类) \n",
"2 收益型 3 债券基金 3.2 普通债券型基金 3.2.3 普通债券型基金(二级A类) \n",
"3 收益型 3 债券基金 3.2 普通债券型基金 3.2.4 普通债券型基金(二级B/C类) \n",
"4 收益型 3 债券基金 3.2 普通债券型基金 3.2.1 普通债券型基金(一级A类) \n",
"... ... ... ... ... ... ... ... \n",
"1074 稳健成长型 3 债券基金 3.2 普通债券型基金 3.2.4 普通债券型基金(二级B/C类) \n",
"1399 稳健成长型 3 债券基金 3.2 普通债券型基金 3.2.2 普通债券型基金(一级B/C类) \n",
"1073 稳健成长型 3 债券基金 3.2 普通债券型基金 3.2.6 普通债券型基金(可投转债B类) \n",
"1123 稳健成长型 3 债券基金 3.2 普通债券型基金 3.2.1 普通债券型基金(一级A类) \n",
"1415 稳健成长型 3 债券基金 3.2 普通债券型基金 3.2.1 普通债券型基金(一级A类) \n",
"\n",
" BDRTO EQUITYINVERTO CONVBDRTO_TO_BDRTO 债券型(子类) \n",
"0 114.06 6.9775 28.002064 可投股票型债券基金 \n",
"1 89.97 2.5225 24.734933 可投股票型债券基金 \n",
"2 83.65 9.0425 1.841911 可投股票型债券基金 \n",
"3 81.13 9.4025 1.632054 可投股票型债券基金 \n",
"4 113.76 0.0000 17.436128 可投转债型债券基金 \n",
"... ... ... ... ... \n",
"1074 84.99 16.7400 55.675510 可投股票型债券基金 \n",
"1399 130.90 0.0000 1.108862 中长期纯债型基金 \n",
"1073 106.13 0.0000 0.011357 中长期纯债型基金 \n",
"1123 105.01 0.1250 3.309579 可投股票型债券基金 \n",
"1415 89.26 0.0000 12.020257 可投转债型债券基金 \n",
"\n",
"[1425 rows x 16 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ddf"
"create_bond_fund_info(\"20220212\").groupby( \"债券型(子类)\").count()"
]
},
{
...
...
@@ -981,7 +486,7 @@
},
{
"cell_type": "code",
"execution_count":
22
,
"execution_count":
74
,
"id": "bc46497a-3044-4455-b427-5e461acffc71",
"metadata": {},
"outputs": [],
...
...
@@ -999,7 +504,7 @@
},
{
"cell_type": "code",
"execution_count":
23
,
"execution_count":
75
,
"id": "4555a339-5ad5-4158-81a0-4011ab35d755",
"metadata": {},
"outputs": [
...
...
@@ -1057,7 +562,7 @@
},
{
"cell_type": "code",
"execution_count":
24
,
"execution_count":
76
,
"id": "f1f60b62-c7c8-4295-9b3c-4fbbc7bc26bd",
"metadata": {},
"outputs": [],
...
...
@@ -1068,7 +573,7 @@
},
{
"cell_type": "code",
"execution_count":
25
,
"execution_count":
77
,
"id": "0c53a5ad-430e-459a-b8cf-13ab69b5e3f4",
"metadata": {},
"outputs": [
...
...
@@ -1094,6 +599,7 @@
" <tr style=\"text-align: right;\">\n",
" <th>债券型(子类)</th>\n",
" <th>中长期纯债型基金</th>\n",
" <th>其他债券型基金</th>\n",
" <th>可投股票型债券基金</th>\n",
" <th>可投转债型债券基金</th>\n",
" <th>可转债基金</th>\n",
...
...
@@ -1108,165 +614,184 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>20150430</th>\n",
" <td>0.030347</td>\n",
" <td>0.072161</td>\n",
" <td>0.041413</td>\n",
" <td>0.197143</td>\n",
" <td>0.033952</td>\n",
" <td>0.020151</td>\n",
" <td>0.072935</td>\n",
" <td>0.036853</td>\n",
" <td>0.176267</td>\n",
" <td>NaN</td>\n",
" <td>0.025235</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20150731</th>\n",
" <td>0.017154</td>\n",
" <td>0.000445</td>\n",
" <td>0.012797</td>\n",
" <td>-0.162837</td>\n",
" <td>0.025791</td>\n",
" <td>-0.011187</td>\n",
" <td>-0.000949</td>\n",
" <td>0.012540</td>\n",
" <td>-0.109936</td>\n",
" <td>NaN</td>\n",
" <td>-0.004133</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20151030</th>\n",
" <td>0.023100</td>\n",
" <td>0.017711</td>\n",
" <td>0.024471</td>\n",
" <td>0.007149</td>\n",
" <td>0.024469</td>\n",
" <td>0.023544</td>\n",
" <td>0.017814</td>\n",
" <td>0.021918</td>\n",
" <td>0.003494</td>\n",
" <td>NaN</td>\n",
" <td>0.025465</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160129</th>\n",
" <td>0.007987</td>\n",
" <td>-0.009362</td>\n",
" <td>0.010080</td>\n",
" <td>-0.133095</td>\n",
" <td>0.013507</td>\n",
" <td>-0.010183</td>\n",
" <td>-0.008890</td>\n",
" <td>0.011042</td>\n",
" <td>-0.114681</td>\n",
" <td>NaN</td>\n",
" <td>0.017566</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160429</th>\n",
" <td>-0.001681</td>\n",
" <td>0.006570</td>\n",
" <td>-0.000907</td>\n",
" <td>-0.012924</td>\n",
" <td>NaN</td>\n",
" <td>-0.000324</td>\n",
" <td>0.000898</td>\n",
" <td>-0.004699</td>\n",
" <td>0.005371</td>\n",
" <td>0.001707</td>\n",
" <td>-0.013026</td>\n",
" <td>-0.000941</td>\n",
" <td>-0.000783</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160729</th>\n",
" <td>0.021520</td>\n",
" <td>0.020766</td>\n",
" <td>0.020973</td>\n",
" <td>-0.011611</td>\n",
" <td>NaN</td>\n",
" <td>0.020153</td>\n",
" <td>0.023862</td>\n",
" <td>0.008070</td>\n",
" <td>0.021304</td>\n",
" <td>0.020575</td>\n",
" <td>-0.019919</td>\n",
" <td>0.009018</td>\n",
" <td>0.020667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20161031</th>\n",
" <td>0.013685</td>\n",
" <td>0.015978</td>\n",
" <td>0.014682</td>\n",
" <td>0.044379</td>\n",
" <td>NaN</td>\n",
" <td>0.014173</td>\n",
" <td>0.012732</td>\n",
" <td>0.016109</td>\n",
" <td>0.013385</td>\n",
" <td>0.044301</td>\n",
" <td>0.001035</td>\n",
" <td>0.010204</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170126</th>\n",
" <td>-0.020041</td>\n",
" <td>-0.021258</td>\n",
" <td>-0.022369</td>\n",
" <td>-0.059697</td>\n",
" <td>NaN</td>\n",
" <td>-0.019464</td>\n",
" <td>-0.025560</td>\n",
" <td>-0.020658</td>\n",
" <td>-0.022100</td>\n",
" <td>-0.060265</td>\n",
" <td>-0.012598</td>\n",
" <td>-0.023771</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170428</th>\n",
" <td>-0.002274</td>\n",
" <td>-0.002592</td>\n",
" <td>-0.004142</td>\n",
" <td>-0.023021</td>\n",
" <td>NaN</td>\n",
" <td>-0.001801</td>\n",
" <td>-0.002122</td>\n",
" <td>-0.002404</td>\n",
" <td>-0.005674</td>\n",
" <td>-0.024018</td>\n",
" <td>0.001904</td>\n",
" <td>-0.005774</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170731</th>\n",
" <td>0.011702</td>\n",
" <td>0.019268</td>\n",
" <td>0.013829</td>\n",
" <td>0.059428</td>\n",
" <td>0.011713</td>\n",
" <td>0.011232</td>\n",
" <td>0.019221</td>\n",
" <td>0.014053</td>\n",
" <td>0.057224</td>\n",
" <td>NaN</td>\n",
" <td>0.006
147
</td>\n",
" <td>0.006
539
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20171031</th>\n",
" <td>0.003293</td>\n",
" <td>0.005881</td>\n",
" <td>0.000926</td>\n",
" <td>-0.029590</td>\n",
" <td>0.002639</td>\n",
" <td>0.003016</td>\n",
" <td>0.005941</td>\n",
" <td>0.000648</td>\n",
" <td>-0.028303</td>\n",
" <td>NaN</td>\n",
" <td>-0.004027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180131</th>\n",
" <td>0.004570</td>\n",
" <td>0.003125</td>\n",
" <td>0.000928</td>\n",
" <td>-0.020015</td>\n",
" <td>0.003547</td>\n",
" <td>0.012166</td>\n",
" <td>0.001947</td>\n",
" <td>0.007171</td>\n",
" <td>-0.010036</td>\n",
" <td>NaN</td>\n",
" <td>0.000615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180427</th>\n",
" <td>0.014117</td>\n",
" <td>-0.003806</td>\n",
" <td>0.010817</td>\n",
" <td>-0.047110</td>\n",
" <td>0.015265</td>\n",
" <td>0.003159</td>\n",
" <td>-0.002346</td>\n",
" <td>0.007313</td>\n",
" <td>-0.048233</td>\n",
" <td>NaN</td>\n",
" <td>0.022204</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180731</th>\n",
" <td>0.014024</td>\n",
" <td>0.000813</td>\n",
" <td>0.003028</td>\n",
" <td>-0.033606</td>\n",
" <td>0.014830</td>\n",
" <td>0.011327</td>\n",
" <td>0.000054</td>\n",
" <td>0.001534</td>\n",
" <td>-0.034461</td>\n",
" <td>NaN</td>\n",
" <td>0.01
5181
</td>\n",
" <td>0.01
3986
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20181031</th>\n",
" <td>0.009379</td>\n",
" <td>-0.011397</td>\n",
" <td>0.004041</td>\n",
" <td>-0.036301</td>\n",
" <td>0.011083</td>\n",
" <td>0.003144</td>\n",
" <td>-0.011893</td>\n",
" <td>0.003947</td>\n",
" <td>-0.036704</td>\n",
" <td>NaN</td>\n",
" <td>0.006238</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190131</th>\n",
" <td>0.021428</td>\n",
" <td>0.019541</td>\n",
" <td>0.022368</td>\n",
" <td>0.032370</td>\n",
" <td>0.021673</td>\n",
" <td>0.017712</td>\n",
" <td>0.019758</td>\n",
" <td>0.021598</td>\n",
" <td>0.031469</td>\n",
" <td>NaN</td>\n",
" <td>0.025188</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190430</th>\n",
" <td>0.002617</td>\n",
" <td>0.027850</td>\n",
" <td>0.013551</td>\n",
" <td>0.088720</td>\n",
" <td>0.000929</td>\n",
" <td>0.016787</td>\n",
" <td>0.027705</td>\n",
" <td>0.013561</td>\n",
" <td>0.089841</td>\n",
" <td>NaN</td>\n",
" <td>-0.003682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190731</th>\n",
" <td>0.014261</td>\n",
" <td>0.014590</td>\n",
" <td>0.010767</td>\n",
" <td>0.011947</td>\n",
" <td>0.014983</td>\n",
" <td>0.009581</td>\n",
...
...
@@ -1275,7 +800,8 @@
" </tr>\n",
" <tr>\n",
" <th>20191031</th>\n",
" <td>0.006508</td>\n",
" <td>0.006367</td>\n",
" <td>0.007767</td>\n",
" <td>0.010382</td>\n",
" <td>0.006459</td>\n",
" <td>0.020640</td>\n",
...
...
@@ -1284,7 +810,8 @@
" </tr>\n",
" <tr>\n",
" <th>20200123</th>\n",
" <td>0.016303</td>\n",
" <td>0.015090</td>\n",
" <td>0.029505</td>\n",
" <td>0.032775</td>\n",
" <td>0.026450</td>\n",
" <td>0.084422</td>\n",
...
...
@@ -1293,114 +820,153 @@
" </tr>\n",
" <tr>\n",
" <th>20200430</th>\n",
" <td>0.027454</td>\n",
" <td>0.020395</td>\n",
" <td>0.028748</td>\n",
" <td>0.027616</td>\n",
" <td>0.025844</td>\n",
" <td>0.020331</td>\n",
" <td>0.028717</td>\n",
" <td>0.007863</td>\n",
" <td>0.014092</td>\n",
" <td>0.038
92
4</td>\n",
" <td>0.038
78
4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200731</th>\n",
" <td>-0.012841</td>\n",
" <td>0.035941</td>\n",
" <td>-0.001227</td>\n",
" <td>-0.014291</td>\n",
" <td>0.005739</td>\n",
" <td>0.036895</td>\n",
" <td>-0.000043</td>\n",
" <td>0.121145</td>\n",
" <td>-0.00
5408
</td>\n",
" <td>-0.02
5304
</td>\n",
" <td>-0.00
7932
</td>\n",
" <td>-0.02
6045
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20201030</th>\n",
" <td>0.004654</td>\n",
" <td>-0.001083</td>\n",
" <td>0.004374</td>\n",
" <td>-0.022307</td>\n",
" <td>0.004667</td>\n",
" <td>-0.000276</td>\n",
" <td>0.005201</td>\n",
" <td>0.000384</td>\n",
" <td>-0.001625</td>\n",
" <td>0.004219</td>\n",
" <td>-0.020577</td>\n",
" <td>0.004684</td>\n",
" <td>-0.000424</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210129</th>\n",
" <td>0.004369</td>\n",
" <td>0.024910</td>\n",
" <td>0.000346</td>\n",
" <td>0.032149</td>\n",
" <td>0.005866</td>\n",
" <td>0.007405</td>\n",
" <td>0.004101</td>\n",
" <td>0.015309</td>\n",
" <td>0.024258</td>\n",
" <td>0.000460</td>\n",
" <td>0.037616</td>\n",
" <td>0.005878</td>\n",
" <td>0.007355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210430</th>\n",
" <td>0.010259</td>\n",
" <td>0.003486</td>\n",
" <td>0.011517</td>\n",
" <td>-0.005928</td>\n",
" <td>0.007111</td>\n",
" <td>0.010197</td>\n",
" <td>0.010655</td>\n",
" <td>0.006568</td>\n",
" <td>0.003155</td>\n",
" <td>0.011288</td>\n",
" <td>-0.006714</td>\n",
" <td>0.007348</td>\n",
" <td>0.010453</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210730</th>\n",
" <td>0.015451</td>\n",
" <td>0.029374</td>\n",
" <td>0.023611</td>\n",
" <td>0.096241</td>\n",
" <td>0.007855</td>\n",
" <td>0.021628</td>\n",
" <td>0.015336</td>\n",
" <td>0.025334</td>\n",
" <td>0.029210</td>\n",
" <td>0.024305</td>\n",
" <td>0.097959</td>\n",
" <td>0.008033</td>\n",
" <td>0.019500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211029</th>\n",
" <td>0.007350</td>\n",
" <td>0.012733</td>\n",
" <td>0.013998</td>\n",
" <td>0.032817</td>\n",
" <td>0.004478</td>\n",
" <td>0.005203</td>\n",
" <td>0.006999</td>\n",
" <td>0.003477</td>\n",
" <td>0.012125</td>\n",
" <td>0.013675</td>\n",
" <td>0.033714</td>\n",
" <td>0.004655</td>\n",
" <td>0.004237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211109</th>\n",
" <td>0.001612</td>\n",
" <td>0.004838</td>\n",
" <td>0.005122</td>\n",
" <td>0.017640</td>\n",
" <td>0.001282</td>\n",
" <td>0.004045</td>\n",
" <td>0.001797</td>\n",
" <td>0.001714</td>\n",
" <td>0.004964</td>\n",
" <td>0.005092</td>\n",
" <td>0.017041</td>\n",
" <td>0.001259</td>\n",
" <td>0.004136</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"债券型(子类) 中长期纯债型基金 可投股票型债券基金 可投转债型债券基金 可转债基金 短期纯债型基金 被动指数型债券基金\n",
"level_0 \n",
"20150430 0.030347 0.072161 0.041413 0.197143 NaN 0.025235\n",
"20150731 0.017154 0.000445 0.012797 -0.162837 NaN -0.004133\n",
"20151030 0.023100 0.017711 0.024471 0.007149 NaN 0.025465\n",
"20160129 0.007987 -0.009362 0.010080 -0.133095 NaN 0.017566\n",
"20160429 -0.001681 0.006570 -0.000907 -0.012924 NaN -0.000324\n",
"20160729 0.021520 0.020766 0.020973 -0.011611 NaN 0.020153\n",
"20161031 0.013685 0.015978 0.014682 0.044379 NaN 0.010204\n",
"20170126 -0.020041 -0.021258 -0.022369 -0.059697 NaN -0.023771\n",
"20170428 -0.002274 -0.002592 -0.004142 -0.023021 NaN -0.005774\n",
"20170731 0.011702 0.019268 0.013829 0.059428 NaN 0.006147\n",
"20171031 0.003293 0.005881 0.000926 -0.029590 NaN -0.004027\n",
"20180131 0.004570 0.003125 0.000928 -0.020015 NaN 0.000615\n",
"20180427 0.014117 -0.003806 0.010817 -0.047110 NaN 0.022204\n",
"20180731 0.014024 0.000813 0.003028 -0.033606 NaN 0.015181\n",
"20181031 0.009379 -0.011397 0.004041 -0.036301 NaN 0.006238\n",
"20190131 0.021428 0.019541 0.022368 0.032370 NaN 0.025188\n",
"20190430 0.002617 0.027850 0.013551 0.088720 NaN -0.003682\n",
"20190731 0.014261 0.011947 0.014983 0.009581 NaN 0.018044\n",
"20191031 0.006508 0.010382 0.006459 0.020640 0.005447 0.002414\n",
"20200123 0.016303 0.032775 0.026450 0.084422 0.010219 0.023744\n",
"20200430 0.027454 0.020395 0.028748 0.007863 0.014092 0.038924\n",
"20200731 -0.012841 0.035941 -0.001227 0.121145 -0.005408 -0.025304\n",
"20201030 0.004654 -0.001083 0.004374 -0.022307 0.004667 -0.000276\n",
"20210129 0.004369 0.024910 0.000346 0.032149 0.005866 0.007405\n",
"20210430 0.010259 0.003486 0.011517 -0.005928 0.007111 0.010197\n",
"20210730 0.015451 0.029374 0.023611 0.096241 0.007855 0.021628\n",
"20211029 0.007350 0.012733 0.013998 0.032817 0.004478 0.005203\n",
"20211109 0.001612 0.004838 0.005122 0.017640 0.001282 0.004045"
"债券型(子类) 中长期纯债型基金 其他债券型基金 可投股票型债券基金 可投转债型债券基金 可转债基金 短期纯债型基金 \\\n",
"level_0 \n",
"20150430 0.033952 0.020151 0.072935 0.036853 0.176267 NaN \n",
"20150731 0.025791 -0.011187 -0.000949 0.012540 -0.109936 NaN \n",
"20151030 0.024469 0.023544 0.017814 0.021918 0.003494 NaN \n",
"20160129 0.013507 -0.010183 -0.008890 0.011042 -0.114681 NaN \n",
"20160429 0.000898 -0.004699 0.005371 0.001707 -0.013026 -0.000941 \n",
"20160729 0.023862 0.008070 0.021304 0.020575 -0.019919 0.009018 \n",
"20161031 0.014173 0.012732 0.016109 0.013385 0.044301 0.001035 \n",
"20170126 -0.019464 -0.025560 -0.020658 -0.022100 -0.060265 -0.012598 \n",
"20170428 -0.001801 -0.002122 -0.002404 -0.005674 -0.024018 0.001904 \n",
"20170731 0.011713 0.011232 0.019221 0.014053 0.057224 NaN \n",
"20171031 0.002639 0.003016 0.005941 0.000648 -0.028303 NaN \n",
"20180131 0.003547 0.012166 0.001947 0.007171 -0.010036 NaN \n",
"20180427 0.015265 0.003159 -0.002346 0.007313 -0.048233 NaN \n",
"20180731 0.014830 0.011327 0.000054 0.001534 -0.034461 NaN \n",
"20181031 0.011083 0.003144 -0.011893 0.003947 -0.036704 NaN \n",
"20190131 0.021673 0.017712 0.019758 0.021598 0.031469 NaN \n",
"20190430 0.000929 0.016787 0.027705 0.013561 0.089841 NaN \n",
"20190731 0.014590 0.010767 0.011947 0.014983 0.009581 NaN \n",
"20191031 0.006367 0.007767 0.010382 0.006459 0.020640 0.005447 \n",
"20200123 0.015090 0.029505 0.032775 0.026450 0.084422 0.010219 \n",
"20200430 0.027616 0.025844 0.020331 0.028717 0.007863 0.014092 \n",
"20200731 -0.014291 0.005739 0.036895 -0.000043 0.121145 -0.007932 \n",
"20201030 0.005201 0.000384 -0.001625 0.004219 -0.020577 0.004684 \n",
"20210129 0.004101 0.015309 0.024258 0.000460 0.037616 0.005878 \n",
"20210430 0.010655 0.006568 0.003155 0.011288 -0.006714 0.007348 \n",
"20210730 0.015336 0.025334 0.029210 0.024305 0.097959 0.008033 \n",
"20211029 0.006999 0.003477 0.012125 0.013675 0.033714 0.004655 \n",
"20211109 0.001797 0.001714 0.004964 0.005092 0.017041 0.001259 \n",
"\n",
"债券型(子类) 被动指数型债券基金 \n",
"level_0 \n",
"20150430 0.025235 \n",
"20150731 -0.004133 \n",
"20151030 0.025465 \n",
"20160129 0.017566 \n",
"20160429 -0.000783 \n",
"20160729 0.020667 \n",
"20161031 0.010204 \n",
"20170126 -0.023771 \n",
"20170428 -0.005774 \n",
"20170731 0.006539 \n",
"20171031 -0.004027 \n",
"20180131 0.000615 \n",
"20180427 0.022204 \n",
"20180731 0.013986 \n",
"20181031 0.006238 \n",
"20190131 0.025188 \n",
"20190430 -0.003682 \n",
"20190731 0.018044 \n",
"20191031 0.002414 \n",
"20200123 0.023744 \n",
"20200430 0.038784 \n",
"20200731 -0.026045 \n",
"20201030 -0.000424 \n",
"20210129 0.007355 \n",
"20210430 0.010453 \n",
"20210730 0.019500 \n",
"20211029 0.004237 \n",
"20211109 0.004136 "
]
},
"execution_count":
25
,
"execution_count":
77
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -1442,7 +1008,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
category/040 货币基金.ipynb
View file @
041faa29
...
...
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count":
8
,
"execution_count":
2
,
"id": "51382765-24b4-4e5e-a118-077b276e0774",
"metadata": {},
"outputs": [],
...
...
@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count":
9
,
"execution_count":
3
,
"id": "47939edc-07d2-4c8e-b061-187806e124ea",
"metadata": {},
"outputs": [],
...
...
@@ -33,52 +33,32 @@
},
{
"cell_type": "code",
"execution_count":
10
,
"execution_count":
4
,
"id": "9a596482-dd98-49dc-b717-c17177f2cd64",
"metadata": {},
"outputs": [],
"source": [
"# 获取所有目标货币型基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(today, 204)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "7e1a0517-e3de-4ea7-ae3c-9c2292c63260",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids)\n",
"type_info = fd_typeclass(security_ids)"
"security_info = fd_alive_funds(today, 2205)\n",
"security_ids = security_info.SECURITYID.unique().tolist()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b0d0d48b-708b-447a-922b-500fbfb97600",
"metadata": {},
"outputs": [],
"source": [
"df = pd.merge(type_info[[\"SECURITYID\"]], basic_info, on=\"SECURITYID\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 9,
"id": "5ccf2dc7-fea9-4d52-b15d-e8ff55fac3dc",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"
df.loc[(df[\"FDNATURE\"] == \"ETF\"
), \"货币型(子类)\"] = \"场内货币型基金\"\n",
"
df.loc[(df[\"FDNATURE\"] != \"ETF\"
), \"货币型(子类)\"] = \"场外货币型基金\""
"
security_info.loc[(security_info.CLASSCODE.str.startswith(\"220502\")
), \"货币型(子类)\"] = \"场内货币型基金\"\n",
"
security_info.loc[(~security_info.CLASSCODE.str.startswith(\"220502\")
), \"货币型(子类)\"] = \"场外货币型基金\""
]
},
{
"cell_type": "code",
"execution_count": 1
4
,
"execution_count": 1
0
,
"id": "9d34507e-9efd-479a-8b25-a095de5a552c",
"metadata": {},
"outputs": [
...
...
@@ -104,11 +84,9 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" </tr>\n",
" <tr>\n",
" <th>货币型(子类)</th>\n",
...
...
@@ -116,57 +94,43 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>场内货币型基金</th>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>41</td>\n",
" <td>41</td>\n",
" <td>41</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>场外货币型基金</th>\n",
" <td>542</td>\n",
" <td>542</td>\n",
" <td>496</td>\n",
" <td>542</td>\n",
" <td>542</td>\n",
" <td>542</td>\n",
" <td>622</td>\n",
" <td>622</td>\n",
" <td>622</td>\n",
" <td>622</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID
FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYL
E\n",
"货币型(子类)
\n",
"场内货币型基金
19 19 19 19 19 19
\n",
"场外货币型基金
542 542 496 542 542 54
2"
" SECURITYID
BEGINDATE ENDDATE CLASSCOD
E\n",
"货币型(子类) \n",
"场内货币型基金
41 41 41 41
\n",
"场外货币型基金
622 622 622 62
2"
]
},
"execution_count": 1
4
,
"execution_count": 1
0
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"
df
.groupby(\"货币型(子类)\").count()"
"
security_info
.groupby(\"货币型(子类)\").count()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c46e44f3-62a7-4409-a276-e7493cbb98aa",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
...
...
category/050 另类投资基金.ipynb
View file @
041faa29
...
...
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count":
2
,
"execution_count":
1
,
"id": "76b46662-651d-4bcd-b554-f116051cf297",
"metadata": {},
"outputs": [],
...
...
@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
2
,
"id": "f5d4b805-d5a3-4b4c-8429-7044e9bef831",
"metadata": {},
"outputs": [],
...
...
@@ -40,7 +40,7 @@
{
"data": {
"text/plain": [
"
15
"
"
40
"
]
},
"execution_count": 22,
...
...
@@ -51,46 +51,38 @@
"source": [
"# 获取所有目标基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(today, 2204)\n",
"security_info = fd_alive_funds(today, [2204, 22020803, 22021401])\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "f5f5cc7d-c2d4-4c7f-b8a9-dd133407f9c6",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids)\n",
"type_info = fd_typeclass(security_ids)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 23,
"id": "52607b95-9d62-4f68-8256-984827dd0bea",
"metadata": {},
"outputs": [],
"source": [
"df =
pd.merge(type_info, basic_info, on=\"SECURITYID\")
"
"df =
security_info
"
]
},
{
"cell_type": "code",
"execution_count":
17
,
"execution_count":
24
,
"id": "60fe66ee-a8d3-4a33-8c5a-555f68d9758c",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"df.loc[(df[\"INVESTSTYLE\"] == \"商品型\") & (df[\"L1CODE\"] != 6), \"另类投资型(子类)\"] = \"商品型基金\"\n",
"df.loc[(df[\"L3NAME\"] == \"对冲策略基金\"), \"另类投资型(子类)\"] = \"量化对冲基金\""
"df.loc[(~df.CLASSCODE.str.startswith(\"220409\")) & (df.CLASSCODE.str.startswith(\"2204\")), \"另类投资型(子类)\"] = \"商品型基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"2202\"), \"另类投资型(子类)\"] = \"量化对冲基金\"\n",
"df.loc[pd.isnull(df[\"另类投资型(子类)\"]), \"另类投资型(子类)\"] = \"其他另类基金\"\n",
"# df.loc[(df[\"L3NAME\"] == \"对冲策略基金\"), \"另类投资型(子类)\"] = "
]
},
{
"cell_type": "code",
"execution_count":
18
,
"execution_count":
25
,
"id": "1bb62bc7-2515-415a-8eec-087d2d1787b6",
"metadata": {},
"outputs": [
...
...
@@ -116,17 +108,9 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" </tr>\n",
" <tr>\n",
" <th>另类投资型(子类)</th>\n",
...
...
@@ -134,369 +118,49 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>商品型基金</th>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>11</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" <td>15</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME FDNAME \\\n",
"另类投资型(子类) \n",
"商品型基金 15 15 15 15 15 15 15 15 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"另类投资型(子类) \n",
"商品型基金 11 15 15 15 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby(\"另类投资型(子类)\").count()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "3ba8793e-d648-4dc0-99ef-731a8c97f50e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030002375</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>华安易富黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>华安黄金易(ETF联接)</td>\n",
" <td>000216</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030002376</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>华安易富黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>华安黄金易(ETF联接)</td>\n",
" <td>000217</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030004308</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>博时黄金交易型开放式证券投资基金</td>\n",
" <td>博时黄金ETF</td>\n",
" <td>000929</td>\n",
" <td>证券投资基金</td>\n",
" <td>商品型</td>\n",
" <th>其他另类基金</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030004309</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>博时黄金交易型开放式证券投资基金</td>\n",
" <td>博时黄金ETF</td>\n",
" <td>000930</td>\n",
" <td>证券投资基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030006619</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>国泰黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>国泰黄金ETF联接</td>\n",
" <td>000218</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1030006684</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>易方达黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>易方达黄金ETF联接</td>\n",
" <td>000307</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1030006637</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>博时黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>博时黄金ETF联接</td>\n",
" <td>002610</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1030006638</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>博时黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>博时黄金ETF联接</td>\n",
" <td>002611</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1030007056</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>易方达黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>易方达黄金ETF联接</td>\n",
" <td>002963</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1030009793</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>国泰黄金交易型开放式证券投资基金联接基金</td>\n",
" <td>国泰黄金ETF联接</td>\n",
" <td>004253</td>\n",
" <td>联接基金</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2030000492</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>国泰黄金交易型开放式证券投资基金</td>\n",
" <td>None</td>\n",
" <td>518800</td>\n",
" <td>ETF</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2030000493</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>华安易富黄金交易型开放式证券投资基金</td>\n",
" <td>None</td>\n",
" <td>518880</td>\n",
" <td>ETF</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2030002690</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>易方达黄金交易型开放式证券投资基金</td>\n",
" <td>None</td>\n",
" <td>159934</td>\n",
" <td>ETF</td>\n",
" <td>商品型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2030004019</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.1</td>\n",
" <td>黄金基金</td>\n",
" <td>4.1.1</td>\n",
" <td>黄金基金</td>\n",
" <td>博时黄金交易型开放式证券投资基金</td>\n",
" <td>博时黄金ETF</td>\n",
" <td>159937</td>\n",
" <td>ETF</td>\n",
" <td>商品型</td>\n",
" <th>商品型基金</th>\n",
" <td>14</td>\n",
" <td>14</td>\n",
" <td>14</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2030005548</td>\n",
" <td>4</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.9</td>\n",
" <td>其他类型基金</td>\n",
" <td>4.9.1</td>\n",
" <td>其他类型基金</td>\n",
" <td>国投瑞银白银期货证券投资基金(LOF)</td>\n",
" <td>None</td>\n",
" <td>161226</td>\n",
" <td>LOF</td>\n",
" <td>商品型</td>\n",
" <th>量化对冲基金</th>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 1030002375 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"1 1030002376 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"2 1030004308 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"3 1030004309 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"4 1030006619 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"5 1030006684 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"6 1030006637 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"7 1030006638 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"8 1030007056 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"9 1030009793 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"10 2030000492 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"11 2030000493 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"12 2030002690 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"13 2030004019 4 其他类型基金 4.1 黄金基金 4.1.1 黄金基金 \n",
"14 2030005548 4 其他类型基金 4.9 其他类型基金 4.9.1 其他类型基金 \n",
"\n",
" FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"0 华安易富黄金交易型开放式证券投资基金联接基金 华安黄金易(ETF联接) 000216 联接基金 商品型 \n",
"1 华安易富黄金交易型开放式证券投资基金联接基金 华安黄金易(ETF联接) 000217 联接基金 商品型 \n",
"2 博时黄金交易型开放式证券投资基金 博时黄金ETF 000929 证券投资基金 商品型 \n",
"3 博时黄金交易型开放式证券投资基金 博时黄金ETF 000930 证券投资基金 商品型 \n",
"4 国泰黄金交易型开放式证券投资基金联接基金 国泰黄金ETF联接 000218 联接基金 商品型 \n",
"5 易方达黄金交易型开放式证券投资基金联接基金 易方达黄金ETF联接 000307 联接基金 商品型 \n",
"6 博时黄金交易型开放式证券投资基金联接基金 博时黄金ETF联接 002610 联接基金 商品型 \n",
"7 博时黄金交易型开放式证券投资基金联接基金 博时黄金ETF联接 002611 联接基金 商品型 \n",
"8 易方达黄金交易型开放式证券投资基金联接基金 易方达黄金ETF联接 002963 联接基金 商品型 \n",
"9 国泰黄金交易型开放式证券投资基金联接基金 国泰黄金ETF联接 004253 联接基金 商品型 \n",
"10 国泰黄金交易型开放式证券投资基金 None 518800 ETF 商品型 \n",
"11 华安易富黄金交易型开放式证券投资基金 None 518880 ETF 商品型 \n",
"12 易方达黄金交易型开放式证券投资基金 None 159934 ETF 商品型 \n",
"13 博时黄金交易型开放式证券投资基金 博时黄金ETF 159937 ETF 商品型 \n",
"14 国投瑞银白银期货证券投资基金(LOF) None 161226 LOF 商品型 "
" SECURITYID BEGINDATE ENDDATE CLASSCODE\n",
"另类投资型(子类) \n",
"其他另类基金 1 1 1 1\n",
"商品型基金 14 14 14 14\n",
"量化对冲基金 25 25 25 25"
]
},
"execution_count": 2
0
,
"execution_count": 2
5
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
"df
.groupby(\"另类投资型(子类)\").count()
"
]
},
{
...
...
@@ -524,7 +188,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
category/060 QDII基金.ipynb
View file @
041faa29
...
...
@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count":
2
,
"execution_count":
19
,
"id": "8bf4331c-c1db-47b4-b72d-10d5ccb72657",
"metadata": {},
"outputs": [],
...
...
@@ -33,77 +33,157 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
28
,
"id": "d228ec88-a55b-4451-8a69-1a0e490b9161",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"210"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 获取所有目标QDII基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(today, 2206)"
"security_info = fd_alive_funds(today, 2206)\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count":
4
,
"id": "
7763ee34-dbba-4297-b2d8-16fc98be8a3b
",
"execution_count":
29
,
"id": "
e992c24d-d125-4558-b541-251decc55097
",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids)\n",
"type_info = fd_typeclass(security_ids)"
"df = security_info"
]
},
{
"cell_type": "code",
"execution_count":
5
,
"id": "
e12d8f3b-0570-40db-9ec3-d6804b78c686
",
"execution_count":
30
,
"id": "
0efd51eb-a03c-440b-b083-a36df52f9185
",
"metadata": {},
"outputs": [],
"source": [
"df = pd.merge(type_info, basic_info, on=\"SECURITYID\")"
"# 分类\n",
"df.loc[df.CLASSCODE.str.startswith(\"220601\"), \"QDII型(子类)\"] = \"QDII股票型基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"220602\"), \"QDII型(子类)\"] = \"QDII混合型基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"220603\"), \"QDII型(子类)\"] = \"QDII债券型基金\"\n",
"df.loc[df.CLASSCODE.isin([\"22060901\", \"22060902\", \"22060903\", \"22060904\"]), \"QDII型(子类)\"] = \"QDII另类投资基金\"\n",
"df.loc[pd.isnull(df[\"QDII型(子类)\"]), \"QDII型(子类)\"] = \"QDII其他投资基金\""
]
},
{
"cell_type": "code",
"execution_count":
6
,
"id": "
b3f87023-d068-4014-975c-22db615c3273
",
"execution_count":
31
,
"id": "
850b9707-8849-48b5-9b39-9111ab78ccc1
",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>QDII债券型基金</th>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" <td>51</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII其他投资基金</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII另类投资基金</th>\n",
" <td>21</td>\n",
" <td>21</td>\n",
" <td>21</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII混合型基金</th>\n",
" <td>38</td>\n",
" <td>38</td>\n",
" <td>38</td>\n",
" <td>38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII股票型基金</th>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"array(['QDII股票型基金', 'QDII混合基金', 'QDII债券基金', 'QDII指数股票型基金', 'QDII商品基金',\n",
" 'QDII房地产信托基金', 'QDII分级子基金'], dtype=object)"
" SECURITYID BEGINDATE ENDDATE CLASSCODE\n",
"QDII型(子类) \n",
"QDII债券型基金 51 51 51 51\n",
"QDII其他投资基金 4 4 4 4\n",
"QDII另类投资基金 21 21 21 21\n",
"QDII混合型基金 38 38 38 38\n",
"QDII股票型基金 96 96 96 96"
]
},
"execution_count":
6
,
"execution_count":
31
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.L3NAME.unique()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0efd51eb-a03c-440b-b083-a36df52f9185",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"df.loc[(df[\"L3NAME\"].isin([\"QDII股票型基金\", \"QDII全球股票型基金\", \"QDII指数股票型基金\"])), \"QDII型(子类)\"] = \"QDII股票型基金\"\n",
"df.loc[df[\"L3NAME\"] == \"QDII债券基金\", \"QDII型(子类)\"] = \"QDII债券型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"QDII商品基金\", \"QDII房地产信托基金\"])), \"QDII型(子类)\"] = \"QDII另类投资基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"QDII混合基金\", \"QDII分级子基金\"])), \"QDII型(子类)\"] = \"QDII混合型基金\""
"df.groupby(\"QDII型(子类)\").count()"
]
},
{
"cell_type": "code",
"execution_count":
8
,
"id": "
850b9707-8849-48b5-9b39-9111ab78ccc1
",
"execution_count":
25
,
"id": "
0f3aec26-468c-4b17-b9c5-75119afcf005
",
"metadata": {},
"outputs": [
{
...
...
@@ -128,128 +208,136 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" <tr>\n",
" <th>BEGINDATE</th>\n",
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>QDII型(子类)</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>QDII债券型基金</th>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>38</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <th>0</th>\n",
" <td>1030000009</td>\n",
" <td>20071009</td>\n",
" <td>19000101</td>\n",
" <td>22060101</td>\n",
" <td>QDII股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII另类投资基金</th>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>9</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <th>174</th>\n",
" <td>2030000409</td>\n",
" <td>20120809</td>\n",
" <td>19000101</td>\n",
" <td>22060101</td>\n",
" <td>QDII股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII混合型基金</th>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>14</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <th>173</th>\n",
" <td>2030000408</td>\n",
" <td>20120809</td>\n",
" <td>19000101</td>\n",
" <td>22060101</td>\n",
" <td>QDII股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>QDII股票型基金</th>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>50</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <td>77</td>\n",
" <th>172</th>\n",
" <td>2030000364</td>\n",
" <td>20110929</td>\n",
" <td>19000101</td>\n",
" <td>22060101</td>\n",
" <td>QDII股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>171</th>\n",
" <td>2030000353</td>\n",
" <td>20120329</td>\n",
" <td>19000101</td>\n",
" <td>22060101</td>\n",
" <td>QDII股票型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>1030002339</td>\n",
" <td>20130809</td>\n",
" <td>19000101</td>\n",
" <td>22060904</td>\n",
" <td>QDII另类投资基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>179</th>\n",
" <td>2030002922</td>\n",
" <td>20140409</td>\n",
" <td>19000101</td>\n",
" <td>22060908</td>\n",
" <td>QDII另类投资基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>2030002923</td>\n",
" <td>20140409</td>\n",
" <td>19000101</td>\n",
" <td>22060908</td>\n",
" <td>QDII另类投资基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>2030002876</td>\n",
" <td>20140306</td>\n",
" <td>19000101</td>\n",
" <td>22060908</td>\n",
" <td>QDII另类投资基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>178</th>\n",
" <td>2030002877</td>\n",
" <td>20140306</td>\n",
" <td>19000101</td>\n",
" <td>22060908</td>\n",
" <td>QDII另类投资基金</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>210 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"QDII型(子类) \n",
"QDII债券型基金 39 39 39 39 39 39 39 \n",
"QDII另类投资基金 19 19 19 19 19 19 19 \n",
"QDII混合型基金 31 31 31 31 31 31 31 \n",
"QDII股票型基金 77 77 77 77 77 77 77 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE QDII型(子类)\n",
"0 1030000009 20071009 19000101 22060101 QDII股票型基金\n",
"174 2030000409 20120809 19000101 22060101 QDII股票型基金\n",
"173 2030000408 20120809 19000101 22060101 QDII股票型基金\n",
"172 2030000364 20110929 19000101 22060101 QDII股票型基金\n",
"171 2030000353 20120329 19000101 22060101 QDII股票型基金\n",
".. ... ... ... ... ...\n",
"61 1030002339 20130809 19000101 22060904 QDII另类投资基金\n",
"179 2030002922 20140409 19000101 22060908 QDII另类投资基金\n",
"180 2030002923 20140409 19000101 22060908 QDII另类投资基金\n",
"177 2030002876 20140306 19000101 22060908 QDII另类投资基金\n",
"178 2030002877 20140306 19000101 22060908 QDII另类投资基金\n",
"\n",
" FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"QDII型(子类) \n",
"QDII债券型基金 39 38 39 39 39 \n",
"QDII另类投资基金 19 9 19 19 19 \n",
"QDII混合型基金 31 14 31 31 31 \n",
"QDII股票型基金 77 50 77 77 77 "
"[210 rows x 5 columns]"
]
},
"execution_count":
8
,
"execution_count":
25
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.
groupby(\"QDII型(子类)\").count(
)"
"df.
sort_values(\"CLASSCODE\"
)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "
0f3aec26-468c-4b17-b9c5-75119afcf005
",
"id": "
a1d39d65-9c01-43f1-ab53-9dde59c93d13
",
"metadata": {},
"outputs": [],
"source": []
...
...
@@ -271,7 +359,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
category/070 FOF基金.ipynb
View file @
041faa29
...
...
@@ -33,232 +33,60 @@
},
{
"cell_type": "code",
"execution_count":
28
,
"execution_count":
4
,
"id": "004a8f9f-4011-48c6-a5dd-327cce42de51",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"13"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 获取所有目标基金(清算结束日期晚于当前日)\n",
"\n",
"security_ids = fd_alive_funds(today, \"2210\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "acf00858-6782-4ecb-8a87-9045810ce589",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "08bfc149-90e5-405d-a1f2-6ec750c26f9e",
"metadata": {},
"outputs": [],
"source": [
"df = basic_info[basic_info.FDNATURE == 'FOF']"
"security_info = fd_alive_funds(today, 2210)\n",
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"len(security_ids)"
]
},
{
"cell_type": "code",
"execution_count":
32
,
"execution_count":
7
,
"id": "fc897e0e-46f1-48a2-be9a-6381086c94bf",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030010449</td>\n",
" <td>南方全天候策略混合型基金中基金(FOF)</td>\n",
" <td>南方全天候策略混合(FOF)</td>\n",
" <td>005215</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030010450</td>\n",
" <td>南方全天候策略混合型基金中基金(FOF)</td>\n",
" <td>南方全天候策略混合(FOF)</td>\n",
" <td>005216</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030010443</td>\n",
" <td>华夏聚惠稳健目标风险混合型基金中基金(FOF)</td>\n",
" <td>华夏聚惠(FOF)</td>\n",
" <td>005218</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030010444</td>\n",
" <td>华夏聚惠稳健目标风险混合型基金中基金(FOF)</td>\n",
" <td>华夏聚惠(FOF)</td>\n",
" <td>005219</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030010446</td>\n",
" <td>嘉实领航资产配置混合型基金中基金(FOF)</td>\n",
" <td>嘉实领航资产配置混合(FOF)</td>\n",
" <td>005156</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1030010447</td>\n",
" <td>嘉实领航资产配置混合型基金中基金(FOF)</td>\n",
" <td>嘉实领航资产配置混合(FOF)</td>\n",
" <td>005157</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1030010441</td>\n",
" <td>海富通聚优精选混合型基金中基金(FOF)</td>\n",
" <td>None</td>\n",
" <td>005220</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1030010451</td>\n",
" <td>建信福泽安泰混合型基金中基金(FOF)</td>\n",
" <td>None</td>\n",
" <td>005217</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1030010459</td>\n",
" <td>泰达宏利全能优选混合型基金中基金(FOF)</td>\n",
" <td>泰达宏利全能混合(FOF)</td>\n",
" <td>005221</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1030010460</td>\n",
" <td>泰达宏利全能优选混合型基金中基金(FOF)</td>\n",
" <td>泰达宏利全能混合(FOF)</td>\n",
" <td>005222</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1030011412</td>\n",
" <td>中融量化精选混合型基金中基金(FOF)</td>\n",
" <td>中融量化精选FOF</td>\n",
" <td>005758</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1030011413</td>\n",
" <td>中融量化精选混合型基金中基金(FOF)</td>\n",
" <td>中融量化精选FOF</td>\n",
" <td>005759</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1030011474</td>\n",
" <td>前海开源裕源混合型基金中基金(FOF)</td>\n",
" <td>None</td>\n",
" <td>005809</td>\n",
" <td>FOF</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030010449 南方全天候策略混合型基金中基金(FOF) 南方全天候策略混合(FOF) 005215 FOF \n",
"1 1030010450 南方全天候策略混合型基金中基金(FOF) 南方全天候策略混合(FOF) 005216 FOF \n",
"2 1030010443 华夏聚惠稳健目标风险混合型基金中基金(FOF) 华夏聚惠(FOF) 005218 FOF \n",
"3 1030010444 华夏聚惠稳健目标风险混合型基金中基金(FOF) 华夏聚惠(FOF) 005219 FOF \n",
"4 1030010446 嘉实领航资产配置混合型基金中基金(FOF) 嘉实领航资产配置混合(FOF) 005156 FOF \n",
"5 1030010447 嘉实领航资产配置混合型基金中基金(FOF) 嘉实领航资产配置混合(FOF) 005157 FOF \n",
"6 1030010441 海富通聚优精选混合型基金中基金(FOF) None 005220 FOF \n",
"7 1030010451 建信福泽安泰混合型基金中基金(FOF) None 005217 FOF \n",
"8 1030010459 泰达宏利全能优选混合型基金中基金(FOF) 泰达宏利全能混合(FOF) 005221 FOF \n",
"9 1030010460 泰达宏利全能优选混合型基金中基金(FOF) 泰达宏利全能混合(FOF) 005222 FOF \n",
"10 1030011412 中融量化精选混合型基金中基金(FOF) 中融量化精选FOF 005758 FOF \n",
"11 1030011413 中融量化精选混合型基金中基金(FOF) 中融量化精选FOF 005759 FOF \n",
"12 1030011474 前海开源裕源混合型基金中基金(FOF) None 005809 FOF \n",
"\n",
" INVESTSTYLE \n",
"0 稳健成长型 \n",
"1 稳健成长型 \n",
"2 稳健成长型 \n",
"3 稳健成长型 \n",
"4 稳健成长型 \n",
"5 稳健成长型 \n",
"6 稳健成长型 \n",
"7 稳健成长型 \n",
"8 稳健成长型 \n",
"9 稳健成长型 \n",
"10 稳健成长型 \n",
"11 稳健成长型 \n",
"12 稳健成长型 "
"['1030010441',\n",
" '1030010443',\n",
" '1030010444',\n",
" '1030010446',\n",
" '1030010447',\n",
" '1030010449',\n",
" '1030010450',\n",
" '1030010451',\n",
" '1030010459',\n",
" '1030010460',\n",
" '1030011412',\n",
" '1030011413',\n",
" '1030011474']"
]
},
"execution_count":
32
,
"execution_count":
7
,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"
df
"
"
security_ids
"
]
},
{
...
...
@@ -286,7 +114,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.
8.12
"
"version": "3.
9.7
"
}
},
"nbformat": 4,
...
...
fof/utility.py
View file @
041faa29
...
...
@@ -72,12 +72,24 @@ def nearest_report_date(date):
def
fd_alive_funds
(
trade_dt
,
class_code
=
None
):
if
class_code
:
if
isinstance
(
class_code
,
str
)
or
isinstance
(
class_code
,
int
):
condition
=
f
" CLASSCODE like '{class_code}
%
' AND "
else
:
condition
=
[]
for
c
in
class_code
:
condition
.
append
(
f
" CLASSCODE like '{c}
%
' "
)
condition
=
"OR"
.
join
(
condition
)
condition
=
"("
+
condition
+
") AND"
query
=
f
"""
select SECODE FROM TQ_FD_TYPE
select SECODE
as SECURITYID, BEGINDATE, ENDDATE, CLASSCODE
FROM TQ_FD_TYPE
WHERE
ISVALID = 1 AND
CLASSCODE like '{class_code}
%
' AND
{condition}
TYPESTYLE = '22' AND
BEGINDATE <= '{trade_dt}' AND
(ENDDATE>='{trade_dt}' or ENDDATE = '19000101')
...
...
@@ -85,7 +97,7 @@ def fd_alive_funds(trade_dt, class_code=None):
"""
else
:
query
=
f
"""
select SECODE FROM TQ_FD_TYPE
select SECODE
as SECURITYID,BEGINDATE, ENDDATE, CLASSCODE
FROM TQ_FD_TYPE
WHERE
ISVALID = 1 AND
BEGINDATE <= '{trade_dt}' AND
...
...
@@ -93,8 +105,7 @@ def fd_alive_funds(trade_dt, class_code=None):
(ENDDATE>='{trade_dt}' or ENDDATE = '19000101')
ORDER BY SECODE;
"""
sec_codes
=
read_sql
(
query
)[
"SECODE"
]
.
unique
()
.
tolist
()
return
sec_codes
return
read_sql
(
query
)
def
fd_basicinfo
(
security_ids
=
None
,
trade_dt
=
None
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment