久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【qstock量化】動態(tài)交互數(shù)據(jù)可視化

 伊伊爸 2022-10-21 發(fā)布于湖北
qstock簡介



qstock由“Python金融量化”公眾號開發(fā),,試圖打造成個人量化投研分析開源庫,目前包括數(shù)據(jù)獲?。╠ata),、可視化(plot),、選股(stock)和量化回測(backtest)四個模塊,。其中數(shù)據(jù)模塊(data)數(shù)據(jù)來源于東方財富網(wǎng),、同花順,、新浪財經(jīng)等網(wǎng)上公開數(shù)據(jù),數(shù)據(jù)爬蟲部分參考了現(xiàn)有金融數(shù)據(jù)包tushare,、akshare和efinance,。qstock致力于為用戶提供更加簡潔和規(guī)整化的金融市場數(shù)據(jù)接口??梢暬K基于plotly.express和pyecharts包,,為用戶提供基于web的交互圖形簡單操作接口;選股模塊提供了同花順的技術(shù)選股和公眾號策略選股,包括RPS,、MM趨勢,、財務(wù)指標、資金流模型等,,回測模塊為大家提供向量化(基于pandas)和基于事件驅(qū)動的基本框架和模型,。


qstock目前在pypi官網(wǎng)上發(fā)布,開源版本為1.1.0,,意味著讀者直接“pip install qstock ”安裝即可使用,。GitHub地址:

https://github.com/tkfy920/qstock

下面為大家介紹qstock可視化模塊plot)的調(diào)用方法,。以下代碼使用jupyter notebook編譯,,輸出圖形為基于web的可交互動態(tài)圖




qstock數(shù)據(jù)篇專題如下

【qstock開源了】數(shù)據(jù)篇之行情交易數(shù)據(jù)

【qstock數(shù)據(jù)篇】行業(yè)概念板塊與資金流

【qstock量化】數(shù)據(jù)篇之股票基本面數(shù)據(jù)

【qstock量化】數(shù)據(jù)篇之宏觀指標和財經(jīng)新聞文本

import qstock as qs
from qstock import plot
01

K線圖
01
普通K線圖













kline(df, mas=5, mal=20, notebook=True,title='股票K線圖')

參數(shù)說明:

df:數(shù)據(jù),,包含open,high,low,close,volume列名的dataframe

mas:短期均線,,默認5日均線

mal:長期均線,默認20日均線

notebook:True代表在jupyter notebook上顯示,,F(xiàn)alse默認輸出html,,可以保存本地打開。默認為True

title:圖形標題





#如果notebook不顯示pyecharts的圖形,,在前面加上以下代碼(去掉前面注釋)
#from pyecharts.globals import CurrentConfig, NotebookType
#CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_NOTEBOOK
#獲取中國平安2022年至今前復(fù)權(quán)的數(shù)據(jù)
df=qs.get_data('中國平安',start='2022-06-01',end='2022-10-20')
df.tail()

圖片

#使用默認參數(shù)
plot.kline(df)

圖片

02
修正K線圖













HA_kline(df)

參數(shù)df與前面普通k線圖線圖,。





也叫平均K線圖(Heikin-Ashi),具體原理可以參考公眾號推文《【手把手教你】使用Python對股價的Heikin Ashi蠟燭圖進行可視化》,。

普通K線圖中往往存在很多噪聲,,這些噪聲容易掩蓋市場真實趨勢的隨機波動,包括價格和成交量波動,。比如,,對市場影響持續(xù)性較短的新聞事件,以及對技術(shù)指標和市場趨勢解讀等,,都可能造成無意義的短期價格和交易量波動,,這樣的噪聲會對交易者分析市場產(chǎn)生干擾和誤導(dǎo)。為了減少普通K線圖產(chǎn)生的噪聲,,HA蠟燭圖應(yīng)運而生,,HA中的四個價格中,HA開盤價和HA收盤價都是經(jīng)過平均計算得來,,平均化的處理相當于噪聲消除處理,,在一定程度上消除了市場的噪聲,可以更加明確地反映市場價格的走勢,。

plot.HA_kline(df)

