同花顺Supermind量化交易 技术面分析专题(一)--相似k线在预测股价中的运用

本文主要是介绍同花顺Supermind量化交易 技术面分析专题(一)--相似k线在预测股价中的运用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何应用“相似K线”来预测未来股价走势?:

我们已经清楚了“相似K线”,接下来让我们尝试将其用于预测未来股价。
第一步:选择浦发银行股票,锁定60个交易日的K线图,2018-10-08至2018-12-28。如下图:
 


第二步:以上证50指数成份股为样本池,对历史4年的所有股票的K线图进行相似度计算,其中K线图长度为60个交易日,时间周期为日级,计算间隔为20个交易日。最终找出2850张K线图。
 


第三步:找出历史中相似度最高的K线图,并观察其后续股价走势情况。我们找到了中国铁建,其在2015-03-31至2015-06-26的K线图与浦发银行在2018-10-08至2018-12-28的K线图相似度高达0.8685。
 


我们观察下图,发现中国铁建出现该段K线后,其后续走势出现反转上涨
 


第四步:根据中国铁建的前车之鉴,我们大胆判断出浦发银行在出现该走势后,也会反转上涨,我们画出K线图,进行验证。观察下图,可以发现,浦发银行也出现了反转上涨。
 


第五步:以上四步,即为“相似K线”预测股价的整个流程,我们将其应用于当下行情,选取浦发银行最近60个交易日的K线图
 


并在上证50指数成份股的历史行情中,找出与其相似度最高的K线图,股票保利地产在2014-01-03至2014-04-04发生与其相似度高达0.8785 观察历史发生该段K线图后的后续走势,我们发生股价出现下跌,根据“历史会重演”的技术理念,判断未来浦发银行的走势大概率出现下跌。
 


 

在“相似K线”的独特视角下,A股市场的价格走势呈现怎样的态势?:

第一步:我们获取上证指数的近60个交易日的K线走势图,如下:
 


第二步:我们计算上证指数的K线图与A股所有个股的近期K线图的相似度。
 


第三步:数据分析,并作出初步结论:
1.A股市场中,接近75%的股票与大盘(上证指数)走势较为相近,与大盘走势无关或者相反的个股股票数量较少占比不到25%
2.近期与大盘走势最为接近的是兴蓉环境,相似度高达0.94
3.近期与大盘走势最为相反的是泰永长征,相似度高达-0.731,其可能与次新炒作相关,脱离大盘走势。


 


 


 

用相似K线进行股价预测,波段操作

浦发银行(600000.SH) 2018-10-08至2018-12-28

In [6]:

stock = ['600000.SH']
trade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index('20181228')
close = closedf[stock].iloc[num-59:num+1]
opens = opendf[stock].iloc[num-59:num+1]
high = highdf[stock].iloc[num-59:num+1]
low = lowdf[stock].iloc[num-59:num+1]
low

Out[6]:

600000.SH
2018-10-0810.15
2018-10-0910.07
2018-10-1010.13
2018-10-119.71
2018-10-129.83
2018-10-159.97
2018-10-169.97
2018-10-1710.14
2018-10-1810.16
2018-10-1910.07
2018-10-2210.32
2018-10-2310.45
2018-10-2410.52
2018-10-2510.54
2018-10-2610.74
2018-10-2910.71
2018-10-3010.89
2018-10-3110.87
2018-11-0110.86
2018-11-0210.94
2018-11-0511.08
2018-11-0611.00
2018-11-0710.87
2018-11-0810.90
2018-11-0910.70
2018-11-1210.75
2018-11-1310.68
2018-11-1410.68
2018-11-1510.65
2018-11-1610.71
2018-11-1910.77
2018-11-2010.65
2018-11-2110.61
2018-11-2210.57
2018-11-2310.50
2018-11-2610.43
2018-11-2710.45
2018-11-2810.50
2018-11-2910.54
2018-11-3010.62
2018-12-0310.84
2018-12-0410.97
2018-12-0510.96
2018-12-0610.82
2018-12-0710.88
2018-12-1010.77
2018-12-1110.69
2018-12-1210.70
2018-12-1310.73
2018-12-1410.59
2018-12-1710.62
2018-12-1810.54
2018-12-1910.54
2018-12-2010.11
2018-12-2110.00
2018-12-249.86
2018-12-259.60
2018-12-269.64
2018-12-279.66
2018-12-289.71

In [7]:

import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
for s in stock:open1=list(opens[s])high1=list(high[s])low1=list(low[s])close1=list(close[s])#画图fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')fig.subplots_adjust() ticks = ax.set_xticks([0,60])labels = ax.set_xticklabels([list(opens.index.strftime('%Y%m%d'))[0],list(opens.index.strftime('%Y%m%d'))[-1]], fontsize=10) plt.yticks()  plt.title("{} K线走势图".format(s),fontsize = 15)  plt.ylabel("股价",fontsize = 15)  candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

寻找出上证50指数成份股内,与该段行情最接近的行情

In [8]:

dt = pd.DataFrame(columns=['stock','startdate','enddate','T'])
stock = '600000.SH'
trade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index('20181228')
close = list(closedf[stock].iloc[num-59:num+1])
opens = list(opendf[stock].iloc[num-59:num+1])
high = list(highdf[stock].iloc[num-59:num+1])
low = list(lowdf[stock].iloc[num-59:num+1])stocklist = list(closedf.columns)
y=0
import datetime
for d in list(range(60,num-20,20)):print(d,num)close2 = closedf.iloc[d-59:d+1]opens2 = opendf.iloc[d-59:d+1]high2 = highdf.iloc[d-59:d+1]low2 = lowdf.iloc[d-59:d+1]for s in stocklist:corropen = round(np.corrcoef(opens,opens2[s])[0][1],3)corrhigh = round(np.corrcoef(high,high2[s])[0][1],3)corrlow = round(np.corrcoef(low,low2[s])[0][1],3)corrclose = round(np.corrcoef(close,close2[s])[0][1],3)#综合值T = (corropen+corrhigh+corrlow+corrclose)/4startdate = trade[d-59]enddate = trade[d+1]dt.loc[y] = [s,startdate,enddate,T]y+=1
dt = dt.fillna(0)
dt = dt.sort_values(by='T',ascending=False)
dt
60 1219
80 1219
100 1219
120 1219
140 1219
160 1219
180 1219
200 1219
220 1219
240 1219
260 1219
280 1219
300 1219
320 1219
340 1219
360 1219
380 1219
400 1219
420 1219
440 1219
460 1219
480 1219
500 1219
520 1219
540 1219
560 1219
580 1219
600 1219
620 1219
640 1219
660 1219
680 1219
700 1219
720 1219
740 1219
760 1219
780 1219
800 1219
820 1219
840 1219
860 1219
880 1219
900 1219
920 1219
940 1219
960 1219
980 1219
1000 1219
1020 1219
1040 1219
1060 1219
1080 1219
1100 1219
1120 1219
1140 1219
1160 1219
1180 1219

