Commit 87e3232b authored by Dr.李's avatar Dr.李
parents 97b46b1c 370da5a6
......@@ -82,12 +82,12 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2018-03-29 23:27:41,866 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-29 23:27:41,879 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-29 23:27:41,897 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-29 23:27:41,925 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-29 23:27:41,966 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-29 23:27:42,244 - ALPHA_MIND - INFO - ashare_ex is finished\n"
"2018-03-30 16:52:12,784 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-30 16:52:12,796 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-30 16:52:12,813 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-30 16:52:12,842 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-30 16:52:12,879 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-30 16:52:13,184 - ALPHA_MIND - INFO - ashare_ex is finished\n"
]
}
],
......@@ -171,21 +171,21 @@
" <tbody>\n",
" <tr>\n",
" <th>cvxpy</th>\n",
" <td>1.63</td>\n",
" <td>3.53</td>\n",
" <td>5.47</td>\n",
" <td>10.00</td>\n",
" <td>16.80</td>\n",
" <td>128.58</td>\n",
" <td>1.68</td>\n",
" <td>3.13</td>\n",
" <td>5.02</td>\n",
" <td>10.15</td>\n",
" <td>13.55</td>\n",
" <td>145.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alphamind</th>\n",
" <td>0.21</td>\n",
" <td>0.37</td>\n",
" <td>0.45</td>\n",
" <td>0.65</td>\n",
" <td>0.80</td>\n",
" <td>2.43</td>\n",
" <td>0.20</td>\n",
" <td>0.33</td>\n",
" <td>0.44</td>\n",
" <td>0.58</td>\n",
" <td>0.72</td>\n",
" <td>2.94</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -193,8 +193,8 @@
],
"text/plain": [
" sh50 hs300 zz500 zz800 zz1000 ashare_ex\n",
"cvxpy 1.63 3.53 5.47 10.00 16.80 128.58\n",
"alphamind 0.21 0.37 0.45 0.65 0.80 2.43"
"cvxpy 1.68 3.13 5.02 10.15 13.55 145.17\n",
"alphamind 0.20 0.33 0.44 0.58 0.72 2.94"
]
},
"execution_count": 4,
......@@ -223,20 +223,23 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2018-03-29 23:28:14,838 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-29 23:28:15,575 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-29 23:28:18,310 - ALPHA_MIND - INFO - zz500 is finished\n"
"2018-03-30 16:52:13,374 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-30 16:52:13,509 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-30 16:52:13,732 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-30 16:52:14,220 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-30 16:52:14,956 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-30 16:52:21,246 - ALPHA_MIND - INFO - ashare_ex is finished\n"
]
}
],
"source": [
"from cvxpy import pnorm\n",
"\n",
"df = pd.DataFrame(columns=u_names[:3], index=['cvxpy', 'alphamind'])\n",
"df = pd.DataFrame(columns=u_names, index=['cvxpy', 'alphamind (simplex)', 'alphamind (interior)'])\n",
"turn_over_target = 0.5\n",
"number = 1\n",
"\n",
"for u_name, sample_data in zip(u_names[:3], data_set):\n",
"for u_name, sample_data in zip(u_names, data_set):\n",
" factor_data = sample_data['factor']\n",
" er = factor_data[factor].values\n",
" n = len(er)\n",
......@@ -258,7 +261,7 @@
" risk_target,\n",
" turn_over_target=turn_over_target,\n",
" current_position=current_position,\n",
" method='simplex')\n",
" method='interior')\n",
" elasped_time1 = timeit.timeit(\"\"\"linear_builder(er,\n",
" lbound,\n",
" ubound,\n",
......@@ -266,7 +269,7 @@
" risk_target,\n",
" turn_over_target=turn_over_target,\n",
" current_position=current_position,\n",
" method='simplex')\"\"\", number=number, globals=globals()) / number * 1000\n",
" method='interior')\"\"\", number=number, globals=globals()) / number * 1000\n",
" \n",
" w = cvxpy.Variable(n)\n",
" curr_risk_exposure = risk_constraints.T @ w\n",
......@@ -282,9 +285,21 @@
" prob.solve(solver='GLPK')\n",
" elasped_time2 = timeit.timeit(\"prob.solve(solver='GLPK')\",\n",
" number=number, globals=globals()) / number * 1000\n",
" \n",
" elasped_time3 = timeit.timeit(\"\"\"linear_builder(er,\n",
" lbound,\n",
" ubound,\n",
" risk_constraints,\n",
" risk_target,\n",
" turn_over_target=turn_over_target,\n",
" current_position=current_position,\n",
" method='simplex')\"\"\", number=number, globals=globals()) / number * 1000\n",
" \n",
" \n",
" np.testing.assert_almost_equal(x1 @ er, np.array(w.value).flatten() @ er, 4)\n",
"\n",
" df.loc['alphamind', u_name] = elasped_time1\n",
" df.loc['alphamind (interior)', u_name] = elasped_time1\n",
" df.loc['alphamind (simplex)', u_name] = elasped_time3\n",
" df.loc['cvxpy', u_name] = elasped_time2\n",
" alpha_logger.info(f\"{u_name} is finished\")"
]
......@@ -326,21 +341,21 @@
" <tbody>\n",
" <tr>\n",
" <th>cvxpy</th>\n",
" <td>2.50</td>\n",
" <td>20.24</td>\n",
" <td>52.74</td>\n",
" <td>125.65</td>\n",
" <td>204.18</td>\n",
" <td>1,789.07</td>\n",
" <td>2.49</td>\n",
" <td>22.19</td>\n",
" <td>51.62</td>\n",
" <td>123.42</td>\n",
" <td>190.62</td>\n",
" <td>1,946.96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alphamind</th>\n",
" <td>1.34</td>\n",
" <td>9.60</td>\n",
" <td>28.20</td>\n",
" <td>81.53</td>\n",
" <td>106.00</td>\n",
" <td>1,213.77</td>\n",
" <td>3.77</td>\n",
" <td>33.59</td>\n",
" <td>55.49</td>\n",
" <td>116.31</td>\n",
" <td>165.62</td>\n",
" <td>1,239.47</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -348,8 +363,8 @@
],
"text/plain": [
" sh50 hs300 zz500 zz800 zz1000 ashare_ex\n",
"cvxpy 2.50 20.24 52.74 125.65 204.18 1,789.07\n",
"alphamind 1.34 9.60 28.20 81.53 106.00 1,213.77"
"cvxpy 2.49 22.19 51.62 123.42 190.62 1,946.96\n",
"alphamind 3.77 33.59 55.49 116.31 165.62 1,239.47"
]
},
"execution_count": 6,
......@@ -373,19 +388,19 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2018-03-29 23:20:00,988 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-29 23:20:01,378 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-29 23:20:02,793 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-29 23:20:07,901 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-29 23:20:15,170 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-29 23:23:37,330 - ALPHA_MIND - INFO - ashare_ex is finished\n"
"2018-03-30 16:52:21,418 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-30 16:52:21,888 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-30 16:52:23,360 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-30 16:52:29,066 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-30 16:52:37,334 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-30 16:56:15,174 - ALPHA_MIND - INFO - ashare_ex is finished\n"
]
}
],
......@@ -434,7 +449,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 9,
"metadata": {},
"outputs": [
{
......@@ -469,21 +484,21 @@
" <tbody>\n",
" <tr>\n",
" <th>cvxpy</th>\n",
" <td>8.30</td>\n",
" <td>164.79</td>\n",
" <td>620.38</td>\n",
" <td>2,280.32</td>\n",
" <td>3,124.51</td>\n",
" <td>87,652.78</td>\n",
" <td>9.81</td>\n",
" <td>185.93</td>\n",
" <td>638.17</td>\n",
" <td>2,501.41</td>\n",
" <td>3,665.02</td>\n",
" <td>94,592.70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alphamind</th>\n",
" <td>0.38</td>\n",
" <td>4.29</td>\n",
" <td>16.04</td>\n",
" <td>49.93</td>\n",
" <td>71.42</td>\n",
" <td>2,238.11</td>\n",
" <td>0.33</td>\n",
" <td>5.66</td>\n",
" <td>14.24</td>\n",
" <td>47.29</td>\n",
" <td>109.08</td>\n",
" <td>2,515.06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -491,11 +506,11 @@
],
"text/plain": [
" sh50 hs300 zz500 zz800 zz1000 ashare_ex\n",
"cvxpy 8.30 164.79 620.38 2,280.32 3,124.51 87,652.78\n",
"alphamind 0.38 4.29 16.04 49.93 71.42 2,238.11"
"cvxpy 9.81 185.93 638.17 2,501.41 3,665.02 94,592.70\n",
"alphamind 0.33 5.66 14.24 47.29 109.08 2,515.06"
]
},
"execution_count": 8,
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
......@@ -514,18 +529,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2018-03-29 23:23:37,938 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-29 23:23:38,599 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-29 23:23:41,505 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-29 23:23:51,712 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-29 23:24:05,999 - ALPHA_MIND - INFO - zz1000 is finished\n"
"2018-03-30 16:56:16,044 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-30 16:56:16,705 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-30 16:56:19,651 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-30 16:56:30,227 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-30 16:56:44,840 - ALPHA_MIND - INFO - zz1000 is finished\n",
"2018-03-30 17:08:25,343 - ALPHA_MIND - INFO - ashare_ex is finished\n"
]
}
],
......@@ -574,9 +590,72 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 11,
"metadata": {},
"outputs": [],
"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>sh50</th>\n",
" <th>hs300</th>\n",
" <th>zz500</th>\n",
" <th>zz800</th>\n",
" <th>zz1000</th>\n",
" <th>ashare_ex</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>cvxpy</th>\n",
" <td>10.78</td>\n",
" <td>300.36</td>\n",
" <td>1,377.87</td>\n",
" <td>5,244.64</td>\n",
" <td>6,758.95</td>\n",
" <td>334,990.46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alphamind</th>\n",
" <td>0.32</td>\n",
" <td>4.78</td>\n",
" <td>16.02</td>\n",
" <td>41.63</td>\n",
" <td>64.54</td>\n",
" <td>1,134.95</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sh50 hs300 zz500 zz800 zz1000 ashare_ex\n",
"cvxpy 10.78 300.36 1,377.87 5,244.64 6,758.95 334,990.46\n",
"alphamind 0.32 4.78 16.02 41.63 64.54 1,134.95"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
......@@ -593,7 +672,19 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2018-03-30 17:08:25,991 - ALPHA_MIND - INFO - sh50 is finished\n",
"2018-03-30 17:08:26,763 - ALPHA_MIND - INFO - hs300 is finished\n",
"2018-03-30 17:08:30,276 - ALPHA_MIND - INFO - zz500 is finished\n",
"2018-03-30 17:08:41,580 - ALPHA_MIND - INFO - zz800 is finished\n",
"2018-03-30 17:09:18,856 - ALPHA_MIND - INFO - zz1000 is finished\n"
]
}
],
"source": [
"df = pd.DataFrame(columns=u_names, index=['cvxpy', 'alphamind'])\n",
"number = 1\n",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment