Commit e5dc9c53 authored by Dr.李's avatar Dr.李

added strategy api

parent d18cf28c
......@@ -75,6 +75,17 @@ class SqlEngine(object):
sql = "select * from factor_master"
return pd.read_sql(sql, self.engine)
def fetch_strategy(self, ref_date: str, strategy: str) -> pd.DataFrame():
sql = "select strategyName, factor, weight from strategy " \
"where Date = '{ref_date}' and strategyName = '{strategy}'".format(ref_date=ref_date, strategy=strategy)
return pd.read_sql(sql, self.engine)
def fetch_strategy_names(self):
sql = "select distinct strategyName from strategy"
cursor = self.engine.execute(sql)
strategy_names = {c[0] for c in cursor.fetchall()}
return strategy_names
def fetch_codes(self, ref_date: str, univ: Universe) -> List[int]:
def get_universe(univ, ref_date):
......
......@@ -2,8 +2,10 @@
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
......@@ -15,12 +17,13 @@
"from alphamind.data.winsorize import winsorize_normal\n",
"from alphamind.data.standardize import standardize\n",
"\n",
"engine = sa.create_engine('mysql+mysqldb://sa:We051253524522@rm-bp1psdz5615icqc0yo.mysql.rds.aliyuncs.com/uqer?charset=utf8')"
"#engine = sa.create_engine('mysql+mysqldb://sa:We051253524522@rm-bp1psdz5615icqc0yo.mysql.rds.aliyuncs.com/uqer?charset=utf8')\n",
"engine = sa.create_engine('mssql+pymssql://licheng:A12345678!@10.63.6.220/alpha')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 29,
"metadata": {
"collapsed": true
},
......@@ -43,7 +46,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 30,
"metadata": {
"collapsed": true
},
......@@ -55,28 +58,27 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 248 ms, sys: 40 ms, total: 288 ms\n",
"Wall time: 4.32 s\n"
"Wall time: 66.6 ms\n"
]
}
],
"source": [
"%%time\n",
"\n",
"risk_exposure_data = pd.read_sql(\"select * from risk_exposure where Date = '{0}'\".format(ref_date), engine).sort_values('Code')\n",
"risk_exposure_data.drop(['Date', 'exchangeCD', 'secShortName'], axis=1, inplace=True)\n",
"risk_exposure_data.dropna(inplace=True)\n",
"codes_list = risk_exposure_data.Code.astype(str).tolist()\n",
"codes = ','.join(codes_list)\n",
"# risk_exposure_data = pd.read_sql(\"select * from risk_exposure where Date = '{0}'\".format(ref_date), engine).sort_values('Code')\n",
"# risk_exposure_data.drop(['Date', 'exchangeCD', 'secShortName'], axis=1, inplace=True)\n",
"# risk_exposure_data.dropna(inplace=True)\n",
"# codes_list = risk_exposure_data.Code.astype(str).tolist()\n",
"# codes = ','.join(codes_list)\n",
"\n",
"factor_data = pd.read_sql(\"select Code, {1} from factors where Date = '{0}' and Code in ({2})\".format(ref_date, factors, codes), engine).sort_values('Code')\n",
"factor_data = pd.read_sql(\"select Code, {1} from uqer where Date = '{0}' and Code in ({2})\".format(ref_date, factors, codes), engine).sort_values('Code')\n",
"\n",
"risk_exposure_data = pd.read_sql(\"select * from risk_exposure where Date = '{0}' and Code in ({1})\".format(ref_date, codes), engine).sort_values('Code')\n",
"risk_exposure_data.drop(['Date', 'exchangeCD', 'secShortName'], axis=1, inplace=True)\n",
......@@ -88,7 +90,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 11,
"metadata": {
"collapsed": true
},
......@@ -99,15 +101,14 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 4 ms, sys: 0 ns, total: 4 ms\n",
"Wall time: 3.08 ms\n"
"Wall time: 2 ms\n"
]
}
],
......@@ -120,15 +121,14 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2.29 s, sys: 16 ms, total: 2.3 s\n",
"Wall time: 1.73 s\n"
"Wall time: 113 ms\n"
]
}
],
......@@ -140,16 +140,16 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3236, 38)"
"(581, 38)"
]
},
"execution_count": 9,
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
......@@ -160,22 +160,21 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 192 ms, sys: 28 ms, total: 220 ms\n",
"Wall time: 56.2 ms\n"
"Wall time: 8 ms\n"
]
}
],
"source": [
"%%time\n",
"risk_cov_values = risk_cov_data.loc[risk_factor_columns, risk_factor_columns].astype(float) \n",
"sec_cov_values_full = (risk_exposure_values @ risk_cov_values @ risk_exposure_values.T + np.diag(specific_risk.SRISK.values ** 2)) / 100."
"sec_cov_values_full = (risk_exposure_values @ risk_cov_values @ risk_exposure_values.T + np.diag(specific_risk.SRISK.values ** 2)) / 10000."
]
},
{
......@@ -780,24 +779,22 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"np.savetxt(\"sec_cov_values.csv\", sec_cov_values_full, delimiter=\",\")"
"np.savetxt(\"sec_cov_values_sqlserver.csv\", sec_cov_values_full, delimiter=\",\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"np.savetxt(\"signal.csv\", signal_full., delimiter=\",\")"
"np.savetxt(\"signal_sqlserver.csv\", signal_full, delimiter=\",\")"
]
},
{
......@@ -811,6 +808,228 @@
"sol['dual objective']"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"np.savetxt(\"factor_data_sqlserver.csv\", factor_data.values, delimiter=\",\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 8.12683254e-16, -6.65975686e-02, -1.28129893e-02,\n",
" 3.39443807e-02, 1.37508611e-01, 6.79932784e-01,\n",
" 5.73968448e-02, 1.63259416e-02, 5.10522501e-02,\n",
" 4.71701940e-02, 4.46583770e-03, -3.27754312e-02,\n",
" 7.22843760e-02, -1.97246616e-02, 1.98407659e-02,\n",
" 1.68488882e-01, -1.45745488e-01, -1.39566019e-02,\n",
" -1.79127900e-02, -3.68258990e-03, -4.82757334e-02,\n",
" 1.49072018e-02, -1.13283270e-02, -1.19819860e-01,\n",
" -3.32749056e-02, -3.77998277e-02, 3.82986952e-02,\n",
" -6.17955347e-02, 4.02263704e-04, -2.63129448e-02,\n",
" -1.24579426e-02, 1.43607890e-01, 3.71685473e-01,\n",
" 4.10883344e-02, -2.59507503e-02, -3.80253673e-02,\n",
" -1.22340476e-03, 3.66129020e-02, -3.96080512e-02,\n",
" 9.26881083e-02, -1.00456932e-01, -6.81170452e-02,\n",
" 2.57356484e-02, -2.07050201e-02, 3.27495346e-01,\n",
" 4.44225698e-02, -2.92201457e-02, -3.40106787e-02,\n",
" 7.43789973e-02, -5.26983454e-02, -6.96179386e-02,\n",
" -4.61845288e-02, -6.78248238e-02, -5.04111723e-02,\n",
" -6.53359936e-05, -3.57769351e-02, -4.36965683e-02,\n",
" 6.53482678e-01, -1.15188084e-01, 2.33641703e-02,\n",
" 1.33023449e-01, -1.11824363e-01, 2.85460131e-02,\n",
" -1.74994148e-02, -2.68958448e-02, -4.22228841e-02,\n",
" 1.11670649e-01, -1.15538433e-01, 1.04612734e-02,\n",
" -4.53836952e-02, 1.26837912e-01, -1.98392634e-02,\n",
" 3.18095858e-02, -2.24450408e-02, -3.54109804e-02,\n",
" 6.89997014e-02, -6.20174689e-03, 7.50724854e-02,\n",
" -4.78114588e-03, 9.57241127e-02, -9.57950094e-02,\n",
" 6.89890588e-02, -1.13277757e-02, 4.89191718e-01,\n",
" 5.29549721e-03, 9.78059370e-02, -7.37939318e-02,\n",
" 4.28509845e-02, -5.42827048e-02, -2.63583599e-02,\n",
" -1.25037905e-02, 8.59397672e-03, -5.68375037e-02,\n",
" 1.41084733e-02, 2.90880287e-02, -1.69263283e-03,\n",
" 8.81050922e-02, -1.53358939e-01, 8.44836443e-02,\n",
" 1.31341935e-02, 9.68621799e-03, -5.75536515e-03,\n",
" -1.09847651e-01, 1.53221571e-02, -4.17245293e-02,\n",
" 7.82533058e-01, 8.43620415e-02, -6.36230800e-02,\n",
" -1.28980957e-01, -2.34259553e-01, -2.05538657e-02,\n",
" -5.83637017e-02, -6.18424063e-02, 1.13654071e-01,\n",
" -7.74295780e-02, -3.12192080e-02, -5.64188476e-02,\n",
" -1.53388400e-02, -1.91766256e-01, 8.37594120e-02,\n",
" 4.94395237e-03, -3.83384644e-02, -1.71540023e-02,\n",
" 5.33141102e-01, 8.48697534e-03, -4.25195975e-02,\n",
" 2.21698335e-03, 1.54956798e-02, 1.15980750e-01,\n",
" -8.06781431e-03, 3.48056409e-01, 1.09177393e-01,\n",
" 6.67584894e-02, -8.30734686e-02, -8.07600141e-02,\n",
" -1.73916635e-02, 1.21360837e-01, -8.26216517e-02,\n",
" 1.26690094e-02, 4.75760976e-02, 5.25067885e-02,\n",
" 4.48270146e-02, 5.01756715e-02, -8.35274975e-02,\n",
" 2.81365125e-02, 5.30906238e-02, -1.00407664e-01,\n",
" -5.98952994e-03, -8.42100281e-04, 3.37615154e-03,\n",
" -5.79703528e-02, -2.58105990e-02, -6.11600190e-02,\n",
" 1.60126323e-02, 1.29071580e-01, -5.80425683e-02,\n",
" 1.72966653e-02, 2.97227272e-02, 1.41930788e-01,\n",
" 3.71977256e-02, -1.11658606e-02, -1.79051340e-02,\n",
" 4.04232715e-03, 9.56732025e-02, 8.33311932e-02,\n",
" 4.67617575e-02, -8.82501900e-02, -3.47585002e-01,\n",
" -7.76268259e-01, -6.42512137e-02, 8.27352504e-04,\n",
" 6.70967229e-02, 3.38880065e-02, 2.40820458e-01,\n",
" 1.01326530e-03, -4.96943952e-02, -1.36383357e-01,\n",
" -5.42479974e-03, -8.32308779e-02, 7.51000781e-03,\n",
" 6.35639956e-02, -3.34739783e-02, -4.54842381e-02,\n",
" 2.78006962e-01, -7.71754464e-02, -2.79404472e-02,\n",
" 9.87990273e-03, -1.57833494e-01, 2.19870851e-01,\n",
" -2.31001676e-02, 1.41472173e-01, -2.17081958e-02,\n",
" -2.28809596e-01, -8.76789169e-02, -8.17684929e-01,\n",
" 2.42798629e-01, 7.47318643e-02, 2.48698481e-02,\n",
" 5.72717704e-01, 2.99426784e-01, -5.55880021e-02,\n",
" -4.79222518e-02, 1.63373687e-02, 3.67073759e-02,\n",
" -3.23576249e-01, -4.77801019e-02, -1.32217293e-02,\n",
" 4.27695734e-02, 3.03490341e-01, -1.23108561e-02,\n",
" 2.96806350e-02, 8.78971177e-03, 4.51999596e-02,\n",
" -2.34322230e-02, -1.44478278e-02, 1.37596601e-02,\n",
" 8.25342310e-02, -2.96790906e-01, -6.59564224e-02,\n",
" -4.04793534e-03, -1.35339356e-01, 2.41096249e-02,\n",
" 1.08676261e-01, 9.18781634e-02, -1.38198926e-01,\n",
" -7.28101645e-02, 3.92216055e-02, -8.24992924e-01,\n",
" 1.49007724e-03, -4.16514051e-02, 1.15926416e-01,\n",
" -4.76235077e-03, -1.41219804e-01, -2.90378388e-02,\n",
" -2.42639642e-02, -8.55210801e-03, 6.77035575e-03,\n",
" -1.34103029e-03, -1.00477676e-02, 8.73613052e-02,\n",
" -6.00179374e-03, 2.56784280e-01, -4.66838635e-02,\n",
" 3.93420442e-02, 8.15923944e-02, -3.11645717e-02,\n",
" 1.66202218e-02, -8.81102123e-02, -1.39332657e-01,\n",
" -6.03640801e-02, -8.79410604e-01, 2.06815766e-02,\n",
" 3.66844566e-03, 4.47238518e-02, -2.77374717e-02,\n",
" -6.11142748e-02, 1.74595815e-03, 2.77050186e-02,\n",
" -1.13694418e-02, 2.72841602e-02, -1.40978068e-01,\n",
" -1.57233223e-01, -2.06674198e-03, 5.82804013e-02,\n",
" -6.57407968e-03, -7.36170942e-02, 1.35169246e-01,\n",
" -1.19710839e-02, -1.85914679e-01, -8.93226441e-02,\n",
" -2.39616214e-02, 2.15716137e-01, -7.91451571e-03,\n",
" -5.69136184e-02, -3.50976961e-02, -5.39278265e-02,\n",
" 7.32658101e-02, -1.57668257e-02, -7.72695199e-03,\n",
" -1.32203299e-02, 1.23500619e-02, 7.36572612e-02,\n",
" 1.13053202e-01, 1.94280042e-01, 9.79947615e-04,\n",
" -5.07344023e-02, -2.17626964e-02, -4.36211962e-02,\n",
" 4.64549689e-02, 4.69176577e-02, 9.08537410e-03,\n",
" -4.36537939e-02, 2.07709870e-02, 1.07647953e-02,\n",
" -5.71942227e-02, 5.41470978e-02, -1.81389200e-02,\n",
" 5.69755372e-02, 1.59985421e-02, -1.32375743e-02,\n",
" -3.32077328e-02, 1.90335650e-02, -2.20813229e-02,\n",
" 7.53590093e-03, 6.43058524e-02, -4.39685888e-03,\n",
" -4.02146488e-02, 1.55857059e-02, -7.92150152e-03,\n",
" 2.57381164e-02, -5.62883548e-02, 4.15137221e-02,\n",
" 3.84109990e-02, 9.17085919e-02, 1.01163612e-01,\n",
" -1.12174142e-01, -8.36051893e-04, -1.37412601e-01,\n",
" 1.27938417e-02, 3.44972162e-02, 6.61313074e-02,\n",
" -7.43145883e-02, 8.47096640e-02, 2.06270121e-01,\n",
" -4.14736088e-01, 2.06441787e-02, -1.68413436e-02,\n",
" -7.63533086e-01, -5.86456009e-02, -9.74391261e-03,\n",
" 3.75743967e-02, 1.57313394e-01, -8.28972365e-03,\n",
" -1.26235878e-01, -5.04025043e-02, -1.66902731e-02,\n",
" 1.18280575e-01, -3.48840984e-02, -5.86908750e-02,\n",
" -1.12152539e-02, -3.20797721e-02, -8.64774331e-02,\n",
" 1.84965491e-01, -1.89501025e-02, -2.90483136e-02,\n",
" 8.46917987e-02, 4.60857238e-03, -3.61792267e-02,\n",
" -5.22326470e-02, -4.79564871e-03, -4.02183725e-02,\n",
" 4.08165076e-03, 5.78296986e-02, 3.30969695e-02,\n",
" 3.71689772e-02, -1.71557787e-01, -1.11867475e-01,\n",
" 7.35934622e-02, 1.50820731e-02, -1.10233673e-02,\n",
" 5.73279142e-02, 2.88999742e-02, -1.11713510e-02,\n",
" 4.79721744e-02, 6.69148556e-02, -1.86641305e-02,\n",
" -5.13639173e-02, 2.60222710e-02, -3.91555038e-02,\n",
" -1.55104126e-02, -3.66263518e-02, 1.89705511e-01,\n",
" -4.45483447e-02, 2.86804778e-02, 7.98608063e-02,\n",
" -3.15531839e-02, -2.76398937e-02, 1.98213948e-03,\n",
" 9.69480126e-02, 1.13704150e-01, -5.44630738e-02,\n",
" -1.04563573e-01, 1.09779268e-02, -2.79846220e-02,\n",
" -4.28951764e-02, -1.88756154e-01, -4.40106134e-02,\n",
" -1.53504183e-02, 5.20412183e-03, -1.87469460e-01,\n",
" 1.91318195e-02, 2.45197648e-02, -1.38550940e-02,\n",
" -7.28075143e-02, 4.47687047e-03, 4.88329302e-01,\n",
" -1.78328854e-02, 4.94087778e-02, 2.89865695e-02,\n",
" -8.22126093e-02, 4.24560188e-01, -3.80360571e-02,\n",
" -4.07051777e-02, -3.86293780e-02, -9.80215226e-02,\n",
" -4.37703369e-02, -1.09341638e-01, 4.90217015e-02,\n",
" 2.26432350e-03, -1.30583016e-02, 2.44170591e-02,\n",
" -1.81332754e-02, -4.66718448e-02, -2.39955860e-02,\n",
" -1.43469942e-02, -4.58784904e-02, 1.64453394e-01,\n",
" 8.54574456e-02, -4.93999322e-02, -6.72957407e-03,\n",
" 3.26896560e-02, 9.80857923e-03, -1.56019964e-01,\n",
" 4.79049796e-03, 7.27166032e-02, -3.88105853e-01,\n",
" 3.75553309e-03, -4.55136222e-02, -7.40687305e-02,\n",
" 1.44700916e-02, -3.72466726e-02, 2.73590247e-02,\n",
" 1.40718443e-01, -1.20750481e-01, 1.32368465e-01,\n",
" -7.90328388e-02, 6.91591884e-02, 1.81612703e-01,\n",
" 1.33132183e-02, 1.83178389e-02, 5.04316043e-02,\n",
" -1.85895500e-01, 4.01562103e-02, 1.55542723e-01,\n",
" -4.44926068e-02, -6.14340946e-02, -5.34716736e-02,\n",
" -4.47074496e-02, -1.09953475e-01, 1.58439670e-02,\n",
" -1.43626215e-01, 5.66078336e-02, -1.34523694e-04,\n",
" 9.11379886e-02, -2.00712771e-02, 2.31234518e-02,\n",
" 4.39705595e-02, 6.23294580e-03, -3.34008451e-01,\n",
" 7.51475273e-02, -1.62766816e-02, 6.17115150e-02,\n",
" -4.20589062e-02, 1.03162598e-02, -4.09440933e-02,\n",
" 2.72697113e-02, 6.26448163e-02, 1.99724609e-02,\n",
" -3.72830174e-02, 2.59653871e-02, 4.17150986e-02,\n",
" 1.79309338e-02, 1.04684474e-01, -4.10596016e-02,\n",
" 2.17147803e-02, -3.30579721e-02, 1.23981306e-01,\n",
" -4.72447376e-02, -2.73832625e-02, 7.93599676e-03,\n",
" -1.75565346e-01, -5.20879084e-03, 1.60830991e-02,\n",
" -5.85592245e-02, 2.65932684e-02, -1.87679629e-02,\n",
" -7.55003990e-02, 1.32831661e-02, 5.96110477e-02,\n",
" -5.93862848e-02, -2.80348415e-03, 8.68168816e-03,\n",
" 1.33779120e-01, 4.66782056e-02, 1.93152217e-02,\n",
" 3.44939435e-03, 3.46230307e-02, -2.57591807e-02,\n",
" 8.53029673e-02, -1.20312691e-01, -1.49691768e-02,\n",
" -4.73918118e-02, 8.20576187e-02, 1.82364019e-01,\n",
" 1.08211508e-01, 2.80542000e-02, 1.23508428e-01,\n",
" -5.59219426e-02, -5.06433770e-02, -5.12859160e-02,\n",
" -7.23309320e-02, 6.42195709e-02, -2.38411593e-03,\n",
" -6.14406959e-02, 2.26060862e-02, 3.14823611e-02,\n",
" 1.14303504e-02, -3.98017955e-01, 3.27112250e-02,\n",
" -1.91888119e-02, 4.48251075e-04, -3.58195830e-02,\n",
" 6.05167192e-02, 5.16925765e-02, -8.15079013e-02,\n",
" 5.99044732e-02, -3.80609425e-02, -1.50919054e-02,\n",
" 3.35160893e-02, -9.49373939e-02, 9.74936874e-03,\n",
" 9.28798242e-02, 2.27303122e-02, 1.79827433e-02,\n",
" 1.03069681e-02, 2.60655782e-03, 9.38127175e-02,\n",
" 4.36536284e-01, -1.77327346e-01, 1.21666176e-01,\n",
" -3.34637547e-02, -1.91385657e-02, -1.30247098e-02,\n",
" -4.22722793e-02, 2.55006640e-02, 5.09101967e-03,\n",
" -3.90486027e-02, -4.85443505e-02, -3.51819193e-02,\n",
" 1.06052324e-02, -9.01475647e-02, 4.74820575e-02,\n",
" -1.29657473e-02, 4.74335562e-02, 6.72075743e-04,\n",
" 9.30396533e-02, -9.80561940e-02, -5.34761284e-04,\n",
" 1.84546437e-02, -4.91005708e-02, -2.03496819e-01,\n",
" 3.09450920e-02, 3.99958848e-02, -1.51978938e-02,\n",
" -1.22142775e-02, -1.90168086e-02, -3.08715708e-02,\n",
" 8.83456421e-03, -5.80801511e-02, 4.44158930e-02,\n",
" 2.25741830e-02, 8.70872927e-03, -4.11430460e-02,\n",
" 4.95398509e-02, 1.04895895e-02, -5.65591215e-02,\n",
" 1.95155979e-02, 7.42283374e-02, 5.47088113e-02,\n",
" 8.94284264e-03, 1.42841454e-02])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"signal_full"
]
},
{
"cell_type": "code",
"execution_count": null,
......
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