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
9ba39f80
Commit
9ba39f80
authored
Nov 06, 2021
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
ee1c5ca5
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
260 additions
and
626 deletions
+260
-626
010 股票型基金.ipynb
010 股票型基金.ipynb
+215
-373
020 混合型基金.ipynb
020 混合型基金.ipynb
+43
-251
utility.py
utility.py
+2
-2
No files found.
010 股票型基金.ipynb
View file @
9ba39f80
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"cells": [
"cells": [
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
1
,
"execution_count":
5
,
"id": "3604e08c-d849-4d0e-aa6d-384657b1b6c8",
"id": "3604e08c-d849-4d0e-aa6d-384657b1b6c8",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
" fd_basicinfo,\n",
" fd_basicinfo,\n",
" fd_typeclass,\n",
" fd_typeclass,\n",
" fd_hshkiport,\n",
" fd_hshkiport,\n",
" fd_assetportfolio,\n",
" nearest_report_date\n",
" nearest_report_date\n",
")\n",
")\n",
"import pandas as pd"
"import pandas as pd"
...
@@ -25,8 +26,6 @@
...
@@ -25,8 +26,6 @@
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"# 获取回溯的报告日\n",
"\n",
"# 获取回溯的报告日\n",
"# 获取回溯的报告日\n",
"\n",
"\n",
"today = dt.datetime.today()\n",
"today = dt.datetime.today()\n",
...
@@ -56,265 +55,34 @@
...
@@ -56,265 +55,34 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
7
,
"execution_count":
13
,
"id": "79115d35-0712-4432-a73c-29bd5262dda7",
"id": "79115d35-0712-4432-a73c-29bd5262dda7",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, report_dates_begin)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"]"
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 8,
"execution_count": 19,
"id": "964ecb93-784d-42b0-95b6-66e08b1c51b9",
"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>REPORTDATE</th>\n",
" <th>MVALUE</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030004030</td>\n",
" <td>20200930</td>\n",
" <td>5.729386e+07</td>\n",
" <td>9.13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030004030</td>\n",
" <td>20201231</td>\n",
" <td>9.348727e+07</td>\n",
" <td>12.81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030004030</td>\n",
" <td>20210331</td>\n",
" <td>1.735264e+08</td>\n",
" <td>23.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030004030</td>\n",
" <td>20210630</td>\n",
" <td>1.639447e+07</td>\n",
" <td>15.62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030004030</td>\n",
" <td>20210930</td>\n",
" <td>3.454067e+06</td>\n",
" <td>32.85</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>359</th>\n",
" <td>1030009731</td>\n",
" <td>20200930</td>\n",
" <td>1.399008e+07</td>\n",
" <td>95.53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>1030009731</td>\n",
" <td>20201231</td>\n",
" <td>9.791957e+06</td>\n",
" <td>95.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>361</th>\n",
" <td>1030009731</td>\n",
" <td>20210331</td>\n",
" <td>1.490032e+07</td>\n",
" <td>93.93</td>\n",
" </tr>\n",
" <tr>\n",
" <th>362</th>\n",
" <td>1030009731</td>\n",
" <td>20210630</td>\n",
" <td>2.953495e+07</td>\n",
" <td>92.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>363</th>\n",
" <td>1030009731</td>\n",
" <td>20210930</td>\n",
" <td>2.886370e+07</td>\n",
" <td>91.64</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>364 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID REPORTDATE MVALUE ACCNETMKTCAP\n",
"0 1030004030 20200930 5.729386e+07 9.13\n",
"1 1030004030 20201231 9.348727e+07 12.81\n",
"2 1030004030 20210331 1.735264e+08 23.05\n",
"3 1030004030 20210630 1.639447e+07 15.62\n",
"4 1030004030 20210930 3.454067e+06 32.85\n",
".. ... ... ... ...\n",
"359 1030009731 20200930 1.399008e+07 95.53\n",
"360 1030009731 20201231 9.791957e+06 95.17\n",
"361 1030009731 20210331 1.490032e+07 93.93\n",
"362 1030009731 20210630 2.953495e+07 92.27\n",
"363 1030009731 20210930 2.886370e+07 91.64\n",
"\n",
"[364 rows x 4 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hkport_info.groupby([\"SECURITYID\", \"REPORTDATE\"], as_index=False).sum()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c3ffab81-d57d-4d91-9815-fdf50cd2fa76",
"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>INDCLASSCODE</th>\n",
" <th>INDUSTRYCODE</th>\n",
" <th>INDUSTRYNAME</th>\n",
" <th>REPORTDATE</th>\n",
" <th>MVALUE</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4306</th>\n",
" <td>1030009731</td>\n",
" <td>2102</td>\n",
" <td>ZZZ</td>\n",
" <td>合计</td>\n",
" <td>20210930</td>\n",
" <td>28863697.51</td>\n",
" <td>91.64</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID INDCLASSCODE INDUSTRYCODE INDUSTRYNAME REPORTDATE \\\n",
"4306 1030009731 2102 ZZZ 合计 20210930 \n",
"\n",
" MVALUE ACCNETMKTCAP \n",
"4306 28863697.51 91.64 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sss = hkport_info[hkport_info.SECURITYID == '1030009731']\n",
"\n",
"sss[sss.REPORTDATE == '20210930']"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "094c2bee-696b-4ebd-92ec-38d116e0acdb",
"metadata": {},
"outputs": [],
"source": [
"df = pd.merge(type_info, basic_info, on=\"SECURITYID\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "0c30cc50-a1c3-4774-84a8-5ab5faca8b67",
"id": "0c30cc50-a1c3-4774-84a8-5ab5faca8b67",
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [],
{
"data": {
"text/plain": [
"array(['标准指数股票型基金', '增强指数股票型基金', 'ETF联接基金', '其他行业股票型基金',\n",
" '偏股型基金(股票上下限60%-95%)', '标准股票型基金', '医药行业股票型基金', '偏债型基金',\n",
" '股票型分级子基金(优先份额)', '股票型分级子基金(进取份额)', '封闭式标准股票型基金'], dtype=object)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source": [
"df.L3NAME.unique()"
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\")\n",
"df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
30
,
"execution_count":
23
,
"id": "c99e0fe3-7193-449e-b5ee-6cbd0b003035",
"id": "c99e0fe3-7193-449e-b5ee-6cbd0b003035",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
...
@@ -322,12 +90,13 @@
...
@@ -322,12 +90,13 @@
"# 分类\n",
"# 分类\n",
"df.loc[(df[\"L3NAME\"].isin([\"其他行业股票型基金\", \"偏股型基金(股票上下限60%-95%)\", '标准股票型基金', '医药行业股票型基金', '封闭式标准股票型基金'])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"其他行业股票型基金\", \"偏股型基金(股票上下限60%-95%)\", '标准股票型基金', '医药行业股票型基金', '封闭式标准股票型基金'])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"标准指数股票型基金\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"标准指数股票型基金\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\""
"df.loc[(df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
"df.loc[(df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5), \"股票型(子类)\"] = \"港股通股票型基金\""
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
31
,
"execution_count":
24
,
"id": "a42b357e-6b87-424b-9ca9-4ce60904b66b",
"id": "a42b357e-6b87-424b-9ca9-4ce60904b66b",
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
...
@@ -353,17 +122,19 @@
...
@@ -353,17 +122,19 @@
" <tr style=\"text-align: right;\">\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>SECURITYID</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>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>股票型(子类)</th>\n",
" <th>股票型(子类)</th>\n",
...
@@ -379,6 +150,8 @@
...
@@ -379,6 +150,8 @@
" <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",
" </tr>\n",
" </thead>\n",
" </thead>\n",
" <tbody>\n",
" <tbody>\n",
...
@@ -386,66 +159,98 @@
...
@@ -386,66 +159,98 @@
" <th>增强指数型基金</th>\n",
" <th>增强指数型基金</th>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>45</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>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>45</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>63</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>普通股票型基金</th>\n",
" <th>普通股票型基金</th>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>60</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>66</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>206</td>\n",
" <td>207</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通股票型基金</th>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>8</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>被动指数型基金</th>\n",
" <th>被动指数型基金</th>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>213</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>215</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>329</td>\n",
" <td>342</td>\n",
" </tr>\n",
" </tr>\n",
" </tbody>\n",
" </tbody>\n",
"</table>\n",
"</table>\n",
"</div>"
"</div>"
],
],
"text/plain": [
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME FDNAME \\\n",
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 45 63 63 63 \n",
"普通股票型基金 207 207 60 207 207 207 \n",
"港股通股票型基金 12 12 8 12 12 12 \n",
"被动指数型基金 342 342 213 342 342 342 \n",
"\n",
" L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME EQUITYINVERTO \\\n",
"股票型(子类) \n",
"股票型(子类) \n",
"增强指数型基金 63 63 63 63 63 63 63 63 \n",
"增强指数型基金 63 63 63 63 63 63 60 \n",
"普通股票型基金 217 217 217 217 217 217 217 217 \n",
"普通股票型基金 207 207 207 207 207 207 206 \n",
"被动指数型基金 344 344 344 344 344 344 344 344 \n",
"港股通股票型基金 12 12 12 12 12 12 12 \n",
"被动指数型基金 342 342 342 342 342 342 329 \n",
"\n",
"\n",
"
SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE
\n",
"
ACCNETMKTCAP
\n",
"股票型(子类) \n",
"股票型(子类) \n",
"增强指数型基金 45 63 63 63 \n",
"增强指数型基金 63 \n",
"普通股票型基金 66 217 217 217 \n",
"普通股票型基金 207 \n",
"被动指数型基金 215 344 344 344 "
"港股通股票型基金 12 \n",
"被动指数型基金 342 "
]
]
},
},
"execution_count":
31
,
"execution_count":
24
,
"metadata": {},
"metadata": {},
"output_type": "execute_result"
"output_type": "execute_result"
}
}
...
@@ -456,7 +261,7 @@
...
@@ -456,7 +261,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
32
,
"execution_count":
25
,
"id": "3a20a243-ebe0-4410-a3e8-3363e1e793e2",
"id": "3a20a243-ebe0-4410-a3e8-3363e1e793e2",
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
...
@@ -482,17 +287,19 @@
...
@@ -482,17 +287,19 @@
" <tr style=\"text-align: right;\">\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>SECURITYID</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>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>股票型(子类)</th>\n",
" <th>股票型(子类)</th>\n",
" </tr>\n",
" </tr>\n",
" </thead>\n",
" </thead>\n",
...
@@ -500,81 +307,91 @@
...
@@ -500,81 +307,91 @@
" <tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <th>0</th>\n",
" <td>1030000030</td>\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>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>国泰沪深300指数证券投资基金</td>\n",
" <td>93.975000</td>\n",
" <td>国泰沪深300指数</td>\n",
" <td>0.0</td>\n",
" <td>020011</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <th>1</th>\n",
" <td>1030000034</td>\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>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>华安MSCI中国A股指数增强型证券投资基金</td>\n",
" <td>94.049167</td>\n",
" <td>None</td>\n",
" <td>0.0</td>\n",
" <td>040002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>增强指数型基金</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>2</th>\n",
" <td>1030000045</td>\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>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>93.689167</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>0.0</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <th>3</th>\n",
" <td>1030000045</td>\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>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>93.689167</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>0.0</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <th>4</th>\n",
" <td>1030000096</td>\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>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>易方达上证50指数增强型证券投资基金</td>\n",
" <td>92.823333</td>\n",
" <td>易方达上证50增强</td>\n",
" <td>0.0</td>\n",
" <td>110003</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>增强指数型基金</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
...
@@ -592,123 +409,148 @@
...
@@ -592,123 +409,148 @@
" <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",
" <tr>\n",
" <tr>\n",
" <th>933</th>\n",
" <th>933</th>\n",
" <td>1030005090</td>\n",
" <td>1030005100</td>\n",
" <td>信诚中证智能家居指数分级证券投资基金</td>\n",
" <td>信诚中证智能家居指数分级</td>\n",
" <td>165524</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>富国中证煤炭指数分级证券投资基金</td>\n",
" <td>94.028889</td>\n",
" <td>富国中证煤炭指数分级</td>\n",
" <td>0.0</td>\n",
" <td>161032</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>934</th>\n",
" <th>934</th>\n",
" <td>1030005095</td>\n",
" <td>1030001329</td>\n",
" <td>信诚沪深300指数分级证券投资基金</td>\n",
" <td>信诚沪深300指数分级</td>\n",
" <td>165515</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>信诚中证信息安全指数分级证券投资基金</td>\n",
" <td>94.640000</td>\n",
" <td>信诚中证信息安全指数分级</td>\n",
" <td>0.0</td>\n",
" <td>165523</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>935</th>\n",
" <th>935</th>\n",
" <td>1030005100</td>\n",
" <td>1030002379</td>\n",
" <td>信诚中证800医药指数分级证券投资基金</td>\n",
" <td>信诚中证800医药指数分级</td>\n",
" <td>165519</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>信诚中证智能家居指数分级证券投资基金</td>\n",
" <td>94.184444</td>\n",
" <td>信诚中证智能家居指数分级</td>\n",
" <td>0.0</td>\n",
" <td>165524</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>936</th>\n",
" <th>936</th>\n",
" <td>1030005248</td>\n",
" <td>1030001071</td>\n",
" <td>信诚中证500指数分级证券投资基金</td>\n",
" <td>信诚中证500指数</td>\n",
" <td>165511</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>华安创业板50指数分级证券投资基金</td>\n",
" <td>93.046667</td>\n",
" <td>华安创业板50指数分级</td>\n",
" <td>0.0</td>\n",
" <td>160420</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>937</th>\n",
" <th>937</th>\n",
" <td>1030005273</td>\n",
" <td>1030002053</td>\n",
" <td>建信央视财经50指数分级发起式证券投资基金</td>\n",
" <td>建信央视财经50指数分级</td>\n",
" <td>165312</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>方正富邦中证保险主题指数分级证券投资基金</td>\n",
" <td>92.328889</td>\n",
" <td>方正富邦保险主题指数分级</td>\n",
" <td>0.0</td>\n",
" <td>167301</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>被动指数型基金</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tr>\n",
" </tbody>\n",
" </tbody>\n",
"</table>\n",
"</table>\n",
"<p>938 rows × 1
3
columns</p>\n",
"<p>938 rows × 1
5
columns</p>\n",
"</div>"
"</div>"
],
],
"text/plain": [
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000030 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"0 1030000030 国泰沪深300指数证券投资基金 国泰沪深300指数 020011 证券投资基金 \n",
"1 1030000034 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"1 1030000034 华安MSCI中国A股指数增强型证券投资基金 None 040002 证券投资基金 \n",
"2 1030000045 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"2 1030000045 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 \n",
"3 1030000045 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"3 1030000045 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 \n",
"4 1030000096 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"4 1030000096 易方达上证50指数增强型证券投资基金 易方达上证50增强 110003 证券投资基金 \n",
".. ... ... ... ... ... \n",
"933 1030005100 信诚中证智能家居指数分级证券投资基金 信诚中证智能家居指数分级 165524 证券投资基金 \n",
"934 1030001329 信诚沪深300指数分级证券投资基金 信诚沪深300指数分级 165515 证券投资基金 \n",
"935 1030002379 信诚中证800医药指数分级证券投资基金 信诚中证800医药指数分级 165519 证券投资基金 \n",
"936 1030001071 信诚中证500指数分级证券投资基金 信诚中证500指数 165511 证券投资基金 \n",
"937 1030002053 建信央视财经50指数分级发起式证券投资基金 建信央视财经50指数分级 165312 证券投资基金 \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.1 标准指数股票型基金 \n",
"4 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
".. ... ... ... ... ... ... ... \n",
".. ... ... ... ... ... ... ... \n",
"933
1030005090
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"933
指数型
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"934
1030005095
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"934
指数型
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"935
1030005100
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"935
指数型
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"936
1030005248
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"936
指数型
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"937
1030005273
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"937
指数型
1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"\n",
"\n",
"
FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE
股票型(子类) \n",
"
EQUITYINVERTO ACCNETMKTCAP
股票型(子类) \n",
"0
国泰沪深300指数证券投资基金 国泰沪深300指数 020011 证券投资基金 指数型
被动指数型基金 \n",
"0
93.975000 0.0
被动指数型基金 \n",
"1
华安MSCI中国A股指数增强型证券投资基金 None 040002 证券投资基金 指数型
增强指数型基金 \n",
"1
94.049167 0.0
增强指数型基金 \n",
"2
博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 指数型
被动指数型基金 \n",
"2
93.689167 0.0
被动指数型基金 \n",
"3
博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 指数型
被动指数型基金 \n",
"3
93.689167 0.0
被动指数型基金 \n",
"4
易方达上证50指数增强型证券投资基金 易方达上证50增强 110003 证券投资基金 指数型
增强指数型基金 \n",
"4
92.823333 0.0
增强指数型基金 \n",
"..
... ... ... ...
... ... \n",
"..
...
... ... \n",
"933
富国中证煤炭指数分级证券投资基金 富国中证煤炭指数分级 161032 证券投资基金 指数型
被动指数型基金 \n",
"933
94.028889 0.0
被动指数型基金 \n",
"934
信诚中证信息安全指数分级证券投资基金 信诚中证信息安全指数分级 165523 证券投资基金 指数型
被动指数型基金 \n",
"934
94.640000 0.0
被动指数型基金 \n",
"935
信诚中证智能家居指数分级证券投资基金 信诚中证智能家居指数分级 165524 证券投资基金 指数型
被动指数型基金 \n",
"935
94.184444 0.0
被动指数型基金 \n",
"936
华安创业板50指数分级证券投资基金 华安创业板50指数分级 160420 证券投资基金 指数型
被动指数型基金 \n",
"936
93.046667 0.0
被动指数型基金 \n",
"937
方正富邦中证保险主题指数分级证券投资基金 方正富邦保险主题指数分级 167301 证券投资基金 指数型
被动指数型基金 \n",
"937
92.328889 0.0
被动指数型基金 \n",
"\n",
"\n",
"[938 rows x 1
3
columns]"
"[938 rows x 1
5
columns]"
]
]
},
},
"execution_count":
32
,
"execution_count":
25
,
"metadata": {},
"metadata": {},
"output_type": "execute_result"
"output_type": "execute_result"
}
}
...
...
020 混合型基金.ipynb
View file @
9ba39f80
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"cells": [
"cells": [
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 1,
"execution_count": 1
0
,
"id": "25a5db3d-4c9d-46e8-bd5a-88cca84280ba",
"id": "25a5db3d-4c9d-46e8-bd5a-88cca84280ba",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
...
@@ -11,6 +11,9 @@
...
@@ -11,6 +11,9 @@
"from utility import (\n",
"from utility import (\n",
" read_sql,\n",
" read_sql,\n",
" fd_basicinfo,\n",
" fd_basicinfo,\n",
" fd_typeclass,\n",
" fd_hshkiport,\n",
" fd_assetportfolio,\n",
" nearest_report_date\n",
" nearest_report_date\n",
")\n",
")\n",
"import pandas as pd"
"import pandas as pd"
...
@@ -18,7 +21,7 @@
...
@@ -18,7 +21,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
2
,
"execution_count":
11
,
"id": "329e6a8c-4e60-43d7-8314-63cee4f9196a",
"id": "329e6a8c-4e60-43d7-8314-63cee4f9196a",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
...
@@ -33,7 +36,7 @@
...
@@ -33,7 +36,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
3
,
"execution_count":
12
,
"id": "74246462-2676-4817-8c89-3a024ed8e412",
"id": "74246462-2676-4817-8c89-3a024ed8e412",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
...
@@ -47,264 +50,56 @@
...
@@ -47,264 +50,56 @@
" L1CODE = 2 AND\n",
" L1CODE = 2 AND\n",
" (ENDDATE>='{report_dates_begin}' or ENDDATE = '19000101') \n",
" (ENDDATE>='{report_dates_begin}' or ENDDATE = '19000101') \n",
"ORDER BY SECURITYID;\n",
"ORDER BY SECURITYID;\n",
"\"\"\")[\"SECURITYID\"].unique().tolist()\n",
"\"\"\")[\"SECURITYID\"].unique().tolist()"
"sec_id_strs = \",\".join([\"'\" + s + \"'\" for s in security_ids])\n",
"\n",
"not_liq_sec_ids = fd_basicinfo(security_ids, current_date)[\"SECURITYID\"].unique().tolist()\n",
"sec_id_strs = \",\".join([\"'\" + s + \"'\" for s in not_liq_sec_ids])"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
4
,
"execution_count":
13
,
"id": "61270089-05d5-4396-829e-651118231b60",
"id": "61270089-05d5-4396-829e-651118231b60",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"# 获取相关组合情况\n",
"# 获取相关组合情况\n",
"\n",
"\n",
"query = f\"\"\"\n",
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"SELECT SECURITYID, REPORTDATE, EQUITYINVERTO from TQ_FD_ASSETPORTFOLIO\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"WHERE\n",
"hkport_info = fd_hshkiport(security_ids, report_dates_begin)\n",
" REPORTDATE >= '{report_dates_begin}' AND\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
" ISVALID = 1 AND\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
" SECURITYID in ({sec_id_strs})\n",
"\"\"\"\n",
"portfolios = read_sql(query).sort_values(\"SECURITYID\")\n",
"agg_port = portfolios.groupby(\"SECURITYID\", as_index=False).mean()\n",
"security_ids_has_port = agg_port.SECURITYID.tolist()"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
5
,
"execution_count":
14
,
"id": "
73250ba3-83f4-41fe-8e61-2869f7db8662
",
"id": "
3968c35a-fa98-479b-a9e2-9cbeec4def1a
",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"# 分类\n",
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
"agg_port.loc[agg_port[\"EQUITYINVERTO\"] >= 70, \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 50) & (agg_port[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\")\n",
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 30) & (agg_port[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)"
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 0) & (agg_port[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\""
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
7
,
"execution_count":
18
,
"id": "
87566cc8-5684-4c03-b247-3fb9abf72cf6
",
"id": "
73250ba3-83f4-41fe-8e61-2869f7db8662
",
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"agg_port = pd.merge(agg_port, fd_basicinfo(agg_port.SECURITYID.tolist(), current_date))"
"# 分类\n",
]
"df.loc[df[\"EQUITYINVERTO\"] >= 70, \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
},
"df.loc[((df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
{
"df.loc[((df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"cell_type": "code",
"df.loc[((df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
"execution_count": 8,
"df.loc[(df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5), \"混合型(子类)\"] = \"港股通混合型基金\""
"id": "89e23e81-3398-40ab-a410-584b659f5db1",
"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>EQUITYINVERTO</th>\n",
" <th>混合型(子类)</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>40</th>\n",
" <td>1030000079</td>\n",
" <td>17.740000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>大成财富管理2020生命周期证券投资基金</td>\n",
" <td>None</td>\n",
" <td>090006</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>1030000112</td>\n",
" <td>24.380000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>国投瑞银融华债券型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>121001</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>1030000124</td>\n",
" <td>19.025833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>银河收益证券投资基金</td>\n",
" <td>None</td>\n",
" <td>151002</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>1030000180</td>\n",
" <td>26.726667</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>南方宝元债券型基金</td>\n",
" <td>南方宝元债券</td>\n",
" <td>202101</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>1030000185</td>\n",
" <td>1.710000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>鹏华弘泰灵活配置混合型证券投资基金</td>\n",
" <td>鹏华弘泰灵活配置混合</td>\n",
" <td>206001</td>\n",
" <td>证券投资基金</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",
" </tr>\n",
" <tr>\n",
" <th>2067</th>\n",
" <td>1030009757</td>\n",
" <td>23.222500</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>东方价值挖掘灵活配置混合型证券投资基金</td>\n",
" <td>东方价值挖掘灵活配置混合</td>\n",
" <td>004166</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2070</th>\n",
" <td>1030009810</td>\n",
" <td>22.155833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达瑞富灵活配置混合型证券投资基金</td>\n",
" <td>易方达瑞富混合</td>\n",
" <td>001745</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2071</th>\n",
" <td>1030009811</td>\n",
" <td>22.155833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达瑞富灵活配置混合型证券投资基金</td>\n",
" <td>易方达瑞富混合</td>\n",
" <td>001746</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2072</th>\n",
" <td>1030009813</td>\n",
" <td>21.400833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>南方安康混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>004517</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2081</th>\n",
" <td>1030013275</td>\n",
" <td>7.011667</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达裕惠回报定期开放式混合型发起式证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000436</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>508 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID EQUITYINVERTO 混合型(子类) FDNAME \\\n",
"40 1030000079 17.740000 低权益仓位混合型基金 大成财富管理2020生命周期证券投资基金 \n",
"54 1030000112 24.380000 低权益仓位混合型基金 国投瑞银融华债券型证券投资基金 \n",
"62 1030000124 19.025833 低权益仓位混合型基金 银河收益证券投资基金 \n",
"94 1030000180 26.726667 低权益仓位混合型基金 南方宝元债券型基金 \n",
"95 1030000185 1.710000 低权益仓位混合型基金 鹏华弘泰灵活配置混合型证券投资基金 \n",
"... ... ... ... ... \n",
"2067 1030009757 23.222500 低权益仓位混合型基金 东方价值挖掘灵活配置混合型证券投资基金 \n",
"2070 1030009810 22.155833 低权益仓位混合型基金 易方达瑞富灵活配置混合型证券投资基金 \n",
"2071 1030009811 22.155833 低权益仓位混合型基金 易方达瑞富灵活配置混合型证券投资基金 \n",
"2072 1030009813 21.400833 低权益仓位混合型基金 南方安康混合型证券投资基金 \n",
"2081 1030013275 7.011667 低权益仓位混合型基金 易方达裕惠回报定期开放式混合型发起式证券投资基金 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"40 None 090006 证券投资基金 稳健成长型 \n",
"54 None 121001 证券投资基金 收益型 \n",
"62 None 151002 证券投资基金 稳健成长型 \n",
"94 南方宝元债券 202101 证券投资基金 稳健成长型 \n",
"95 鹏华弘泰灵活配置混合 206001 证券投资基金 稳健成长型 \n",
"... ... ... ... ... \n",
"2067 东方价值挖掘灵活配置混合 004166 证券投资基金 稳健成长型 \n",
"2070 易方达瑞富混合 001745 证券投资基金 稳健成长型 \n",
"2071 易方达瑞富混合 001746 证券投资基金 稳健成长型 \n",
"2072 None 004517 证券投资基金 稳健成长型 \n",
"2081 None 000436 证券投资基金 稳健成长型 \n",
"\n",
"[508 rows x 8 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agg_port.loc[agg_port[\"混合型(子类)\"] == \"低权益仓位混合型基金\", :]"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 9,
"execution_count":
1
9,
"id": "a27e2473-ddf5-4883-bb50-6fe46914d3da",
"id": "a27e2473-ddf5-4883-bb50-6fe46914d3da",
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
...
@@ -339,19 +134,23 @@
...
@@ -339,19 +134,23 @@
" <tbody>\n",
" <tbody>\n",
" <tr>\n",
" <tr>\n",
" <th>中权益仓位混合型基金</th>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>1
44
</td>\n",
" <td>1
67
</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>
197
</td>\n",
" <td>
240
</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>低权益仓位混合型基金</th>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>508</td>\n",
" <td>625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通混合型基金</th>\n",
" <td>17</td>\n",
" </tr>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <th>高权益仓位混合型基金</th>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>1
205
</td>\n",
" <td>1
661
</td>\n",
" </tr>\n",
" </tr>\n",
" </tbody>\n",
" </tbody>\n",
"</table>\n",
"</table>\n",
...
@@ -360,29 +159,22 @@
...
@@ -360,29 +159,22 @@
"text/plain": [
"text/plain": [
" FSYMBOL\n",
" FSYMBOL\n",
"混合型(子类) \n",
"混合型(子类) \n",
"中权益仓位混合型基金 144\n",
"中权益仓位混合型基金 167\n",
"中高权益仓位混合型基金 197\n",
"中高权益仓位混合型基金 240\n",
"低权益仓位混合型基金 508\n",
"低权益仓位混合型基金 625\n",
"高权益仓位混合型基金 1205"
"港股通混合型基金 17\n",
"高权益仓位混合型基金 1661"
]
]
},
},
"execution_count": 9,
"execution_count":
1
9,
"metadata": {},
"metadata": {},
"output_type": "execute_result"
"output_type": "execute_result"
}
}
],
],
"source": [
"source": [
"
agg_port
.groupby(\"混合型(子类)\")[[\"FSYMBOL\"]].count()"
"
df
.groupby(\"混合型(子类)\")[[\"FSYMBOL\"]].count()"
]
]
},
},
{
"cell_type": "code",
"execution_count": null,
"id": "6ee9ba23-6c27-4fbf-bd56-ed95404c4bee",
"metadata": {},
"outputs": [],
"source": []
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": null,
"execution_count": null,
...
...
utility.py
View file @
9ba39f80
...
@@ -95,7 +95,7 @@ def fd_hshkiport(security_ids, report_dates_begin):
...
@@ -95,7 +95,7 @@ def fd_hshkiport(security_ids, report_dates_begin):
def
fd_assetportfolio
(
security_ids
,
report_dates_begin
):
def
fd_assetportfolio
(
security_ids
,
report_dates_begin
):
# 获取相关组合情况
# 获取相关组合情况
f
isinstance
(
security_ids
,
str
):
i
f
isinstance
(
security_ids
,
str
):
sec_id_strs
=
security_ids
sec_id_strs
=
security_ids
else
:
else
:
sec_id_strs
=
","
.
join
([
"'"
+
s
+
"'"
for
s
in
security_ids
])
sec_id_strs
=
","
.
join
([
"'"
+
s
+
"'"
for
s
in
security_ids
])
...
@@ -107,4 +107,4 @@ def fd_assetportfolio(security_ids, report_dates_begin):
...
@@ -107,4 +107,4 @@ def fd_assetportfolio(security_ids, report_dates_begin):
ISVALID = 1 AND
ISVALID = 1 AND
SECURITYID in ({sec_id_strs})
SECURITYID in ({sec_id_strs})
"""
"""
return
=
read_sql
(
query
)
.
sort_values
(
"SECURITYID"
)
return
read_sql
(
query
)
.
sort_values
(
"SECURITYID"
)
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