Commit 40d4840c authored by Dr.李's avatar Dr.李

update

parent 032d66fb
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"import numpy as np\n", "import numpy as np\n",
"import pandas as pd\n", "import pandas as pd\n",
"import sqlalchemy as sa\n", "import sqlalchemy as sa\n",
"from cvxpy import *\n", "from cvxpy import *\n",
"from cvxopt import *\n",
"from alphamind.data.neutralize import neutralize\n", "from alphamind.data.neutralize import neutralize\n",
"\n", "\n",
"engine = sa.create_engine('mysql+pymysql://sa:We051253524522@rm-bp1psdz5615icqc0yo.mysql.rds.aliyuncs.com/uqer?charset=utf8')" "engine = sa.create_engine('mysql+pymysql://sa:We051253524522@rm-bp1psdz5615icqc0yo.mysql.rds.aliyuncs.com/uqer?charset=utf8')"
...@@ -42,7 +45,9 @@ ...@@ -42,7 +45,9 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"codes = ','.join(codes_list)\n", "codes = ','.join(codes_list)\n",
...@@ -99,16 +104,6 @@ ...@@ -99,16 +104,6 @@
"sec_cov_values = risk_exposure_values @ risk_cov_values @ risk_exposure_values.T + np.diag(specific_risk.SRISK.values)" "sec_cov_values = risk_exposure_values @ risk_cov_values @ risk_exposure_values.T + np.diag(specific_risk.SRISK.values)"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"stocks_cov_matrix = pd.DataFrame(-0.5 * sec_cov_values, columns=codes_list, index=codes_list)\n",
"stocks_cov_matrix.to_csv('d:/stocks_cov_matrix.csv')"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
...@@ -159,12 +154,10 @@ ...@@ -159,12 +154,10 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"optimal_weights1 = pd.DataFrame(np.array(w.value).flatten(), columns=['weight'], index=codes_list)" "prob.status, prob.value"
] ]
}, },
{ {
...@@ -183,7 +176,7 @@ ...@@ -183,7 +176,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"prob.status, prob.value, np.array(w.value).flatten()" "prob.status, prob.value"
] ]
}, },
{ {
...@@ -192,18 +185,29 @@ ...@@ -192,18 +185,29 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"optimal_weights2 = pd.DataFrame(np.array(w.value).flatten(), columns=['weight'], index=codes_list)\n", "%%time\n",
"optimal_weights2.to_csv('d:/optimal_weights.csv')" "P = matrix(sec_cov_values)\n",
"q = -matrix(signal)\n",
"\n",
"G = np.zeros((2*n, n))\n",
"h = np.zeros(2*n)\n",
"for i in range(n):\n",
" G[i, i] = 1.\n",
" h[i] = 0.01\n",
" G[i+n, i] = -1.\n",
" h[i+n] = 0.\n",
" \n",
"G = matrix(G)\n",
"h = matrix(h)\n",
" \n",
"A = np.ones((1, n))\n",
"b = np.ones(1)\n",
"\n",
"A = matrix(A)\n",
"b = matrix(b)\n",
"\n",
"sol = solvers.qp(P, q, G, h, A, b, solver=None)"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
......
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