圖片

02

樹狀圖
03
矩形樹狀圖













treemap(data, label, weight, value, color=['Green', 'Red', '#8b0000'])

參數(shù)說明:

data:dataframe數(shù)據(jù)格式

label:需要展示的列名或標簽名,,必須是list,如[px.Constant('股票'), '行業(yè)',  '股票名稱']
其中,,'行業(yè)',  '股票名稱'必須是data里的存在的列名

weight:data里存在的列,用來顯示權(quán)重

value:data里存在的列,,用來顯示數(shù)值

color:設(shè)置展示的顏色





#獲取東方財富行業(yè)板塊實時漲跌幅數(shù)據(jù)
data=qs.realtime_data('行業(yè)板塊')[['名稱','漲幅']]
data['權(quán)重']=abs(data['漲幅'])
#注意去掉漲幅為0的值,,否則會報錯
data=data[data['漲幅']!=0]
params={'data':data,'label':['名稱'],'weight':'權(quán)重','value':'漲幅'}
plot.treemap(**params)

圖片

#獲取東方財富概念板塊實時漲跌幅數(shù)據(jù)
data=qs.realtime_data('概念')[['名稱','漲幅']]
data['權(quán)重']=abs(data['漲幅'])
data=data[data['漲幅']!=0]
params={'data':data,'label':['名稱'],'weight':'權(quán)重','value':'漲幅'}
plot.treemap(**params)

圖片

03

ichimoku云圖

云圖













plot_ichimoku(df, t=9, k=26, l=30, s=52)

參數(shù)說明:

df為dataframe數(shù)據(jù),包含'open','high','low','close','volume'列,,索引為時間格式,;

t:Tenkan-sen:轉(zhuǎn)折線計算周期,默認9個交易日,;

k:Kijun-sen:基準線計算周期,,默認26;

l:Chikou Span:滯后跨度或延遲線計算周期,,默認30天,;

s:Senkou Span B:計算前導(dǎo)跨度B或先行上線B,默認52個交易日,。





Ichimoku,,是一名日本報紙作家提出的,用于衡量動量以及未來價格支撐和阻力區(qū)域的技術(shù)分析指標,,目前被廣泛用于判斷外匯,、期貨、股票,、黃金等投資品種的趨勢和動量,。關(guān)于ichimoku云圖的基本原理詳細以參考公眾號推文:《【手把手教你】Ichimoku云圖指標可視化與交易策略回測》

df=qs.get_data('豐元股份',start='2021-03-01')
plot.plot_ichimoku(df)

圖片

04

基本圖形
05
折線圖













line(data=None, x=None, y=None, title=None, color=None, line_group=None, facet_col=None, legend=True)

參數(shù):data為series或dataframe的時候,可以不輸入x和y,。x為x坐標軸對應(yīng)數(shù)據(jù),,y為y軸坐標對應(yīng)數(shù)據(jù)。





普通折線圖

#獲取中國平安前復(fù)權(quán)價格數(shù)據(jù)
code='中國平安'
df=qs.get_data(code)
plot.line(df.close,title=code+'價格走勢')

圖片

06
股價分位點折線圖













stock_line(data=None, x=None, y=None, notebook=True, title=None)

各參數(shù)符號與K線相同,。





plot.stock_line(df.close)

圖片


對比折線圖

df['ma20']=df.close.rolling(20).mean()
title='中國平安股價與20日均線'
plot.line(df[['close','ma20']],title=title)

圖片

#個股資金流
plot.line(qs.stock_money('中國平安'),title='中國平安資金流')

圖片

全球指數(shù)累計漲幅可視化

#常見的全球指數(shù)名稱
global_indexs=['sh','cyb','恒生指數(shù)','道瓊斯','標普500','納斯達克','英國富時100','法國CAC40','德國DAX30','日經(jīng)225','韓國KOSPI',
               '澳大利亞標普200','印度孟買SENSEX','臺灣加權(quán)','俄羅斯RTS','加拿大S&P/TSX','巴西BOVESPA']
index_data=qs.get_price(global_indexs,start='2012-01-01').dropna()
plot.line(index_data/index_data.iloc[0],title='全球指數(shù)累計漲幅(2012-2022)')