Out[8]:

stockstartdateenddateT
776601186.SH20150331201506260.86850
790601766.SH20150331201506260.82450
1520600887.SH20160621201609130.81300
2200600000.SH20170811201711100.79325
2246601988.SH20170811201711100.78500
1504600029.SH20160621201609130.78300
1145601939.SH20151027201601200.77400
1683601360.SH20160913201612150.76775
2668600690.SH20180511201808060.76775
784601390.SH20150331201506260.76100
2239601688.SH20170811201711100.74875
1105600030.SH20151027201601200.74600
2670600887.SH20180511201808060.74400
2616600585.SH20180411201807090.74325
1346601988.SH20160224201605200.74275
1557600048.SH20160719201610200.73550
1883601360.SH20170113201704180.73075
2227601211.SH20170811201711100.72825
2622601088.SH20180411201807090.72750
2636601601.SH20180411201807090.72750
751600016.SH20150331201506260.72675
1142601818.SH20151027201601200.72600
1342601818.SH20160224201605200.72150
1146601988.SH20151027201601200.71950
1338601668.SH20160224201605200.71900
2054600029.SH20170517201708110.71750
1117600606.SH20151027201601200.71700
1331601328.SH20160224201605200.71600
2337601628.SH20171013201801080.70975
788601668.SH20150331201506260.70750
...............
1632601336.SH2016081620161117-0.74300
1799603993.SH2016111720170217-0.74375
1437601628.SH2016042120160719-0.74750
1401600016.SH2016042120160719-0.74775
192601818.SH2014040420140703-0.75200
626601186.SH2014122620150331-0.75275
1443601857.SH2016042120160719-0.75475
1427601211.SH2016042120160719-0.75875
2329601288.SH2017101320180108-0.75925
634601390.SH2014122620150331-0.76600
638601668.SH2014122620150331-0.76800
1937601628.SH2017021720170517-0.76800
1201600016.SH2015122220160323-0.76850
1438601668.SH2016042120160719-0.76925
1932601336.SH2017021720170517-0.77175
605600030.SH2014122620150331-0.77400
639601688.SH2014122620150331-0.78350
152600019.SH2014040420140703-0.78500
215600547.SH2014050720140731-0.78625
239601688.SH2014050720140731-0.78850
2159600104.SH2017071420171013-0.79475
1403600028.SH2016042120160719-0.79875
602600019.SH2014122620150331-0.80200
1416600585.SH2016042120160719-0.80500
220600887.SH2014050720140731-0.80775
620600887.SH2014122620150331-0.80825
2730601318.SH2018060820180903-0.81375
2568600690.SH2018031220180608-0.81875
1422601088.SH2016042120160719-0.82450
1408600050.SH2016042120160719-0.83000

2850 rows × 4 columns

In [9]:

Tdt = dt.iloc[0]
stock = Tdt.stock
startdate = Tdt.startdate     
enddate = Tdt.enddate   import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+1]
open1 = opendf[s].iloc[num-59:num+1]
high1 = highdf[s].iloc[num-59:num+1]
low1 = lowdf[s].iloc[num-59:num+1]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[9]:

(<matplotlib.collections.LineCollection at 0x7f8b256197b8>,<matplotlib.collections.PolyCollection at 0x7f8b255f82e8>)

6.分析分析相似行情是否具备延续性

In [10]:

Tdt = dt.iloc[0]
Tdt.T

Out[10]:

stock        601186.SH
startdate     20150331
enddate       20150626
T               0.8685
Name: 776, dtype: object

相似度最高

In [11]:

stock = Tdt.stock
startdate =Tdt.startdate
enddate = Tdt.enddateimport numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() #支撑线
plt.plot([60,60],[np.min(low1),np.max(high1)],'gold',linewidth=3)ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[11]:

(<matplotlib.collections.LineCollection at 0x7f8b25036a58>,<matplotlib.collections.PolyCollection at 0x7f8b250364a8>)

In [12]:

stock = '600000.SH'
startdate = '20181008'
enddate = '20181228'import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() #支撑线
plt.plot([60,60],[np.min(low1),np.max(high1)],'gold',linewidth=3)ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[12]:

(<matplotlib.collections.LineCollection at 0x7f8b275eb048>,<matplotlib.collections.PolyCollection at 0x7f8b275eb588>)

相似K线预测应用

In [13]:

data = get_price(stocklist,'20140101','20190211','1d',['open','high','low','close'],is_panel =1)
#收盘价
closedf = data['close'].fillna(0)
opendf = data['open'].fillna(0)
highdf = data['high'].fillna(0)
lowdf = data['low'].fillna(0)stock = ['600000.SH']
trade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index('20190211')
close = closedf[stock].iloc[num-59:num+1]
opens = opendf[stock].iloc[num-59:num+1]
high = highdf[stock].iloc[num-59:num+1]
low = lowdf[stock].iloc[num-59:num+1]
import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
for s in stock:open1=list(opens[s])high1=list(high[s])low1=list(low[s])close1=list(close[s])#画图fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')fig.subplots_adjust() ticks = ax.set_xticks([0,60])labels = ax.set_xticklabels([list(opens.index.strftime('%Y%m%d'))[0],list(opens.index.strftime('%Y%m%d'))[-1]], fontsize=10) plt.yticks()  plt.title("{} K线走势图".format(s),fontsize = 15)  plt.ylabel("股价",fontsize = 15)  candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

In [14]:

dt = pd.DataFrame(columns=['stock','startdate','enddate','T'])
stock = '600000.SH'
trade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index('20190211')
close = list(closedf[stock].iloc[num-59:num+1])
opens = list(opendf[stock].iloc[num-59:num+1])
high = list(highdf[stock].iloc[num-59:num+1])
low = list(lowdf[stock].iloc[num-59:num+1])stocklist = list(closedf.columns)
y=0
import datetime
for d in list(range(60,num-20,20)):print(d,num)close2 = closedf.iloc[d-59:d+1]opens2 = opendf.iloc[d-59:d+1]high2 = highdf.iloc[d-59:d+1]low2 = lowdf.iloc[d-59:d+1]for s in stocklist:corropen = round(np.corrcoef(opens,opens2[s])[0][1],3)corrhigh = round(np.corrcoef(high,high2[s])[0][1],3)corrlow = round(np.corrcoef(low,low2[s])[0][1],3)corrclose = round(np.corrcoef(close,close2[s])[0][1],3)#综合值T = (corropen+corrhigh+corrlow+corrclose)/4startdate = trade[d-59]enddate = trade[d+1]dt.loc[y] = [s,startdate,enddate,T]y+=1
dt = dt.fillna(0)
dt = dt.sort_values(by='T',ascending=False)
dt
60 1243
80 1243
100 1243
120 1243
140 1243
160 1243
180 1243
200 1243
220 1243
240 1243
260 1243
280 1243
300 1243
320 1243
340 1243
360 1243
380 1243
400 1243
420 1243
440 1243
460 1243
480 1243
500 1243
520 1243
540 1243
560 1243
580 1243
600 1243
620 1243
640 1243
660 1243
680 1243
700 1243
720 1243
740 1243
760 1243
780 1243
800 1243
820 1243
840 1243
860 1243
880 1243
900 1243
920 1243
940 1243
960 1243
980 1243
1000 1243
1020 1243
1040 1243
1060 1243
1080 1243
1100 1243
1120 1243
1140 1243
1160 1243
1180 1243
1200 1243
1220 1243

Out[14]:

stockstartdateenddateT
7600048.SH20140103201404040.87700
2674601166.SH20180511201808060.85375
2650600000.SH20180511201808060.85150
2656600036.SH20180511201808060.84825
2687601628.SH20180511201808060.84050
2680601318.SH20180511201808060.83975
2692601818.SH20180511201808060.83725
2679601288.SH20180511201808060.83650
1218600690.SH20151222201603230.82425
2651600016.SH20180511201808060.81625
1966600585.SH20170317201706160.81250
1396601988.SH20160323201606210.79950
2909600104.SH20181009201901030.79650
1377601211.SH20160323201606210.79200
1975601169.SH20170317201706160.79100
1381601328.SH20160323201606210.79075
2695601939.SH20180511201808060.79025
269600703.SH20140605201408280.79000
2690601766.SH20180511201808060.78700
1853600028.SH20170113201704180.78625
2868600690.SH20180903201812040.78550
1394601888.SH20160323201606210.78475
38601668.SH20140103201404040.78050
2521601006.SH20180205201805110.77425
1392601818.SH20160323201606210.77375
2296601988.SH20170908201712080.77000
2281601328.SH20170908201712080.76975
1993601857.SH20170317201706160.76900
2518600690.SH20180205201805110.76850
2655600030.SH20180511201808060.76800
...............
721601006.SH2015030320150528-0.78000
2648603259.SH2018041120180709-0.78025
264600519.SH2014060520140828-0.78100
590601766.SH2014112820150303-0.78550
2428601229.SH2017120820180312-0.79150
1055600030.SH2015092220151222-0.79475
63600340.SH2014020720140507-0.79525
3600028.SH2014010320140404-0.79925
1689601688.SH2016091320161215-0.79925
740601766.SH2015030320150528-0.80600
1489601688.SH2016052020160816-0.81050
2189601688.SH2017071420171013-0.81650
2741601800.SH2018060820180903-0.81750
367600606.SH2014073120141031-0.81800
257600048.SH2014060520140828-0.81800
263600340.SH2014060520140828-0.82200
2004600029.SH2017041820170714-0.82300
2429601288.SH2017120820180312-0.82525
1913600340.SH2017021720170517-0.83075
1938601668.SH2017021720170517-0.83975
10600196.SH2014010320140404-0.84200
2186601601.SH2017071420171013-0.84600
2431601328.SH2017120820180312-0.84950
2445601939.SH2017120820180312-0.84975
2435601398.SH2017120820180312-0.85700
2843601857.SH2018080620181106-0.86225
2446601988.SH2017120820180312-0.86375
67600606.SH2014020720140507-0.86875
2442601818.SH2017120820180312-0.87700
1497601989.SH2016052020160816-0.87900

2950 rows × 4 columns

In [15]:

Tdt = dt.iloc[0]stock = Tdt.stock
startdate = Tdt.startdate     
enddate = Tdt.enddate   import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() #支撑线
plt.plot([60,60],[np.min(low1),np.max(high1)],'gold',linewidth=3)ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[15]:

(<matplotlib.collections.LineCollection at 0x7f8b26a53b00>,<matplotlib.collections.PolyCollection at 0x7f8b26a50ef0>)

快速挑选出与大盘走势同步、相反的个股

In [16]:

indexcode = '000001.SH'
date = '20190211'
stocklist = list(get_all_securities('stock',date).index)+[indexcode]
stocklist

Out[16]:

