趙步祥 楊德平
摘要:為開發(fā)一個(gè)供股票從業(yè)者和研究人員使用的股票預(yù)測(cè)工具,本文對(duì)基于Matlab GUI的股票價(jià)格走勢(shì)模擬系統(tǒng)進(jìn)行開發(fā)。通過(guò)對(duì)股票市場(chǎng)的特點(diǎn)、預(yù)測(cè)模型的種類及相關(guān)變量等方面的調(diào)研,選取隨機(jī)游走模型、一般化的維納過(guò)程模型、幾何布朗運(yùn)動(dòng)模型及含跳躍影響模型來(lái)模擬股票價(jià)格走勢(shì),開發(fā)了具有功能的Matlab GUI系統(tǒng),用作股票分析的工具。研究結(jié)果表明,隨機(jī)游動(dòng)模型價(jià)格具有不確定性,而對(duì)于幾何布朗運(yùn)動(dòng)和含跳躍維納過(guò)程,雖然單次模擬價(jià)格具有隨機(jī)性,但多次模擬具有一定程度的確定性。開發(fā)的界面操作簡(jiǎn)單,避免了繁瑣的建模計(jì)算過(guò)程,方便股票市場(chǎng)參與者使用。該研究具有一定的應(yīng)用前景。
關(guān)鍵詞:隨機(jī)游走; 維納過(guò)程; 幾何布朗運(yùn)動(dòng); 跳躍影響; 圖形用戶界面
中圖分類號(hào): F830.91; TP317.4文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 1006-9798(2020)02-0116-09; DOI: 10.13306/j.1006-9798.2020.02.018
股票價(jià)格是由市場(chǎng)的每個(gè)參與者共同決定,但由于各個(gè)參與者行為的不可預(yù)測(cè)性,一般認(rèn)為股票市場(chǎng)是混沌的,股票價(jià)格難以預(yù)測(cè),且其價(jià)格還受到經(jīng)濟(jì)等其他因素的影響,包括貨幣供給與需求、失業(yè)率、通脹及經(jīng)濟(jì)周期等。針對(duì)股票價(jià)格波動(dòng)的特點(diǎn),合理準(zhǔn)確的預(yù)測(cè)股市股票價(jià)格的變化趨勢(shì)成為許多學(xué)者主要研究的方向。關(guān)淞瀚[1]通過(guò)歸納發(fā)達(dá)國(guó)家股票市場(chǎng)的特點(diǎn),認(rèn)為發(fā)達(dá)國(guó)家的股票更好預(yù)測(cè);李緗珍[2]認(rèn)為短期的股票市場(chǎng)趨勢(shì)預(yù)測(cè)對(duì)政府管理證券市場(chǎng)有重要意義;劉平等人[3]認(rèn)為股票市場(chǎng)的不穩(wěn)定來(lái)源于價(jià)格波動(dòng)的非線性和時(shí)變性等特點(diǎn);陳婕[4]認(rèn)為股票投資者買賣的依據(jù)是自己的預(yù)期,但投資者的決策還受許多其他非理性因素的影響,這降低了預(yù)測(cè)模型的準(zhǔn)確性;王春峰等人[5]認(rèn)為所有預(yù)測(cè)模型的前提是未來(lái)金融市場(chǎng)波動(dòng)模式與過(guò)去相同,即市場(chǎng)風(fēng)險(xiǎn)測(cè)量的核心是對(duì)過(guò)去收益率波動(dòng)性的估計(jì);楊克磊等人[6]比較了深圳股市和上海股市的波動(dòng)特點(diǎn),認(rèn)為上海股市風(fēng)險(xiǎn)較高;楊光藝[7]認(rèn)為預(yù)測(cè)模型的預(yù)測(cè)變量在熊市和牛市中有不同的意義。關(guān)于預(yù)測(cè)模型的研究,劉光強(qiáng)[8]建立了中國(guó)股市的高頻波動(dòng)預(yù)測(cè)模型,發(fā)現(xiàn)自回歸搜索(autoregressive quest,ARQ)模型和異質(zhì)自回歸搜索(heterogeneous autoregressive quest,HARQ)模型有很高的準(zhǔn)確度;姜富偉[9]發(fā)現(xiàn)中國(guó)的投資組合具有顯著的樣本外和樣本內(nèi)可預(yù)測(cè)性;張斌[10]認(rèn)為數(shù)據(jù)的波動(dòng)類型會(huì)影響模型的準(zhǔn)確性;沈巍[11]認(rèn)為現(xiàn)階段的預(yù)測(cè)模型存在無(wú)法加入非量化因素等問(wèn)題;蔣志強(qiáng)等人[12]認(rèn)為中國(guó)股市收益率是可預(yù)測(cè)的,但是各投資組合的可預(yù)測(cè)性在不同股市狀態(tài)下存在差異等;周孝華[13]在股票運(yùn)動(dòng)混沌性假設(shè)的基礎(chǔ)上,分析布朗運(yùn)動(dòng)與分形布朗運(yùn)動(dòng)的仿真過(guò)程,首次提出并論述了分形布朗運(yùn)動(dòng)是股價(jià)行為的高度逼真;郭精軍[14]用分式布朗運(yùn)動(dòng)模擬上證指數(shù),得到了很好的預(yù)測(cè)精度;張永東[15]使用指數(shù)平滑模型對(duì)上海股市的股票進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果優(yōu)于其他模型;謝琪等人[16-18]采用神經(jīng)網(wǎng)絡(luò)模型對(duì)股票價(jià)格進(jìn)行預(yù)測(cè);盧嘉澍等人[19-20]采用馬爾科夫鏈預(yù)測(cè)模型對(duì)股票價(jià)格進(jìn)行模擬。近年來(lái),圖形用戶界面(graphical user interface,GUI)受到了股票參與者的青睞,它可以根據(jù)股票特點(diǎn)調(diào)整參數(shù),設(shè)計(jì)出針對(duì)性強(qiáng)的股票分析預(yù)測(cè)界面,楊曉等人[21]基于Matlab GUI,開發(fā)了馬氏鏈股價(jià)預(yù)測(cè)系統(tǒng)用于經(jīng)濟(jì)領(lǐng)域。因此,本文在總結(jié)了股票預(yù)測(cè)模型研究現(xiàn)狀的基礎(chǔ)上,對(duì)基于Matlab GUI的股票價(jià)格走勢(shì)模擬系統(tǒng)進(jìn)行開發(fā),設(shè)計(jì)了一個(gè)提供幾種預(yù)測(cè)模型的GUI界面,用作股票分析的工具。該設(shè)計(jì)組合界面操作簡(jiǎn)單友好,避免了繁瑣的建模計(jì)算過(guò)程。該研究對(duì)股票市場(chǎng)參與者具有重要的應(yīng)用價(jià)值。
1模型理論
1.1對(duì)數(shù)收益率模型
多期股票對(duì)數(shù)收益率為
1.2隨機(jī)游走模型
價(jià)格隨機(jī)模型的基本形式為
式中,μ為股票的年預(yù)期收益率;σ為股票價(jià)格年波動(dòng)率。
1.3一般化的維納過(guò)程模型
一般化維納過(guò)程的基本形式為
式中,ΔS表示股票價(jià)格S在很小的時(shí)間間隔Δt中的變化。若初始時(shí)刻t=0,股票價(jià)格為S0,則t時(shí)刻的價(jià)格St可表示為
1.4幾何布朗運(yùn)動(dòng)模型
當(dāng)研究不支付股息的股票時(shí),其價(jià)格的變化特征可表示為
由于dW為維納過(guò)程中不可預(yù)測(cè)項(xiàng),且(dW)2=ε2dt,ε~N(0,1)。t時(shí)刻價(jià)格St的離散模型可表示為
1.5含跳躍影響模型
在研究含有跳躍因素影響股票時(shí),其價(jià)格的變化特征可表示為
式中,k為t時(shí)段跳躍次數(shù);Ni(t)為St的第i個(gè)跳躍觸發(fā)St在t時(shí)刻發(fā)生跳躍的計(jì)數(shù)過(guò)程,是服從參數(shù)為λit的泊松過(guò)程,即
Ui是在時(shí)間間隔為hi,方差為σ2i上的隨機(jī)跳躍幅度,其滿足
設(shè)T為觀察周期長(zhǎng)度,按等時(shí)間間隔觀察n次,即h=T/n,則第i次的價(jià)格表示為Sih(i=1,2,…,n)。當(dāng)時(shí)間間隔h足夠小時(shí),這樣能保證每一個(gè)間隔內(nèi)至多發(fā)生一次跳躍,此時(shí)模型的離散形式為
其中,I|Nih-N(i-1)h=1|為示性函數(shù),表示在第i時(shí)段上發(fā)生跳躍時(shí)取值為1,否則取值為0。
2界面開發(fā)
2.1界面組成與布局
本界面主要利用對(duì)數(shù)收益率模擬價(jià)格法,隨機(jī)游走、布朗運(yùn)動(dòng)等方法模擬股票價(jià)格走勢(shì),包含輸入數(shù)據(jù)、模型觸控按鈕和顯示模擬圖等控件,股票價(jià)格走勢(shì)模擬功能界面如圖所1示。
2.2控件屬性設(shè)計(jì)
本界面由10個(gè)靜態(tài)文本框、2個(gè)面板、6個(gè)按鈕、8個(gè)可編輯文本框和2個(gè)坐標(biāo)軸組成。控件屬性設(shè)計(jì)如表1所示。
2.3程序設(shè)計(jì)
1)[對(duì)數(shù)收益率模擬價(jià)格法]按鈕回調(diào)函數(shù)。
function duishushouyilvfa_Callback(hObject,eventdata,handles)
globalPrice0musigmaMN
Price0=str2num(get(handles.chushijiage,'string'));%初始價(jià)格
N=str2num(get(handles.monitianshu,'string')); %模擬交易日天數(shù)
mu=str2num(get(handles.yuqishouyilv,'string')); %預(yù)期收益率
sigma=str2num(get(handles.yuqibodonglv,'string'));%預(yù)期波動(dòng)率
M=str2num(get(handles.monicishu,'string'));%模擬次數(shù)
n=240;%假設(shè)一年有240個(gè)交易日
MU=(1+mu)^(1/n)-1;%年收益率轉(zhuǎn)換成日收益率
SIGMA=sigma/sqrt(n) ;%年波動(dòng)率轉(zhuǎn)換成日波動(dòng)率(近似)
PRICE=[]; %存儲(chǔ)價(jià)格模擬值
for j=1:M
Rate=normrnd(MU,SIGMA,N,1) ; %隨機(jī)產(chǎn)生N個(gè)正態(tài)分布隨機(jī)數(shù)
S=Price0*exp(cumsum(Rate)) ;%計(jì)算各交易日的價(jià)格
PRICE=[PRICE,S];
end
Pmean=mean(PRICE,2);
axes(handles.axes1);
cla(handles.axes1)%清除坐標(biāo)軸信息
x=1:N;
plot(x,PRICE(:,1))%繪制一次模擬價(jià)格走勢(shì)
xlabel('時(shí)間') ;ylabel('價(jià)格');
axes(handles.axes2);
cla(handles.axes2) %清除坐標(biāo)軸信息
plot(x,Pmean) %繪制模擬價(jià)格整體走勢(shì)圖
xlabel('時(shí)間');ylabel('均值價(jià)格');
guidata(hObject, handles);
其它主要按鈕的回調(diào)函數(shù)主要代碼如下:
2)[隨機(jī)游走運(yùn)動(dòng)]按鈕回調(diào)函數(shù)。
function suijiyouzou_Callback(hObject,eventdata, handles)
global Price0musigmaMN
PRICE=[];%存放價(jià)格模擬值
for j=1:M
e=normrnd(0,1,N,1);%隨機(jī)產(chǎn)生N個(gè)正態(tài)分布隨機(jī)數(shù)
S(1)=Price0+e(1);
for i=2:N
S(i)=S(i-1)+e(i);%計(jì)算各交易日的價(jià)格
end
PRICE=[PRICE;S];
end
3)[幾何布朗運(yùn)動(dòng)]按鈕回調(diào)函數(shù)。
function jihebulang_Callback(hObject,eventdata, handles)
globalPrice0musigmaMN
T=1;%設(shè)時(shí)間周期長(zhǎng)度為1
h=T./N;%時(shí)間間隔長(zhǎng)度
PRICE=[]; %存放價(jià)格模擬值
for j=1:M
e=normrnd(0,1,N,1); %隨機(jī)產(chǎn)生N個(gè)正態(tài)分布隨機(jī)數(shù)
S(1)=Price0*exp(mu*h+sigma*sqrt(h)*e(1));
for i=2:N
S(i)=S(i-1)*exp(mu*h+sigma*sqrt(h)*e(i)); %計(jì)算各時(shí)刻的價(jià)格
end
PRICE=[PRICE;S];
end
4)[一般化維納過(guò)程]按鈕回調(diào)函數(shù)。
function yibanhuaweina_Callback(hObject,eventdata,handles)
globalPrice0musigmaMN
T=1; h=T./N;PRICE=[];
for j=1:M
e=normrnd(0,1,N,1); %隨機(jī)產(chǎn)生N個(gè)正態(tài)分布隨機(jī)數(shù)
S(1)=Price0+mu*h+sigma*sqrt(h)*e(1);
for i=2:N
S(i)=S(i-1)+mu*h+sigma*sqrt(h)*e(i); %計(jì)算各時(shí)刻的價(jià)格
end
PRICE=[PRICE;S];
end
5)[含跳躍維納過(guò)程]按鈕回調(diào)函數(shù)。
function hantiaoyueweina_Callback(hObject,eventdata, handles)
global Price0musigmaMN
SIGMA=str2num(get(handles.tiaoyuebodonglv,'string'));%跳躍波動(dòng)率
p=str2num(get(handles.tiaoyuegailv,'string')); %跳躍概率
Lambda=str2num(get(handles.tiaoyuefudu,'string'));%跳躍幅度
T=1;h=T./N;PRICE=[];
for j=1:M
%產(chǎn)生每個(gè)時(shí)間段上維納過(guò)程隨機(jī)數(shù)
e=normrnd(0,1,N,1);%利用參數(shù)為1的二項(xiàng)分布隨機(jī)數(shù)取得示性函數(shù)
I=binornd(1,p,N,1);%產(chǎn)生每個(gè)時(shí)間段上跳躍事件發(fā)生的幅度并計(jì)算價(jià)格
V=normrnd(log(1+h)-SIGMA^2/2,SIGMA^2,N,1);
U=exp(V)-1;
S(1)=Price0+Price0*((mu-(Lambda*h)*I(1))*h+sigma*sqrt(h)*e(1)+U(1)*I(1));
for i=2:N
S(i)=S(i-1)*(1+((mu-(Lambda*h)*I(i))*h+sigma*sqrt(h)*e(i)+U(i).*I(i)));
end
PRICE=[PRICE;S];
end
3系統(tǒng)應(yīng)用
1)隨機(jī)游走運(yùn)動(dòng)模擬只需初始價(jià)格、模擬天數(shù)和模擬次數(shù)3個(gè)輸入量,隨機(jī)游走運(yùn)動(dòng)模擬如圖2所示。
2)幾何布朗運(yùn)動(dòng)、一般化維納過(guò)程、對(duì)數(shù)收益率模擬價(jià)格法需要初始價(jià)格、模擬天數(shù)、模擬次數(shù)、預(yù)期收益率和預(yù)期波動(dòng)率5個(gè)輸入量,幾何布朗運(yùn)動(dòng)模擬如圖3所示。
3)含跳躍維納過(guò)程模擬需要界面全部輸入量,含跳躍維納過(guò)程模擬如圖4所示。
由圖2~圖4可以看出,只要給出模型的輸入變量,系統(tǒng)界面就會(huì)方便快捷地呈現(xiàn)出股票價(jià)格走勢(shì)的模擬結(jié)果。從單次模擬和多次模擬平均結(jié)果可以看出,隨機(jī)游走模擬價(jià)格都具有一定的波動(dòng)性,說(shuō)明隨機(jī)游動(dòng)模型模擬結(jié)果具有不確定性;而幾何布朗運(yùn)動(dòng)和含跳躍維納過(guò)程的模擬結(jié)果,雖單次模擬價(jià)格具有隨機(jī)性,但從多次模擬平均結(jié)果來(lái)看具有一定的確定性。
4結(jié)束語(yǔ)
本文對(duì)基于Matlab GUI的股票價(jià)格走勢(shì)模擬系統(tǒng)進(jìn)行開發(fā),設(shè)計(jì)了一個(gè)用作股票分析的GUI界面。試驗(yàn)結(jié)果表明,不同的預(yù)測(cè)模型模擬的結(jié)果具有不同的確定性。由于股票波動(dòng)的混沌性,準(zhǔn)確預(yù)測(cè)股票信息非常困難,但是本設(shè)計(jì)依然能給股票從業(yè)者提供參考價(jià)值。本文的不足之處是未對(duì)不同模型的適用條件進(jìn)行詳細(xì)劃分,給理論基礎(chǔ)不足的從業(yè)者帶來(lái)不便,但是本設(shè)計(jì)依然具有應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]關(guān)淞瀚. 淺析股票市場(chǎng)的可預(yù)測(cè)性[J]. 中國(guó)商論, 2018(26): 28-29.
[2]李緗珍. 股票市場(chǎng)短期趨勢(shì)的離散分類預(yù)測(cè)模型研究[J]. 經(jīng)濟(jì)研究導(dǎo)刊, 2019(26): 136-140.
[3]劉平, 于重重, 蘇維均, 等. 股票價(jià)格市場(chǎng)波動(dòng)優(yōu)化預(yù)測(cè)仿真研究[J]. 計(jì)算機(jī)仿真, 2018, 35(8): 179-183.
[4]陳婕. 技術(shù)分析有效性的實(shí)證研究[J]. 現(xiàn)代商業(yè), 2014 (30): 201-201, 202.
[5]王春峰, 張慶翠. 中國(guó)股市波動(dòng)性過(guò)程中的長(zhǎng)期記憶性實(shí)證研究[J]. 系統(tǒng)工程, 2004, 22(1): 78-83.
[6]楊克磊, 毛明來(lái), 徐正國(guó). 隨機(jī)波動(dòng)模型的滬深股市比較研究[J]. 天津大學(xué)學(xué)報(bào): 社會(huì)科學(xué)版, 2004, 6(4): 334-338.
[7]楊光藝. 中國(guó)股市可預(yù)測(cè)性的穩(wěn)健性檢驗(yàn)[J]. 金融發(fā)展研究, 2018(12): 3-9.
[8]劉光強(qiáng). 我國(guó)股票市場(chǎng)高頻波動(dòng)預(yù)測(cè)研究——基于ARQ及HARQ模型的實(shí)證分析[J]. 西南交通大學(xué)學(xué)報(bào): 社會(huì)科學(xué)版, 2017, 18(4): 82-87.
[9]姜富偉, 徐俊, David E. Rapach, 等. 中國(guó)股票市場(chǎng)可預(yù)測(cè)性的實(shí)證研究[J]. 金融研究, 2011(9): 107-121.
[10]張斌. 基于回聲狀態(tài)網(wǎng)絡(luò)的短期股價(jià)預(yù)測(cè)模型[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2017, 34(5): 268-272, 333.
[11]沈巍. 股票價(jià)格預(yù)測(cè)模型研究[J]. 財(cái)經(jīng)問(wèn)題研究, 2009(7): 89-93.
[12]蔣志強(qiáng), 田婧雯, 周煒星. 中國(guó)股票市場(chǎng)收益率的可預(yù)測(cè)性研究[J]. 管理科學(xué)學(xué)報(bào), 2019, 22(4): 92-109.
[13]周孝華. 一種股票價(jià)格行為模式的一般化——從布朗運(yùn)動(dòng)到分形布朗運(yùn)動(dòng)[J]. 桂林電子工業(yè)學(xué)院學(xué)報(bào), 2000, 20(4): 95-99.
[14]郭精軍, 田婧. 分式布朗運(yùn)動(dòng)模型下的金融市場(chǎng)風(fēng)險(xiǎn)度量——以上證指數(shù)為例[J]. 蘭州商學(xué)院學(xué)報(bào), 2014, 30(2): 89-94.
[15]張永東, 畢秋香. 上海股市波動(dòng)性預(yù)測(cè)模型的實(shí)證比較[J]. 管理工程學(xué)報(bào), 2003, 17(2): 16-19.
[16]謝琪, 程耕國(guó), 徐旭. 基于神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)股票預(yù)測(cè)模型的研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2019, 55(8): 238-243.
[17]楊進(jìn), 陳亮. 基于小波神經(jīng)網(wǎng)絡(luò)與ARIMA組合模型在股票預(yù)測(cè)中的應(yīng)用[J]. 經(jīng)濟(jì)數(shù)學(xué), 2018, 35(2): 62-67.
[18]曹雷欣, 孫紅兵. 基于灰色神經(jīng)網(wǎng)絡(luò)的股票收益率預(yù)測(cè)[J]. 計(jì)算機(jī)與數(shù)字工程, 2017, 45(1): 24-28.
[19]盧嘉澍, 孫坤, 廉潔, 等. 基于灰度預(yù)測(cè)與馬爾柯夫過(guò)程的股票價(jià)格預(yù)測(cè)模型[J]. 現(xiàn)代商業(yè), 2017(17): 74-75.
[20]嚴(yán)龍, 林叢, 朱佳慧. 馬爾科夫鏈在金融投資中的應(yīng)用[J]. 寧波工程學(xué)院學(xué)報(bào), 2017, 29(4): 1-8.
[21]楊曉, 楊德平. 基于Matlab圖形用戶界面的馬氏鏈股價(jià)預(yù)測(cè)系統(tǒng)開發(fā)[J]. 青島大學(xué)學(xué)報(bào): 工程技術(shù)版, 2015, 30(3): 43-49, 69.
Development of the Stock Price Trend Simulation System Based on Matlab GUI
ZHAO Buxiang, YANG Deping
(School of Economics, Qingdao University, Qingdao 266071, China)
Abstract:In order to develop a stock forecasting tool for stock practitioners and researchers, this paper develops a stock price simulation system based on Matlab GUI. By investigating the characteristics of the stock market, the types of forecasting models and the related variables, this paper selects random walk model, generalized Vinax process model, Geometric Brownian motion model and jump influence model to simulate the Stock Price Trend, and develops a Matlab GUI system with function as a tool for stock analysis. The results show that the price of the random walk model is uncertain, and for the Geometric Brownian motion and Vinax process with jumps, the price of a single simulation is stochastic, but the price of multiple simulation is certain. The interface is easy to operate, avoids the tedious modeling and calculation process, and is convenient for the participants of the stock market. This study has a promising application prospect.
Key words:random walk; wiener process; geometric Brownian motion; jump effect; GUI
收稿日期: 2019-12-17; 修回日期: 2020-02-15
作者簡(jiǎn)介: 趙步祥(1990-),男,碩士研究生,主要研究方向?yàn)榻?jīng)濟(jì)數(shù)理方法。
通信作者: 楊德平(1963-),男,副教授,碩士生導(dǎo)師,主要研究方向?yàn)榻鹑谟?jì)量。 Email: qduydp@126.com
青島大學(xué)學(xué)報(bào)(工程技術(shù)版)2020年2期