圖片

07
柱狀圖













bar(data=None, x=None, y=None, title=None, color=None, legend=False,orientation=None, log_x=False, log_y=False, barmode='group')

參數(shù)說明:
'orientation='h'表示橫向柱狀圖,log_x和log_y為True表示使用對數(shù)坐標,,barmode='group'表示對比條形圖,默認。為'relative',,
   如qs.bar(dd['總市值'],log_x=True,orientation='h')。





#計算收益率
data=index_data.copy().dropna()
rets=data/data.shift(1)-1
rets=rets.to_period('Y')
rets=(rets.groupby(rets.index).apply(lambda x: ((1+x).cumprod()-1).iloc[-1])*100).round(2)
rets=rets.iloc[-1].sort_values(ascending=False)
title='全球指數(shù)2022年漲跌幅'
plot.bar(rets,title=title)

圖片

08
基于pyecharts畫柱狀圖













chart_bar(data=None, x=None, y=None, title=None, notebook=True, zoom=False)

x,y均為list,,或者x為dataframe





plot.chart_bar(rets,title=title,zoom=True)

圖片

09
縱向柱狀圖













chart_inv_bar(data=None, x=None, y=None, title=None, notebook=True, zoom=False)

x,y均為list,,或者x為dataframe





plot.chart_inv_bar(rets,title=title,zoom=True)

圖片

010
散點圖













scatter(data=None, x=None, y=None, title=None, color=None, size=None,trend=None, legend=True, marginal_x=None, marginal_y=None)

參數(shù)說明:
color根據(jù)不同類型顯示不同顏色;
size根據(jù)值大小顯示散點圖的大??;
trend='ols'添加回歸擬合線;
marginal_x='violin',添加小提琴圖,;
marginal_y= 'box',,添加箱線圖。





data=qs.get_data('曉程科技')
plot.scatter(data,x='close',y='volume')

圖片

data=qs.get_data('曉程科技')
#計算收益率
data['ret']=data.close/data.close.shift(1)-1
data['weight']=data['ret'].abs()
#對換手率分類
data.loc[data.turnover_rate>20,'rr']='crazy'
data.loc[(10<data.turnover_rate)&(data.turnover_rate<20),'rr']='high'
data.loc[(5<data.turnover_rate)&(data.turnover_rate<10),'rr']='mid'
data.loc[data.turnover_rate<5,'rr']='low'
data.dropna(inplace=True)
plot.scatter(data,x='turnover_rate',y='close',size='weight',trend='ols',marginal_x='histogram',marginal_y='box')

圖片

011
餅圖













pie(data=None, x=None, y=None, color=None, title=None, legend=False, hole=None)

data為dataframe數(shù)據(jù),value,;
hole數(shù)值0-1,,顯示中間空心;
legend=True顯示圖例,,默認不顯示,。





實例:個股主營業(yè)務(wù)占比可視化

code='曉程科技'
df=qs.main_business(code)
c1=df['報告期']=='2022中期'
c2=df['分類方向']=='按產(chǎn)品分'
df=df[c1&c2]
df

圖片

plot.pie(df.iloc[:-1],x='分類',y='營業(yè)收入(萬)',title=code+'主營業(yè)務(wù)收入')

圖片

012
基于pyecharts畫餅圖













chart_pie(data=None, x=None, y=None, data_pair=None, title=None, notebook=True)

參數(shù)與前面相同





plot.chart_pie(data=df.iloc[:-1],x='分類',y='營業(yè)收入(萬)',title=code+'主營業(yè)務(wù)收入')

圖片

05

統(tǒng)計分布圖
013
直方圖













hist(data=None, x=None, y=None, title=None, color=None, legend=False,orientation=None, log_x=False, log_y=False, barmode='group',histnorm=None)

參數(shù)說明:histnorm={1:'percent',2:'probability',3:'density',4:'probability density'},其他參數(shù)與前面相同,。





#1:'percent',2:'probability',3:'density',4:'probability density'
code='曉程科技'
data=qs.get_data(code,fqt=2)
plot.hist(data,x='close',histnorm=3,title=code+'股價直方圖')