['300056.SZ','300674.SZ','300108.SZ','300357.SZ','600841.SH','600495.SH','300249.SZ','002852.SZ','000058.SZ','002568.SZ','300199.SZ','300490.SZ','000893.SZ','603859.SH','600565.SH','603063.SH','600117.SH','300036.SZ','300746.SZ','002906.SZ','600052.SH','002187.SZ','300613.SZ','000596.SZ','002351.SZ','000736.SZ','000810.SZ','002767.SZ','601318.SH','300183.SZ','002755.SZ','002502.SZ','603722.SH','002298.SZ','300711.SZ','300678.SZ','600362.SH','002176.SZ','600887.SH','300430.SZ','300712.SZ','300291.SZ','300486.SZ','600876.SH','601988.SH','601100.SH','603688.SH','600078.SH','603958.SH','000811.SZ','000537.SZ','300260.SZ','002434.SZ','000541.SZ','002673.SZ','600804.SH','603268.SH','300567.SZ','600038.SH','300382.SZ','600370.SH','000150.SZ','600158.SH','000888.SZ','603458.SH','300723.SZ','300670.SZ','600100.SH','600678.SH','603566.SH','600237.SH','002166.SZ','002073.SZ','300071.SZ','601666.SH','600422.SH','002642.SZ','000027.SZ','002537.SZ','000631.SZ','002457.SZ','603359.SH','600189.SH','600592.SH','600290.SH','603988.SH','002857.SZ','300105.SZ','603321.SH','601398.SH','600755.SH','002480.SZ','600919.SH','300690.SZ','603133.SH','300328.SZ','300759.SZ','603979.SH','002055.SZ','002741.SZ','300391.SZ','600211.SH','002278.SZ','000639.SZ','300273.SZ','300543.SZ','000823.SZ','300521.SZ','000762.SZ','002493.SZ','000597.SZ','600765.SH','000826.SZ','300680.SZ','300341.SZ','002628.SZ','603611.SH','000573.SZ','000766.SZ','001979.SZ','600620.SH','300575.SZ','000726.SZ','002920.SZ','002081.SZ','002797.SZ','002383.SZ','300471.SZ','600011.SH','600151.SH','300628.SZ','600007.SH','300488.SZ','300539.SZ','000831.SZ','000539.SZ','300538.SZ','600814.SH','000889.SZ','002839.SZ','600926.SH','600805.SH','002155.SZ','002319.SZ','600562.SH','000652.SZ','000603.SZ','600313.SH','002131.SZ','000812.SZ','300332.SZ','600775.SH','603886.SH','000963.SZ','300535.SZ','000656.SZ','002261.SZ','603029.SH','300369.SZ','600326.SH','600811.SH','300451.SZ','600488.SH','600392.SH','603966.SH','600597.SH','002651.SZ','002733.SZ','600509.SH','600477.SH','300485.SZ','600978.SH','603712.SH','601179.SH','600055.SH','002903.SZ','000968.SZ','002526.SZ','000088.SZ','603260.SH','000690.SZ','600185.SH','002392.SZ','600398.SH','300444.SZ','002865.SZ','002897.SZ','002057.SZ','603678.SH','002510.SZ','600409.SH','002484.SZ','300065.SZ','002943.SZ','002276.SZ','000510.SZ','300431.SZ','300097.SZ','600022.SH','600171.SH','000014.SZ','300124.SZ','300651.SZ','600983.SH','002915.SZ','600010.SH','000683.SZ','600621.SH','002476.SZ','300368.SZ','300525.SZ','300394.SZ','300453.SZ','000955.SZ','300003.SZ','600777.SH','002144.SZ','002584.SZ','002592.SZ','600220.SH','600221.SH','603716.SH','300658.SZ','600622.SH','002832.SZ','603603.SH','002381.SZ','300195.SZ','000806.SZ','002451.SZ','300224.SZ','600088.SH','002418.SZ','300347.SZ','603733.SH','600153.SH','603679.SH','601800.SH','601108.SH','002743.SZ','600982.SH','300320.SZ','000922.SZ','603648.SH','300045.SZ','600187.SH','600594.SH','300634.SZ','600673.SH','000096.SZ','600306.SH','600651.SH','002577.SZ','601010.SH','600103.SH','002204.SZ','603311.SH','600846.SH','000760.SZ','002033.SZ','603585.SH','600396.SH','002438.SZ','002564.SZ','000543.SZ','601311.SH','603689.SH','000782.SZ','300725.SZ','002727.SZ','603685.SH','600094.SH','600609.SH','300365.SZ','002691.SZ','600785.SH','002037.SZ','601966.SH','300591.SZ','000902.SZ','600888.SH','603036.SH','603916.SH','002668.SZ','600405.SH','603839.SH','300167.SZ','002294.SZ','600209.SH','000589.SZ','603986.SH','000925.SZ','002390.SZ','600826.SH','000068.SZ','000680.SZ','300139.SZ','603383.SH','603887.SH','000973.SZ','002137.SZ','300505.SZ','002788.SZ','300026.SZ','000055.SZ','002787.SZ','000004.SZ','600360.SH','600480.SH','000558.SZ','300545.SZ','300305.SZ','600059.SH','603520.SH','002397.SZ','300307.SZ','300620.SZ','002314.SZ','000403.SZ','600086.SH','000070.SZ','002009.SZ','002302.SZ','300705.SZ','600583.SH','300572.SZ','000868.SZ','603701.SH','002032.SZ','603056.SH','600499.SH','600936.SH','603612.SH','000605.SZ','300103.SZ','300663.SZ','000807.SZ','300581.SZ','300450.SZ','603059.SH','600764.SH','600395.SH','601952.SH','600272.SH','002761.SZ','000969.SZ','002201.SZ','300091.SZ','002689.SZ','300079.SZ','300161.SZ','600280.SH','300321.SZ','600579.SH','300423.SZ','603917.SH','000533.SZ','300151.SZ','002747.SZ','603037.SH','002181.SZ','002461.SZ','002305.SZ','002112.SZ','600338.SH','600839.SH','300514.SZ','600248.SH','002309.SZ','603897.SH','300568.SZ','603829.SH','601633.SH','600714.SH','300311.SZ','600724.SH','300532.SZ','600284.SH','601838.SH','000521.SZ','300114.SZ','603589.SH','002329.SZ','002024.SZ','600779.SH','603718.SH','300573.SZ','002663.SZ','000069.SZ','002817.SZ','300698.SZ','603668.SH','000937.SZ','603908.SH','002156.SZ','000531.SZ','601668.SH','600292.SH','002725.SZ','603500.SH','000528.SZ','002026.SZ','002648.SZ','601038.SH','000629.SZ','000777.SZ','000692.SZ','000566.SZ','603111.SH','002653.SZ','000548.SZ','300659.SZ','600063.SH','600066.SH','300482.SZ','002866.SZ','300176.SZ','300403.SZ','002530.SZ','600702.SH','600985.SH','000861.SZ','600416.SH','002268.SZ','300326.SZ','002323.SZ','300638.SZ','600606.SH','300603.SZ','603227.SH','600293.SH','600812.SH','000835.SZ','002106.SZ','000421.SZ','000666.SZ','002478.SZ','300381.SZ','603033.SH','600998.SH','600479.SH','600079.SH','600875.SH','002095.SZ','300295.SZ','600819.SH','000892.SZ','300044.SZ','600848.SH','603936.SH','600635.SH','600468.SH','000407.SZ','002931.SZ','300258.SZ','600029.SH','300336.SZ','002690.SZ','600655.SH','300399.SZ','300325.SZ','600555.SH','000821.SZ','600677.SH','600572.SH','002858.SZ','600240.SH','603138.SH','600608.SH','600310.SH','600522.SH','000587.SZ','601211.SH','600335.SH','000988.SZ','600196.SH','600435.SH','300107.SZ','600099.SH','600433.SH','600641.SH','603787.SH','600067.SH','601579.SH','600385.SH','002100.SZ','002345.SZ','603222.SH','000635.SZ','300319.SZ','002688.SZ','600207.SH','000153.SZ','002833.SZ','600235.SH','603677.SH','002084.SZ','000619.SZ','603968.SH','603085.SH','603889.SH','002170.SZ','002358.SZ','601808.SH','603198.SH','000655.SZ','002695.SZ','300069.SZ','603810.SH','600893.SH','300081.SZ','600508.SH','601128.SH','000819.SZ','002815.SZ','600871.SH','601368.SH','600665.SH','002221.SZ','600418.SH','600536.SH','600255.SH','300123.SZ','603189.SH','300078.SZ','600854.SH','603690.SH','601101.SH','601828.SH','002013.SZ','600163.SH','002344.SZ','603919.SH','002444.SZ','300134.SZ','300480.SZ','600461.SH','300256.SZ','600082.SH','002572.SZ','000001.SZ','601777.SH','002242.SZ','300353.SZ','000977.SZ','002341.SZ','300607.SZ','000576.SZ','603659.SH','002543.SZ','601326.SH','600999.SH','000516.SZ','002758.SZ','600020.SH','300266.SZ','300616.SZ','300682.SZ','002621.SZ','000410.SZ','000897.SZ','300225.SZ','600793.SH','002003.SZ','600817.SH','000938.SZ','002371.SZ','002353.SZ','300261.SZ','002064.SZ','002548.SZ','300452.SZ','603517.SH','002677.SZ','300642.SZ','600550.SH','600009.SH','000735.SZ','002336.SZ','000595.SZ','300588.SZ','002054.SZ','002824.SZ','300232.SZ','603389.SH','000961.SZ','002440.SZ','300013.SZ','603166.SH','300218.SZ','300677.SZ','002317.SZ','002508.SZ','002664.SZ','300226.SZ','300269.SZ','002905.SZ','000783.SZ','002582.SZ','300741.SZ','000509.SZ','600323.SH','002731.SZ','600618.SH','601996.SH','603299.SH','300310.SZ','603328.SH','600083.SH','600823.SH','300030.SZ','300197.SZ','002448.SZ','300717.SZ','300188.SZ','600798.SH','603456.SH','002819.SZ','002545.SZ','603999.SH','300121.SZ','000505.SZ','300635.SZ','300145.SZ','002306.SZ','300395.SZ','300590.SZ','603496.SH','002483.SZ','603351.SH','000932.SZ','002554.SZ','002005.SZ','002307.SZ','002789.SZ','300021.SZ','300424.SZ','600726.SH','600507.SH','600657.SH','000585.SZ','300052.SZ','000554.SZ','002250.SZ','300020.SZ','000801.SZ','603416.SH','002883.SZ','300083.SZ','600460.SH','601678.SH','601228.SH','300633.SZ','002316.SZ','002368.SZ','300294.SZ','600653.SH','002099.SZ','002586.SZ','600881.SH','601858.SH','600822.SH','300417.SZ','600800.SH','601086.SH','300208.SZ','600987.SH','603880.SH','000623.SZ','000007.SZ','600397.SH','300407.SZ','000995.SZ','300059.SZ','300173.SZ','000951.SZ','603901.SH','600319.SH','600525.SH','603136.SH','600271.SH','002578.SZ','600642.SH','600801.SH','603179.SH','300459.SZ','300533.SZ','601799.SH','000828.SZ','600090.SH','600267.SH','000839.SZ','300697.SZ','000933.SZ','600995.SH','300418.SZ','603183.SH','600420.SH','300117.SZ','601208.SH','000719.SZ','300560.SZ','000778.SZ','300293.SZ','300461.SZ','002802.SZ','300040.SZ','601555.SH','002665.SZ','600410.SH','002193.SZ','300074.SZ','600652.SH','002409.SZ','000780.SZ','002297.SZ','300089.SZ','300171.SZ','002606.SZ','600278.SH','600346.SH','002888.SZ','600016.SH','600241.SH','002566.SZ','603506.SH','002539.SZ','600275.SH','002705.SZ','603789.SH','002619.SZ','002855.SZ','300720.SZ','600637.SH','300660.SZ','300436.SZ','600623.SH','000488.SZ','600260.SH','300398.SZ','000858.SZ','002707.SZ','603976.SH','002401.SZ','300462.SZ','000536.SZ','001696.SZ','002928.SZ','600966.SH','600439.SH','300507.SZ','002464.SZ','300593.SZ','000795.SZ','002022.SZ','600792.SH','000939.SZ','300033.SZ','000878.SZ','300489.SZ','603159.SH','603838.SH','600231.SH','600145.SH','300262.SZ','002827.SZ','601099.SH','300109.SZ','002110.SZ','300440.SZ','300760.SZ','002282.SZ','300062.SZ','600467.SH','603866.SH','600601.SH','603011.SH','600213.SH','600282.SH','600816.SH','300622.SZ','300244.SZ','600519.SH','603569.SH','600184.SH','600114.SH','603819.SH','603869.SH','002419.SZ','300213.SZ','600093.SH','603386.SH','002718.SZ','601020.SH','002714.SZ','002835.SZ','000705.SZ','002312.SZ','600838.SH','002763.SZ','300137.SZ','300702.SZ','300279.SZ','300589.SZ','300541.SZ','600517.SH','300277.SZ','002004.SZ','002659.SZ','300247.SZ','300067.SZ','600733.SH','603039.SH','000950.SZ','002060.SZ','002849.SZ','002645.SZ','002078.SZ','300684.SZ','600035.SH','000561.SZ','603987.SH','002056.SZ','300322.SZ','000613.SZ','000860.SZ','600614.SH','601598.SH','000006.SZ','300189.SZ','002732.SZ','000971.SZ','300058.SZ','603158.SH','600363.SH','603638.SH','300443.SZ','603667.SH','600559.SH','002420.SZ','002528.SZ','002909.SZ','000710.SZ','002765.SZ','002929.SZ','603626.SH','600372.SH','300526.SZ','002223.SZ','000166.SZ','600098.SH','603700.SH','600379.SH','002002.SZ','300467.SZ','002311.SZ','600222.SH','601857.SH','603933.SH','600586.SH','002334.SZ','002198.SZ','300229.SZ','300283.SZ','000921.SZ','600436.SH','002366.SZ','600845.SH','000532.SZ','600810.SH','300136.SZ','300601.SZ','601929.SH','002927.SZ','600959.SH','603366.SH','603555.SH','600201.SH','603583.SH','603797.SH','601226.SH','300017.SZ','601901.SH','002875.SZ','300404.SZ','603077.SH','600682.SH','002547.SZ','300665.SZ','002244.SZ','600225.SH','300066.SZ','300555.SZ','002191.SZ','601162.SH','603556.SH','002154.SZ','600735.SH','601958.SH','603607.SH','600754.SH','002473.SZ','601118.SH','002254.SZ','600890.SH','002426.SZ','300379.SZ','000593.SZ','002696.SZ','000901.SZ','300692.SZ','002801.SZ','603396.SH','002333.SZ','000712.SZ','002910.SZ','000158.SZ','002722.SZ','600901.SH','600667.SH','603533.SH','002837.SZ','002738.SZ','600072.SH','600423.SH','603167.SH','300509.SZ','600452.SH','002210.SZ','000018.SZ','600366.SH','603336.SH','000581.SZ','002212.SZ','300276.SZ','000818.SZ','300722.SZ','002088.SZ','300112.SZ','601699.SH','600885.SH','600546.SH','300126.SZ','600685.SH','601606.SH','601615.SH','600356.SH','601158.SH','002945.SZ','002753.SZ','600766.SH','600829.SH','600148.SH','300495.SZ','601798.SH','000607.SZ','300504.SZ','601766.SH','603363.SH','600686.SH','002911.SZ','300222.SZ','600179.SH','600723.SH','002708.SZ','300548.SZ','300618.SZ','603939.SH','300164.SZ','300344.SZ','601811.SH','300481.SZ','300389.SZ','600337.SH','002076.SZ','000790.SZ','300455.SZ','002011.SZ','002602.SZ','000998.SZ','600076.SH','000852.SZ','603629.SH','000962.SZ','002590.SZ','600183.SH','601007.SH','002327.SZ','002864.SZ','002068.SZ','603018.SH','300375.SZ','601021.SH','600567.SH','600860.SH','603666.SH','601928.SH','002559.SZ','002678.SZ','603816.SH',...]

