Files
quant/code/.ipynb_checkpoints/Untitled-checkpoint.ipynb

183 lines
29 KiB
Plaintext
Raw Permalink Normal View History

2019-11-21 12:02:03 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import MySQLdb\n",
"import time\n",
"import datetime\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [],
"source": [
"result_df=pd.DataFrame()\n",
"for i in range(1,50):\n",
" result_df=result_df.append({'up':0,'down':0},ignore_index=True)"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 -2.57 -0.16 35\n",
"2 -2.59 -0.2 35\n",
"3 -2.72 -0.12 35\n",
"4 -0.35 -0.04 35\n",
"5 -0.29 0.03 35\n",
"6 -3.31 0.21 35\n",
"7 -2.65 0.25 35\n",
"8 -5.11 0.04 35\n",
"9 -10.34 -0.22 35\n",
"10 -11.51 -0.4 35\n",
"11 -12.29 -0.55 34\n",
"12 -9.89 -0.42 34\n",
"13 -8.52 -0.32 32\n",
"14 -9.44 -0.35 32\n",
"15 -7.0 -0.15 32\n",
"16 -9.27 -0.32 31\n",
"17 -4.03 0.17 31\n",
"18 -7.95 -0.09 31\n",
"19 -10.5 -0.28 30\n",
"20 -13.46 -0.6 30\n",
"21 -13.48 -0.52 29\n",
"22 -11.2 -0.33 27\n",
"23 -10.52 -0.46 25\n",
"24 -13.36 -0.72 24\n",
"25 -13.82 -0.75 24\n",
"26 -12.83 -0.78 24\n",
"27 -11.86 -0.68 23\n",
"28 5.64 0.28 22\n",
"29 3.85 0.15 20\n",
"30 6.44 0.3 19\n",
"31 7.28 0.47 18\n",
"32 9.89 0.32 16\n",
"33 11.96 0.5 15\n",
"34 8.78 0.34 13\n",
"35 8.75 0.35 13\n",
"36 8.64 0.36 13\n",
"37 8.49 0.37 13\n",
"38 9.06 0.38 13\n",
"39 16.09 0.58 12\n",
"40 16.41 0.6 12\n",
"41 17.67 0.61 12\n",
"42 17.77 0.63 12\n",
"43 18.64 0.86 11\n",
"44 18.78 0.88 11\n",
"45 23.13 1.35 9\n",
"46 25.31 1.61 8\n",
"47 26.31 1.65 8\n",
"48 15.62 1.2 7\n",
"49 12.83 0.73 6\n"
]
}
],
"source": [
"db = MySQLdb.connect(host=\"127.0.0.1\",user=\"sa\",passwd=\"sasasa\",db=\"quant\",charset=\"utf8\")\n",
"df = pd.read_csv('E:\\jupyter\\qushi-20190625-20190802.csv',index_col='index')\n",
"df_down = df[df.direction=='downdown']\n",
"\n",
"for i in range(1,50):\n",
" result=0\n",
" result_rate=0\n",
" raise_n=0\n",
" decrease_n=0\n",
" for stock_n, stock_k in df_down.iterrows():\n",
" ts_code=stock_k.ts_code\n",
" trade_time=stock_k.trade_time\n",
" trade_price=stock_k.trade_price\n",
" high=trade_price*(1+0.01*i)\n",
" low=trade_price*(1-0.005*i)\n",
" cursor = db.cursor()\n",
" sql = \"select * from stock_min where ts_code='\"+ts_code+\"' and trade_time>'\"+trade_time+\"' and (close<\"+str(low)+\" or close>\"+str(high)+\") order by trade_time limit 1\"\n",
" #print(sql)\n",
" df_dr = pd.read_sql(sql,db)\n",
" cursor.close()\n",
" if df_dr.shape[0]>0:\n",
" touch_time=df_dr.ix[0:1,'trade_time'][0]\n",
" touch_price=df_dr.ix[0:1,'close'][0]\n",
" spread=touch_price-trade_price\n",
" if spread>0:\n",
" raise_n+=1 \n",
" result_rate+=0.01*i\n",
" else:\n",
" decrease_n+=1\n",
" result_rate-=0.005*i\n",
" result+=spread\n",
" print(i,round(result,2),round(result_rate,2),raise_n+decrease_n)\n",
" result_df.loc[i-1,['down']]=round(result_rate,2)\n",
"\n",
"db.close()"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x245d186b6d8>"
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"result_df.plot()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}