圖片

014
概率密度圖













hist_kde(data=None, x=None, y=None, kde=True, stat='count', figsize=(15, 7))

參數(shù)說明:直方圖默認統(tǒng)計的是觀測數(shù),,可以進行統(tǒng)計變化,設(shè)置stat參數(shù),。stat可選參數(shù):count:觀測數(shù)(默認),;frequency:頻數(shù);density:密度;probability:概率;kde=True表示添加核密度曲線,。其他參數(shù)與前面相同,。





#stat可選參數(shù):count:觀測數(shù)(默認);frequency:頻數(shù);density:密度;probability:概率
plot.hist_kde(data.close,stat='probability')

圖片

015
箱線圖













box(data=None, x=None, y=None, title=None, color=None, legend=False,orientation=None, log_x=False, log_y=False, boxmode=None)

參數(shù)說明與前面同。





index_list=['上證指數(shù)','創(chuàng)業(yè)板指','滬深300','道瓊斯','標普500','納斯達克']
data=qs.get_price(index_list)
plot.box(data.dropna())

圖片

#獲取面板數(shù)據(jù)
dd=qs.get_data(index_list)
plot.box(dd,x='name',y='close',color='name')

圖片

plot.box(dd,y='name',x='close',color='name',orientation='h')

圖片

016
小提琴圖













violin(data=None, x=None, y=None, title=None, color=None, legend=False,orientation=None, log_x=False, log_y=False, box=False, points=None)





plot.violin(dd,x='name',y='close',color='name',box=True)

圖片

小提琴是是箱線圖和核密度圖的集合,,通過箱線思維展示數(shù)據(jù)的各個百分位點,。小提琴圖上的核密度圖展示了數(shù)據(jù)分布的形狀,分布越寬的位置表示數(shù)據(jù)越集中于該處,,反之則說明該處數(shù)據(jù)分布越少,。

plot.violin(dd,y='name',x='close',color='name',box=True,orientation='h')

圖片

plot.violin(dd.query('name=='上證指數(shù)''),y='name',x='close',box=True,orientation='h')

圖片

plot.violin(dd.query('name=='道瓊斯''),y='name',x='close',box=True,orientation='h')

圖片

06

其他圖形
017
熱力圖













chart_heatmap(x, y, v, title=None, notebook=True)

x,y分別為xy軸對應(yīng)標簽,,v是對應(yīng)數(shù)據(jù)





sh0=qs.get_data('上證指數(shù)').close['2011':'2021']
sh=(sh0/sh0.shift(1)-1).to_period('M')
sh=sh.groupby(sh.index).apply(lambda x: ((((1+x).cumprod()-1).iloc[-1])*100).round(2))
x=[str(i) for i in range(2011,2022)]
y=[str(i)+'月' for i in range(1,13)]
v= [[i,j,sh[str(2011+i)+'-'+str(1+j)]] for i in range(11for j in range(12)]
plot.chart_heatmap(x,y,v,title='上證指數(shù)月度收益率')

圖片

plot.chart_heatmap_color(x,y,v,title='上證綜指月度收益率')

圖片

018
地圖













chart_map(data=None, x=None, y=None, data_pair=None, title=None, notebook=True)





df=qs.realtime_data('地域')
df['名稱']=df['名稱'].apply(lambda s:s[:-2if s.endswith('板塊'else s)
#df.head()
#地域板塊最新價格指數(shù)
plot.chart_map(df,x='名稱',y='最新')

圖片

019
詞云圖













chart_wordcloud(data, title=None, notebook=True)





txt=qs.news_data('cctv',start='20221020',end='20221021')
#缺失值處理,,轉(zhuǎn)為str格式
txt_list=''.join(list(txt.content.apply(lambda s:str(s))))
#使用jieba處理分詞并轉(zhuǎn)為詞云格式數(shù)據(jù)
c_data=plot.cloud_data(txt_list)
#畫詞云圖
plot.chart_wordcloud(c_data)

圖片

圖片
關(guān)于Python金融量化
圖片

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多