获取数据

In [17]:

data = get_price(stocklist,None,date,'1d',['open','high','low','close'],bar_count = 60,is_panel =1)
data

Out[17]:

<class 'pandas.core.panel.Panel'>
Dimensions: 4 (items) x 60 (major_axis) x 3586 (minor_axis)
Items axis: close to open
Major_axis axis: 2018-11-09 00:00:00 to 2019-02-11 00:00:00
Minor_axis axis: 000001.SH to 603999.SH

In [18]:

closedf = data['close'].fillna(0)
opendf = data['open'].fillna(0)
highdf = data['high'].fillna(0)
lowdf = data['low'].fillna(0)
lowdf

Out[18]:

000001.SH000001.SZ000002.SZ000004.SZ000005.SZ000006.SZ000007.SZ000008.SZ000009.SZ000010.SZ...603987.SH603988.SH603989.SH603990.SH603991.SH603993.SH603996.SH603997.SH603998.SH603999.SH
2018-11-092598.161010.4023.5316.002.865.036.714.434.274.26...6.049.9222.1030.0117.704.108.407.955.184.75
2018-11-122590.211010.3823.4016.152.794.977.063.994.264.20...6.0110.9922.3030.1517.904.048.447.915.204.74
2018-11-132597.348010.3823.4416.502.935.058.034.124.374.23...6.0910.8622.3330.5018.184.068.407.935.334.82
2018-11-142627.956510.4223.9617.003.045.247.924.194.504.33...6.2510.6422.5132.0319.144.138.728.165.585.08
2018-11-152631.887510.4223.9616.803.015.247.704.154.594.34...6.2810.6022.5131.9919.514.108.878.185.535.11
2018-11-162657.034110.4924.0216.933.045.457.754.154.874.40...6.4310.6222.8032.7020.304.158.968.265.645.21
2018-11-192674.178110.5724.6817.303.115.518.154.135.334.42...6.4510.8222.5532.2620.074.118.858.265.685.25
2018-11-202643.358810.5225.2316.803.035.477.884.005.024.30...6.2710.7022.0831.8519.344.108.748.005.525.11
2018-11-212617.775910.4825.3516.652.975.398.233.965.044.25...6.1910.6021.0031.5019.353.978.537.885.424.98
2018-11-222634.482710.4825.2817.043.035.459.054.125.004.32...6.4310.7521.1831.6619.454.058.728.195.575.11
2018-11-232577.351110.3124.6816.492.885.259.374.014.744.31...6.0610.3521.0131.2118.513.857.968.365.215.04
2018-11-262568.035210.3024.7416.352.875.258.643.954.754.34...6.0710.1120.6831.5018.353.797.958.205.155.12
2018-11-272566.166310.1624.7816.462.895.268.143.954.844.47...6.1410.0120.7031.7618.533.808.028.215.135.17
2018-11-282561.561810.1624.9916.672.895.177.933.894.744.42...6.0310.1220.5031.8818.133.777.888.255.085.02
2018-11-292567.443410.1925.0016.322.995.327.293.754.694.45...6.409.8019.7031.7017.733.867.968.005.115.10
2018-11-302555.322310.1725.0315.962.905.226.873.664.584.02...6.608.8719.8031.7017.803.827.867.965.064.80
2018-12-032629.184310.4724.8116.393.035.447.263.854.854.06...6.7010.8020.7232.6618.684.058.258.165.255.05
2018-12-042644.896410.5324.8616.523.035.497.393.964.894.06...6.7710.7121.0532.7618.914.038.348.115.275.05
2018-12-052625.913210.4024.7616.552.985.477.843.914.804.01...6.6110.7021.3831.3518.803.978.198.155.475.35
2018-12-062603.132310.2324.9016.642.955.557.763.914.754.02...6.6610.3821.4632.4218.504.058.188.105.305.80
2018-12-072599.277510.2725.1216.303.005.627.913.904.763.86...6.5510.2021.2532.6018.634.038.218.005.205.46
2018-12-102576.242410.1324.9015.802.915.537.203.804.653.82...6.3510.1921.1032.0818.033.978.167.665.055.12
2018-12-112583.195910.1724.9116.072.935.627.383.834.663.70...6.4310.2321.2032.1218.203.978.227.655.075.19
2018-12-122595.075010.2026.1416.522.995.768.253.854.713.61...6.4010.2821.2631.7418.314.038.247.795.105.25
2018-12-132599.458610.2026.4016.412.995.728.343.864.733.52...6.7110.4221.2831.5318.354.078.168.155.095.21
2018-12-142593.740710.1626.3116.462.925.668.103.964.583.38...6.469.9620.8831.2018.034.078.018.105.035.10
2018-12-172573.867410.1025.9417.252.915.728.053.904.523.38...6.319.9020.3031.5117.754.047.947.924.885.03
2018-12-182563.573110.1025.3416.832.875.388.223.824.563.45...6.339.8320.2132.1917.664.097.687.824.895.08
2018-12-192547.07839.9025.1516.322.865.428.793.814.553.47...6.339.9820.2132.1017.614.087.717.804.885.08
2018-12-202516.01939.6324.9116.302.845.408.613.794.533.45...6.369.9520.1931.9017.514.017.757.714.845.06
2018-12-212498.69379.3323.7016.172.835.338.233.804.483.46...6.549.8920.3231.2817.553.917.627.704.865.11
2018-12-242500.44309.3123.3316.082.825.278.183.804.503.45...6.619.8020.2031.8017.613.927.657.724.915.09
2018-12-252462.84489.2123.3815.922.725.038.013.854.233.32...6.359.8020.0731.6017.453.767.337.384.794.80
2018-12-262492.07589.2723.5816.162.735.158.463.964.373.40...6.4310.0620.4532.2618.363.847.567.464.854.90
2018-12-272483.08649.2823.4416.032.665.168.103.844.303.26...6.429.9520.1032.7918.373.757.437.504.654.81
2018-12-282478.32509.3123.6715.732.655.157.903.854.303.20...6.349.9820.0032.6018.183.747.367.404.674.81
2019-01-022456.42339.1623.6716.012.665.107.993.814.263.25...6.429.8219.2532.1518.063.657.487.654.524.75
2019-01-032455.92569.1523.7116.002.655.117.583.834.233.26...6.409.6618.7531.8017.823.677.477.704.534.72
2019-01-042440.90669.2223.8516.012.665.067.503.804.183.22...6.369.6218.5931.7917.423.677.367.724.504.66
2019-01-072515.50839.6324.9916.462.765.287.933.924.413.32...6.589.9519.3931.8018.363.837.737.754.744.92
2019-01-082520.16489.6224.6316.802.825.317.824.034.443.35...6.5510.0319.2031.8118.563.857.747.784.865.01
2019-01-092536.15709.7025.1116.722.845.347.804.064.463.36...6.8010.1819.5331.8718.853.838.017.854.925.00
2019-01-102531.66389.8625.0316.662.845.297.774.004.413.36...6.7210.2219.1631.8118.853.807.897.904.984.96
2019-01-112533.358610.0525.0116.492.915.307.633.984.403.34...6.6810.1919.2331.5518.793.807.917.705.004.95
2019-01-142533.010110.0724.9216.492.975.286.974.004.443.52...6.359.9418.7631.5019.063.807.877.645.004.93
2019-01-152532.433310.0924.3216.403.045.237.053.984.443.47...6.3510.0118.9031.5218.883.807.917.775.004.94
2019-01-162563.006110.2324.8316.552.965.317.074.004.433.51...6.4010.2419.3831.5619.143.818.087.775.034.97
2019-01-172557.711410.1724.9416.402.955.256.773.954.373.42...6.289.8818.8031.5018.693.787.997.624.964.95
2019-01-182565.904310.2824.9916.442.955.246.563.804.333.27...6.349.7518.8631.5018.583.817.957.614.984.86
2019-01-212599.057510.3225.4016.422.965.336.723.894.403.31...6.429.8118.9131.0518.283.917.997.665.025.07
2019-01-222573.061710.2625.2316.282.925.256.703.894.253.34...6.429.6818.8231.3618.893.857.877.654.975.03
2019-01-232572.405410.2925.2016.202.975.236.623.864.263.31...6.379.6618.7131.5318.753.837.867.614.934.97
2019-01-242569.700410.3724.9316.222.905.206.453.844.283.28...6.399.6817.9531.8518.593.838.077.624.944.97
2019-01-252595.629410.5525.4916.272.915.256.203.854.283.25...6.369.5917.7332.0318.433.838.027.634.934.93
2019-01-282591.100010.8825.8616.012.905.205.613.854.223.24...6.129.3217.7532.2218.233.837.937.544.864.93
2019-01-292559.982010.7725.8715.002.785.105.053.804.083.02...5.929.0717.6332.2717.533.627.237.414.715.10
2019-01-302575.409110.8626.6315.032.805.124.613.824.122.82...6.059.2217.5132.3917.273.737.287.334.654.92
2019-01-312571.578910.9427.0014.052.825.114.753.504.022.85...5.858.4117.5032.6016.573.787.257.014.614.72
2019-02-012590.554310.9626.9814.702.855.174.883.654.082.91...5.968.7517.5633.1316.803.837.467.124.664.73
2019-02-112613.174210.9726.8914.852.975.255.123.614.263.04...6.199.0418.1234.9117.453.897.927.454.774.86

