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
2387388e
Commit
2387388e
authored
Feb 03, 2022
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added more api
parent
c0494dcc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
706 additions
and
67 deletions
+706
-67
010 style attribution.ipynb
attribution/010 style attribution.ipynb
+436
-64
020 brison attribution.ipynb
attribution/020 brison attribution.ipynb
+215
-1
utility.py
fof/utility.py
+55
-2
No files found.
attribution/010 style attribution.ipynb
View file @
2387388e
...
...
@@ -94,52 +94,52 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1030000006</td>\n",
" <td>2010000
438
</td>\n",
" <td>
贵州茅台
</td>\n",
" <td>
1.363078e+08
</td>\n",
" <td>
66275
.0</td>\n",
" <td>
3.08
</td>\n",
" <td>0.0
40273
</td>\n",
" <td>2010000
045
</td>\n",
" <td>
海信视像
</td>\n",
" <td>
71468410.00
</td>\n",
" <td>
4228900
.0</td>\n",
" <td>
1.61
</td>\n",
" <td>0.0
21116
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>85</th>\n",
" <td>1030000006</td>\n",
" <td>2010034
058
</td>\n",
" <td>
中红医疗
</td>\n",
" <td>
5.432439e+04
</td>\n",
" <td>
6
01.0</td>\n",
" <td>2010034
181
</td>\n",
" <td>
宁波方正
</td>\n",
" <td>
4285.32
</td>\n",
" <td>
2
01.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0000
16
</td>\n",
" <td>0.0000
01
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84</th>\n",
" <td>1030000006</td>\n",
" <td>2010034
057
</td>\n",
" <td>
苏文电能
</td>\n",
" <td>
1.435693e+04
</td>\n",
" <td>
317
.0</td>\n",
" <td>2010034
138
</td>\n",
" <td>
玉马遮阳
</td>\n",
" <td>
7908.90
</td>\n",
" <td>
410
.0</td>\n",
" <td>NaN</td>\n",
" <td>0.00000
4
</td>\n",
" <td>0.00000
2
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>83</th>\n",
" <td>1030000006</td>\n",
" <td>2010034
045
</td>\n",
" <td>
华利集团
</td>\n",
" <td>
8.093750e+04
</td>\n",
" <td>
925
.0</td>\n",
" <td>2010034
132
</td>\n",
" <td>
泰福泵业
</td>\n",
" <td>
4064.00
</td>\n",
" <td>
200
.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0000
24
</td>\n",
" <td>0.0000
01
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>82</th>\n",
" <td>1030000006</td>\n",
" <td>2010034
043
</td>\n",
" <td>
商络电子
</td>\n",
" <td>
6.410760e+03
</td>\n",
" <td>
492
.0</td>\n",
" <td>2010034
131
</td>\n",
" <td>
百川畅银
</td>\n",
" <td>
13285.02
</td>\n",
" <td>
329
.0</td>\n",
" <td>NaN</td>\n",
" <td>0.00000
2
</td>\n",
" <td>0.00000
4
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
...
...
@@ -154,49 +154,49 @@
" <tr>\n",
" <th>33</th>\n",
" <td>1030000006</td>\n",
" <td>20100
09830
</td>\n",
" <td>
益丰药房
</td>\n",
" <td>
4.356965e+07
</td>\n",
" <td>
776781
.0</td>\n",
" <td>
0.98
</td>\n",
" <td>0.0
12873
</td>\n",
" <td>20100
29637
</td>\n",
" <td>
科沃斯
</td>\n",
" <td>
85084787.84
</td>\n",
" <td>
373048
.0</td>\n",
" <td>
1.92
</td>\n",
" <td>0.0
25139
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1030000006</td>\n",
" <td>20100
09541
</td>\n",
" <td>
芒果超媒
</td>\n",
" <td>
7.366405e+0
7</td>\n",
" <td>
1073820
.0</td>\n",
" <td>1.
66
</td>\n",
" <td>0.02
1765
</td>\n",
" <td>20100
28450
</td>\n",
" <td>
药石科技
</td>\n",
" <td>
83560757.6
7</td>\n",
" <td>
525837
.0</td>\n",
" <td>1.
89
</td>\n",
" <td>0.02
4689
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>1030000006</td>\n",
" <td>20100
08723
</td>\n",
" <td>
九洲药业
</td>\n",
" <td>1
.447684e+07
</td>\n",
" <td>
2980
00.0</td>\n",
" <td>0.
33
</td>\n",
" <td>0.00
4277
</td>\n",
" <td>20100
27040
</td>\n",
" <td>
英科医疗
</td>\n",
" <td>1
0458240.00
</td>\n",
" <td>
838
00.0</td>\n",
" <td>0.
24
</td>\n",
" <td>0.00
3090
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>1030000006</td>\n",
" <td>20100
29637
</td>\n",
" <td>
科沃斯
</td>\n",
" <td>
8.508479e+07
</td>\n",
" <td>
373048
.0</td>\n",
" <td>
1.92
</td>\n",
" <td>0.0
25139
</td>\n",
" <td>20100
33620
</td>\n",
" <td>
江天化学
</td>\n",
" <td>
6531.70
</td>\n",
" <td>
217
.0</td>\n",
" <td>
NaN
</td>\n",
" <td>0.0
00002
</td>\n",
" </tr>\n",
" <tr>\n",
" <th>117</th>\n",
" <td>1030000006</td>\n",
" <td>2010034373</td>\n",
" <td>英科再生</td>\n",
" <td>5
.421924e+0
4</td>\n",
" <td>5
4219.2
4</td>\n",
" <td>2469.0</td>\n",
" <td>NaN</td>\n",
" <td>0.000016</td>\n",
...
...
@@ -207,18 +207,18 @@
"</div>"
],
"text/plain": [
" SECURITYID SKCODE SKNAME
HOLDMKTCAP HOLDAMT NAVRTO pct\n",
"0 1030000006 2010000
438 贵州茅台 1.363078e+08 66275.0 3.08 0.040273
\n",
"85 1030000006 2010034
058 中红医疗 5.432439e+04 601.0 NaN 0.000016
\n",
"84 1030000006 2010034
057 苏文电能 1.435693e+04 317.0 NaN 0.000004
\n",
"83 1030000006 2010034
045 华利集团 8.093750e+04 925.0 NaN 0.000024
\n",
"82 1030000006 2010034
043 商络电子 6.410760e+03 492.0 NaN 0.000002
\n",
".. ... ... ...
... ... ... ...\n",
"33 1030000006 20100
09830 益丰药房 4.356965e+07 776781.0 0.98 0.012873
\n",
"32 1030000006 20100
09541 芒果超媒 7.366405e+07 1073820.0 1.66 0.021765
\n",
"31 1030000006 20100
08723 九洲药业 1.447684e+07 298000.0 0.33 0.004277
\n",
"43 1030000006 20100
29637 科沃斯 8.508479e+07 373048.0 1.92 0.025139
\n",
"117 1030000006 2010034373 英科再生
5.421924e+0
4 2469.0 NaN 0.000016\n",
" SECURITYID SKCODE SKNAME HOLDMKTCAP HOLDAMT NAVRTO pct\n",
"0 1030000006 2010000
045 海信视像 71468410.00 4228900.0 1.61 0.021116
\n",
"85 1030000006 2010034
181 宁波方正 4285.32 201.0 NaN 0.000001
\n",
"84 1030000006 2010034
138 玉马遮阳 7908.90 410.0 NaN 0.000002
\n",
"83 1030000006 2010034
132 泰福泵业 4064.00 200.0 NaN 0.000001
\n",
"82 1030000006 2010034
131 百川畅银 13285.02 329.0 NaN 0.000004
\n",
".. ... ... ... ... ... ... ...\n",
"33 1030000006 20100
29637 科沃斯 85084787.84 373048.0 1.92 0.025139
\n",
"32 1030000006 20100
28450 药石科技 83560757.67 525837.0 1.89 0.024689
\n",
"31 1030000006 20100
27040 英科医疗 10458240.00 83800.0 0.24 0.003090
\n",
"43 1030000006 20100
33620 江天化学 6531.70 217.0 NaN 0.000002
\n",
"117 1030000006 2010034373 英科再生
54219.2
4 2469.0 NaN 0.000016\n",
"\n",
"[118 rows x 7 columns]"
]
...
...
@@ -398,9 +398,381 @@
},
{
"cell_type": "code",
"execution_count":
null
,
"execution_count":
7
,
"id": "90957b2b-fc4c-4e7f-b50b-b2189573f1d9",
"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>trade_date</th>\n",
" <th>security_code</th>\n",
" <th>BETA</th>\n",
" <th>MOMENTUM</th>\n",
" <th>SIZE</th>\n",
" <th>EARNYILD</th>\n",
" <th>RESVOL</th>\n",
" <th>GROWTH</th>\n",
" <th>BTOP</th>\n",
" <th>LEVERAGE</th>\n",
" <th>...</th>\n",
" <th>Utilities</th>\n",
" <th>Telecom</th>\n",
" <th>AgriForest</th>\n",
" <th>CHEM</th>\n",
" <th>Media</th>\n",
" <th>IronSteel</th>\n",
" <th>NonBankFinan</th>\n",
" <th>ELECEQP</th>\n",
" <th>AERODEF</th>\n",
" <th>Conglomerates</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000045</td>\n",
" <td>-0.017</td>\n",
" <td>-0.340</td>\n",
" <td>-0.841</td>\n",
" <td>-0.234</td>\n",
" <td>-0.041</td>\n",
" <td>-0.696</td>\n",
" <td>0.755</td>\n",
" <td>-0.586</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000121</td>\n",
" <td>-1.274</td>\n",
" <td>-0.758</td>\n",
" <td>-1.765</td>\n",
" <td>-0.103</td>\n",
" <td>-0.753</td>\n",
" <td>-0.247</td>\n",
" <td>1.087</td>\n",
" <td>0.589</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000171</td>\n",
" <td>0.465</td>\n",
" <td>1.300</td>\n",
" <td>0.996</td>\n",
" <td>-0.862</td>\n",
" <td>1.511</td>\n",
" <td>-0.020</td>\n",
" <td>-0.778</td>\n",
" <td>-0.133</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000377</td>\n",
" <td>2.436</td>\n",
" <td>1.730</td>\n",
" <td>1.325</td>\n",
" <td>-1.262</td>\n",
" <td>-0.079</td>\n",
" <td>0.305</td>\n",
" <td>-1.297</td>\n",
" <td>-1.375</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000438</td>\n",
" <td>1.073</td>\n",
" <td>0.593</td>\n",
" <td>2.359</td>\n",
" <td>-0.937</td>\n",
" <td>-0.886</td>\n",
" <td>0.100</td>\n",
" <td>-1.187</td>\n",
" <td>-1.485</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>104</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010034304</td>\n",
" <td>-1.512</td>\n",
" <td>-1.342</td>\n",
" <td>-2.006</td>\n",
" <td>-0.971</td>\n",
" <td>0.109</td>\n",
" <td>0.762</td>\n",
" <td>-1.077</td>\n",
" <td>-0.979</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>105</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010034305</td>\n",
" <td>-1.952</td>\n",
" <td>-1.374</td>\n",
" <td>-2.572</td>\n",
" <td>-0.499</td>\n",
" <td>0.242</td>\n",
" <td>-1.154</td>\n",
" <td>-0.990</td>\n",
" <td>-1.394</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>106</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010034317</td>\n",
" <td>-1.587</td>\n",
" <td>-1.935</td>\n",
" <td>-1.743</td>\n",
" <td>-0.416</td>\n",
" <td>0.616</td>\n",
" <td>-0.501</td>\n",
" <td>-0.691</td>\n",
" <td>-1.083</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>107</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010034318</td>\n",
" <td>-1.535</td>\n",
" <td>-1.314</td>\n",
" <td>-2.423</td>\n",
" <td>0.760</td>\n",
" <td>0.782</td>\n",
" <td>-0.533</td>\n",
" <td>-0.051</td>\n",
" <td>0.265</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>108</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010034324</td>\n",
" <td>-1.234</td>\n",
" <td>-0.869</td>\n",
" <td>-0.592</td>\n",
" <td>-0.728</td>\n",
" <td>0.346</td>\n",
" <td>0.457</td>\n",
" <td>-1.232</td>\n",
" <td>-0.630</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>109 rows × 40 columns</p>\n",
"</div>"
],
"text/plain": [
" trade_date security_code BETA MOMENTUM SIZE EARNYILD RESVOL \\\n",
"0 2021-06-30 2010000045 -0.017 -0.340 -0.841 -0.234 -0.041 \n",
"1 2021-06-30 2010000121 -1.274 -0.758 -1.765 -0.103 -0.753 \n",
"2 2021-06-30 2010000171 0.465 1.300 0.996 -0.862 1.511 \n",
"3 2021-06-30 2010000377 2.436 1.730 1.325 -1.262 -0.079 \n",
"4 2021-06-30 2010000438 1.073 0.593 2.359 -0.937 -0.886 \n",
".. ... ... ... ... ... ... ... \n",
"104 2021-06-30 2010034304 -1.512 -1.342 -2.006 -0.971 0.109 \n",
"105 2021-06-30 2010034305 -1.952 -1.374 -2.572 -0.499 0.242 \n",
"106 2021-06-30 2010034317 -1.587 -1.935 -1.743 -0.416 0.616 \n",
"107 2021-06-30 2010034318 -1.535 -1.314 -2.423 0.760 0.782 \n",
"108 2021-06-30 2010034324 -1.234 -0.869 -0.592 -0.728 0.346 \n",
"\n",
" GROWTH BTOP LEVERAGE ... Utilities Telecom AgriForest CHEM \\\n",
"0 -0.696 0.755 -0.586 ... 0 0 0 0 \n",
"1 -0.247 1.087 0.589 ... 0 0 0 0 \n",
"2 -0.020 -0.778 -0.133 ... 0 0 0 0 \n",
"3 0.305 -1.297 -1.375 ... 0 0 0 0 \n",
"4 0.100 -1.187 -1.485 ... 0 0 0 0 \n",
".. ... ... ... ... ... ... ... ... \n",
"104 0.762 -1.077 -0.979 ... 0 0 0 0 \n",
"105 -1.154 -0.990 -1.394 ... 0 0 0 0 \n",
"106 -0.501 -0.691 -1.083 ... 0 0 0 0 \n",
"107 -0.533 -0.051 0.265 ... 1 0 0 0 \n",
"108 0.457 -1.232 -0.630 ... 0 0 0 0 \n",
"\n",
" Media IronSteel NonBankFinan ELECEQP AERODEF Conglomerates \n",
"0 0 0 0 0 0 0 \n",
"1 0 0 0 0 0 0 \n",
"2 0 0 0 0 0 0 \n",
"3 0 0 0 0 0 0 \n",
"4 0 0 0 0 0 0 \n",
".. ... ... ... ... ... ... \n",
"104 0 0 0 0 0 0 \n",
"105 0 0 0 0 0 0 \n",
"106 0 0 0 0 0 0 \n",
"107 0 0 0 0 0 0 \n",
"108 0 0 0 0 0 0 \n",
"\n",
"[109 rows x 40 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ddf"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fd64eb4b-489e-46be-ba48-7d7c3c12a32a",
"metadata": {},
"outputs": [],
"source": []
}
...
...
attribution/020 brison attribution.ipynb
View file @
2387388e
...
...
@@ -2,10 +2,224 @@
"cells": [
{
"cell_type": "code",
"execution_count":
null
,
"execution_count":
1
,
"id": "a1fbf6c8-e22a-4d0d-b3d8-c6c54d60bce1",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"sys.path.append(\"../\")\n",
"from fof.utility import *"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "21a0b455-1eb3-47f0-8a9c-15533dd12939",
"metadata": {},
"outputs": [],
"source": [
"df = fd_skdetail(\"1030000006\", trade_dt=\"20210630\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "82ca3a10-45e2-4b49-8be1-1e77104a1a52",
"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>trade_date</th>\n",
" <th>security_code</th>\n",
" <th>sname</th>\n",
" <th>weighing</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>115</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000001</td>\n",
" <td>浦发银行</td>\n",
" <td>0.55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>116</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000010</td>\n",
" <td>上海机场</td>\n",
" <td>0.22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>117</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000011</td>\n",
" <td>包钢股份</td>\n",
" <td>0.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>118</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000012</td>\n",
" <td>华能国际</td>\n",
" <td>0.09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>119</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010000014</td>\n",
" <td>华夏银行</td>\n",
" <td>0.18</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>296</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010032227</td>\n",
" <td>沪硅产业</td>\n",
" <td>0.07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>278</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010032240</td>\n",
" <td>万泰生物</td>\n",
" <td>0.08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010032306</td>\n",
" <td>中泰证券</td>\n",
" <td>0.04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>270</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010032493</td>\n",
" <td>甘李药业</td>\n",
" <td>0.03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>267</th>\n",
" <td>2021-06-30</td>\n",
" <td>2010033291</td>\n",
" <td>中金公司</td>\n",
" <td>0.08</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>300 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" trade_date security_code sname weighing\n",
"115 2021-06-30 2010000001 浦发银行 0.55\n",
"116 2021-06-30 2010000010 上海机场 0.22\n",
"117 2021-06-30 2010000011 包钢股份 0.17\n",
"118 2021-06-30 2010000012 华能国际 0.09\n",
"119 2021-06-30 2010000014 华夏银行 0.18\n",
".. ... ... ... ...\n",
"296 2021-06-30 2010032227 沪硅产业 0.07\n",
"278 2021-06-30 2010032240 万泰生物 0.08\n",
"191 2021-06-30 2010032306 中泰证券 0.04\n",
"270 2021-06-30 2010032493 甘李药业 0.03\n",
"267 2021-06-30 2010033291 中金公司 0.08\n",
"\n",
"[300 rows x 4 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"index_component(\"2070000060\", trade_dt=\"20210630\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6d57d8f9-6c1c-4a41-ae64-87763648a22b",
"metadata": {},
"outputs": [],
"source": [
"res = sw_industry_daily(df.SKCODE, \"20210630\", 2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6883105d-9a59-4e08-847c-a9c056826fd1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"39"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(res.industry_name.unique())"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "fa17cc0d-61ad-4958-bf01-7cdc1c17230d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 44.6 s\n"
]
}
],
"source": [
"%%time\n",
"rtns = stk_return_range(df.SKCODE, \"20210630\", \"20211231\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7743d37c-eb35-4294-95ef-da1007e3c175",
"metadata": {},
"outputs": [],
"source": []
}
],
...
...
fof/utility.py
View file @
2387388e
...
...
@@ -256,7 +256,7 @@ def risk_exposure(security_ids, trade_dt):
sec_id_strs
=
","
.
join
([
"'"
+
s
+
"'"
for
s
in
security_ids
])
query
=
f
"""
SELECT
*
FROM risk_exposure
SELECT
trade_date, security_code, {','.join(RISK_STYLES)}, {','.join(INDUSTRY_STYLES)}
FROM risk_exposure
WHERE
trade_date = '{_to_yyyy_mm_dd(trade_dt)}' AND
is_verify = 1 AND
...
...
@@ -291,4 +291,57 @@ def special_risk(security_ids, trade_dt, model="short"):
flag = 1 AND
security_code IN ({sec_id_strs})
"""
return
read_sql
(
query
,
source
=
"mysql"
)
.
sort_values
(
"security_code"
)
\ No newline at end of file
return
read_sql
(
query
,
source
=
"mysql"
)
.
sort_values
(
"security_code"
)
def
index_component
(
index_code
,
trade_dt
):
query
=
f
"""
SELECT index_component.trade_date, index_component.security_code, `index`.sname, `index`.weighing FROM `index`
JOIN index_component ON
`index`.trade_date = index_component.trade_date AND
`index`.isymbol = index_component.isymbol AND
`index`.symbol = index_component.symbol
WHERE
`index`.trade_date = '{_to_yyyy_mm_dd(trade_dt)}' AND
`index`.is_verify = 1 AND
`index`.flag = 1 AND
index_component.is_verify = 1 AND
index_component.flag = 1 AND
index_component.isecurity_code = '{index_code}';
"""
return
read_sql
(
query
,
source
=
"mysql"
)
.
sort_values
(
"security_code"
)
def
sw_industry_daily
(
security_ids
,
trade_dt
,
level
=
1
):
if
isinstance
(
security_ids
,
str
):
sec_id_strs
=
security_ids
else
:
sec_id_strs
=
","
.
join
([
"'"
+
s
+
"'"
for
s
in
security_ids
])
query
=
f
"""
SELECT trade_date, security_code, industry_code{level} as industry_code, industry_name{level} as industry_name FROM sw_industry_daily
WHERE
trade_date = '{_to_yyyy_mm_dd(trade_dt)}' AND
is_verify = 1 AND
flag = 1 AND
security_code IN ({sec_id_strs})
"""
return
read_sql
(
query
,
source
=
"mysql"
)
.
sort_values
(
"security_code"
)
def
stk_return_range
(
security_ids
,
start_date
,
end_date
):
if
isinstance
(
security_ids
,
str
):
sec_id_strs
=
security_ids
else
:
sec_id_strs
=
","
.
join
([
"'"
+
s
+
"'"
for
s
in
security_ids
])
query
=
f
"""
SELECT security_code, min(trade_date) as start_date, max(trade_date) as end_date, exp(sum(log(change_pct / 100.0 + 1.0))) - 1.0 as rtn FROM stk_daily_price_pro
WHERE
trade_date >= '{_to_yyyy_mm_dd(start_date)}' AND
trade_date <= '{_to_yyyy_mm_dd(end_date)}' AND
security_code IN ({sec_id_strs}) AND
flag = 1
GROUP BY security_code;
"""
return
read_sql
(
query
,
source
=
"mysql"
)
.
sort_values
(
"security_code"
)
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