60 rows × 3586 columns

绘制大盘走势图

In [19]:

stock = indexcode
startdate = '20181109'
enddate = dateimport numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[19]:

(<matplotlib.collections.LineCollection at 0x7f8b25f69588>,<matplotlib.collections.PolyCollection at 0x7f8b25f695f8>)

In [20]:

dt = pd.DataFrame(columns=['stock','startdate','enddate','T'])
stock = '000001.SH'
trade = list(closedf.index.strftime('%Y%m%d'))
close = list(closedf[stock])
opens = list(opendf[stock])
high = list(highdf[stock])
low = list(lowdf[stock])stocklist = list(closedf.columns)
y=0
for s in stocklist:corropen = round(np.corrcoef(opens,opendf[s])[0][1],3)corrhigh = round(np.corrcoef(high,highdf[s])[0][1],3)corrlow = round(np.corrcoef(low,lowdf[s])[0][1],3)corrclose = round(np.corrcoef(close,closedf[s])[0][1],3)#综合值T = (corropen+corrhigh+corrlow+corrclose)/4startdate = '20181109'enddate = '20190211'dt.loc[y] = [s,startdate,enddate,T]y+=1
dt = dt.fillna(0)
dt = dt.sort_values(by='T',ascending=False)
dt

Out[20]:

stockstartdateenddateT
0000001.SH20181109201902111.00000
177000598.SZ20181109201902110.94000
3382603588.SH20181109201902110.93050
51000066.SZ20181109201902110.92375
144000553.SZ20181109201902110.92275
2499600449.SH20181109201902110.91825
1285002833.SZ20181109201902110.91250
2806600801.SH20181109201902110.91150
2993601169.SH20181109201902110.90825
2441600367.SH20181109201902110.90800
704002240.SZ20181109201902110.90800
1213002756.SZ20181109201902110.90750
592002128.SZ20181109201902110.90675
2903600926.SH20181109201902110.90550
700002236.SZ20181109201902110.90250
882002419.SZ20181109201902110.90175
192000616.SZ20181109201902110.90175
2641600618.SH20181109201902110.89975
3126601996.SH20181109201902110.89875
99000488.SZ20181109201902110.89700
542002078.SZ20181109201902110.89700
3018601318.SH20181109201902110.89650
1762300376.SZ20181109201902110.89625
2857600859.SH20181109201902110.89625
2951601009.SH20181109201902110.89550
211000639.SZ20181109201902110.89550
869002406.SZ20181109201902110.89450
2234600123.SH20181109201902110.89300
738002275.SZ20181109201902110.89275
838002375.SZ20181109201902110.89200
...............
2811600807.SH2018110920190211-0.56725
707002243.SZ2018110920190211-0.56775
1333002885.SZ2018110920190211-0.56900
3293603322.SH2018110920190211-0.58125
1223002767.SZ2018110920190211-0.58325
181000603.SZ2018110920190211-0.58875
2576600547.SH2018110920190211-0.59000
3194603098.SH2018110920190211-0.59300
1944300560.SZ2018110920190211-0.59350
1883300497.SZ2018110920190211-0.59400
29000035.SZ2018110920190211-0.60075
2127300753.SZ2018110920190211-0.60125
132000539.SZ2018110920190211-0.60200
909002446.SZ2018110920190211-0.60250
2577600548.SH2018110920190211-0.60575
2338600242.SH2018110920190211-0.60775
899002436.SZ2018110920190211-0.61050
1529300140.SZ2018110920190211-0.61400
1264002811.SZ2018110920190211-0.61625
2015300635.SZ2018110920190211-0.62075
2635600612.SH2018110920190211-0.62150
516002052.SZ2018110920190211-0.62925
1948300565.SZ2018110920190211-0.63600
3368603558.SH2018110920190211-0.64475
1815300429.SZ2018110920190211-0.66475
2527600489.SH2018110920190211-0.68400
2783600775.SH2018110920190211-0.70025
1054002592.SZ2018110920190211-0.70950
1693300305.SZ2018110920190211-0.71700
1371002927.SZ2018110920190211-0.73100

3586 rows × 4 columns

In [21]:

dt =dt.iloc[1:]
dt.describe()

Out[21]:

T
count3585.000000
mean0.421866
std0.349293
min-0.731000
25%0.240000
50%0.524750
75%0.682250
max0.940000

In [22]:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 1, 0.618]) 
x=range(0,len(list(dt.index)))
y=list(dt['T'])
axes.scatter(x,y,color='tomato')
axes.set_title('相似度分布',fontsize=15)#设置Y轴
axes.set_yticks([-1,0,1])
axes.set_yticklabels(['-1','0','1'], fontsize=18)

Out[22]:

[<matplotlib.text.Text at 0x7f8b26360470>,<matplotlib.text.Text at 0x7f8b2750f630>,<matplotlib.text.Text at 0x7f8b2695a0b8>]

In [23]:

s = 1
d = 0.2
sdf = pd.DataFrame(columns=['min','max','数量'])
for t in range(0,10):s = round(s-d,2)mn=smx=s+dnum = len(dt[(dt['T']>mn)&(dt['T']<mx)])sdf.loc[s]=[mn,mx,num]
sdf

Out[23]:

minmax数量
0.80.81.0282.0
0.60.60.81089.0
0.40.40.6920.0
0.20.20.4454.0
0.00.00.2311.0
-0.2-0.20.0232.0
-0.4-0.4-0.2169.0
-0.6-0.6-0.496.0
-0.8-0.8-0.620.0
-1.0-1.0-0.80.0

In [24]:

fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 1, 0.618]) 
x=range(0,10)
y=list(sdf['数量'])
axes.bar(x,y,color ='tomato')
axes.set_title('相似度数量分布',fontsize = 20)#设置Y轴
axes.set_xticks(x)
axes.set_xticklabels(['1.0~0.8','0.8~0.6','0.6~0.4','0.4~0.2','0.2~0.0','0.0~-0.2','-0.2~-0.4','-0.4~-0.6','-0.6~-0.8','-0.8~-1.0'], fontsize=10)

Out[24]:

[<matplotlib.text.Text at 0x7f8b261da780>,<matplotlib.text.Text at 0x7f8b26acefd0>,<matplotlib.text.Text at 0x7f8b25e29710>,<matplotlib.text.Text at 0x7f8b264e6a58>,<matplotlib.text.Text at 0x7f8b2745fc18>,<matplotlib.text.Text at 0x7f8b274f3198>,<matplotlib.text.Text at 0x7f8b273dc048>,<matplotlib.text.Text at 0x7f8b266bb400>,<matplotlib.text.Text at 0x7f8b2607d240>,<matplotlib.text.Text at 0x7f8b26445ef0>]

近期与大盘走势最相似的个股

In [25]:

stock = dt.iloc[0].stock
startdate = dt.iloc[0].startdate
enddate = dt.iloc[0].enddateimport numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[25]:

(<matplotlib.collections.LineCollection at 0x7f8b263082e8>,<matplotlib.collections.PolyCollection at 0x7f8b273ce518>)

近期与大盘走势最不相似的个股

In [26]:

stock = dt.iloc[-1].stock
startdate = dt.iloc[-1].startdate
enddate = dt.iloc[-1].enddateimport numpy as np
import matplotlib.pyplot as plt 
from matplotlib.finance import candlestick2_ohlc
import datetime
s = stocktrade = list(closedf.index.strftime('%Y%m%d'))
num = trade.index(enddate)
close1 = closedf[s].iloc[num-59:num+21]
open1 = opendf[s].iloc[num-59:num+21]
high1 = highdf[s].iloc[num-59:num+21]
low1 = lowdf[s].iloc[num-59:num+21]#画图
fig,ax = plt.subplots(figsize = (10,6.18),facecolor='white')
fig.subplots_adjust() ticks = ax.set_xticks([0,60])
labels = ax.set_xticklabels([startdate,enddate], fontsize=10) plt.yticks()  
plt.title("{} K线走势图".format(s),fontsize = 15)  
plt.ylabel("股价",fontsize = 15)  
candlestick2_ohlc(ax,open1,high1,low1,close1,width=0.6,colorup='red',colordown='green')

Out[26]:

(<matplotlib.collections.LineCollection at 0x7f8b275c8da0>,<matplotlib.collections.PolyCollection at 0x7f8b257a6ba8>)

In [ ]:

查看以上策略详细请 到 supermind量化交易官网查看:技术面分析专题(一)--相似k线在预测股价中的运用

这篇关于同花顺Supermind量化交易 技术面分析专题(一)--相似k线在预测股价中的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_22808537/article/details/132916191
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/395123

相关文章

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用