第四章 股票市场数据库之特殊用法
<回「入门讲义」>
4.1
股票市场数据库使用上的特点
第二章介绍的基本检索数据方法可适用于一般 AREMOS/Windows 数据库。但「台湾股票市场数据库」较特殊,在使用上稍有一点变化。特别在本章中讲解。
就数据检索而言,股票市场数据库有三个特点:
(1)「日数据之检索」:股票市场资料主要是「日」 (d)频率在操作上有关 per 的设定略有不同。
STOCK70:含 1971 年 1 月 1 日-1979 年 12 月 31 日。
STOCK80:含 1980 年 1 月 1 日-1989 年 12 月 31 日。
STOCK90:含 1990 年 1 月 1 日-1999 年 12 月 31 日。
STOCK00:含 2000 年 1 月 1 日-目前。
因此,如果需要检索跨越不同计算机文件的时间序列,在方法上很不相同。
(3)「collapse(or
conv) 方法的设定」:在第二章范例(三)已介绍 collapse 指令可叫取数据并同时转换成不同频率。但日数据一定要先 collapse 成月资料,才能再继续 collapse 成季或年资料。AREMOS/Windows 无法由日数据直接 conv 成季或年数据。 以下我们已三个实际范例来说明股票市场数据库的使用方法。
4.2
范例(四):检索时间序列日数据
假定我们要叫取 1976 年 1 月 1 日至 3 月 15 日之「台泥收盘价」、「台泥成交量」及「发行量加权股价指数」等三笔资料。由「EPS/AREMOS
台湾股票市场数据库检索手册」查知其检索代号分别为:s1101@cl,s1101@vol,js。进入 AREMOS/Windows 后,其操作鼠标如下:
(1)Options
→ Set → Period → (Frequency:Daily, From 1976:1:1 to 1976:3:15) →
OK
(2)Data
→ Bank → Open → Files → 磁盘驱动器(看看自己的数据库在哪一槽)
→stock70.bnk → 确定 → Open → Cancel 跳回主画面
(3)Report
→ Print → 键入指令 s1101@cl, s1101@vol, js (在 Expression 处) →
Execute
说明: (1)此指令设定频率为「日」(d),期间是 1976 年 1 月 1 日至 1976 年 3 月 15 日(1976:1:1 1976:3:15)。这是 AREMOS/Windows特定要求的期间设定方法,一定要年:月:日。此外,AREMOS/Windows 也接受 1976d1 1976d75,代表 1976 年第 1 天至 1976 年第 75 天。
4.3
范例(五):跨数据库之时间序列检索方法
假定我们要叫取「台凤收盘价」与「国寿收盘价」两笔资料,期间是 1989 年 12 月 1 日到 1990 年 1 月 20 日。由「检索手册」查知此二笔数据之检索代号为
s1206@cl 与 s2805@cl。由于所要叫取的期间跨越 1989 年与 1990 年,1989 年部分数据存于stock80,而 1990 年部分则存于 stock90,因此检索方法略有变化。假定我们已进入 AREMOS/Windows,操作鼠标如下:
(1)Options
→ Set → Period → (Frequency: Daily, From 1989:12:1 to 1990:1:20)
→ OK (2)Data
→ Bank → Open → Files → 磁盘驱动器(看看数据那一槽) →分别叫取 stock80.bnk
和
stock90.bnk → 确定 → Open → Cancel 跳回主画面
(3)键入指令 series<1989:12:1
1989:12:31>x1=stock80:s1206@cl; (在主画面 Aremos Command 下)
(4)键入指令 series<1990:1:1
1990:1:20>x1=stock90:s1206@cl;
(5)键入指令 series<1989:12:1
1989:12:31>x2=stock80:s2805@cl;
(6)键入指令 series<1990:1:1
1990:1:20>x2=stock90:s2805@cl;
(7)键入指令 print<dec
2>x1,x2;
说明:
(1):此操作是在设定频率与期间。见范例(四)之说明。
(3):series 指令可让我们产生一个新的 series,在此这个新 series 命名为 x1,而所产生的 x1 会自动存在我们「目前所运作」的 bank 里(AREMOS 术语称此为 primary
bank)。通常我们一进入 AREMOS/Windows,即会进入一个 primary
bank。除非您别有指定,此 primary bank 通常叫做 work bank。在运作过程中,如有产生任何新 series(或任何新的 object),都会自动存放在 work
bank里。series x1=stock80:s1206@cl 乃是产生一个新 series,名叫 x1,而其值在所设定的期间内等于 stock80 里的
s1206@cl。为何要特别指定 stock80?因为 stock90 数据库里亦有
s1206@cl,故需以「bankname:」来指定那一个 bank 里的 s1206@cl。在<
>里指定期间为 stock80 所涵盖之部分,及 1989:12:1 到 1989:12:31。因为 stock80 仅含我们所需要之 1989 年部分数据,如果不把期间如此设定来执行 series 指令,会产生一大堆 missing(m) 值。使用<
>来设定 per,是 local setting,其设定时效仅限于此指令。在第(1)式里使用set 方式设定 per 则是 global
setting,其时效会继续为维持下去,除非你再到 Set
Frequency & Period 画面去重新设定。(有关 global与 local
setting 请参考第 6 章 6.2 节)。注意:local 设定 period,不需打 per
1989:12:1 1989:12:31,只打 1989:12:1 1989:12:31 即可。
(4):此指令在 local 所设定的期间内(即 1990:1:1 到 1990:1:20)给予 x1 值,而令其值为 stock90 里之 s1206@cl。我们以<
>设定期间为 1990:1:1 到 1990:1:20 乃 stock90 所涵盖部分。执行完此指令,我们在 work
bank 里产生了一个完整的时间序叫 x1,其在 global 所设定的期间内( 1989 年 12 月 1 日至 1990 年 1 月 20 日)含有由数据库 stock80 与 stock90 所叫取出之台凤收盘价 (s1206@cl)。
(5)(6):见(3)(4)之说明。执行完此 2 个指令,我们产生了一个完整的时间序列叫 x2,代表国寿收盘价 (s2805@cl)。
(7):此指令可印出数据。由于我们已回到 global setting,因此所印出的期间为第(1)式所 set 之 1989:12:1 到 1990:1:20。在此以<dex
2>设定印出小数点后两位。
<回页首>
4.4
范例(六):转换日数据之频率并做回归分析
假定我们要对发行量加权股价指数(检索代号 js )与国内生产毛额 (gdp)、侠义货币供给额 (m1a) 与一月期定期存款利率(rmtd@1st) 进行回归计量分析。分析频率是季 (q),期间为 1971 年第 1 季到 1991 年第 4 季(1971:1
1991:4)。我们也已知 gdp,m1a与 rmtd1@1st 分别存于 AREMOS/Windows 经济统计数据库系统里另外两个数据库:gdp 在国民所得季数据库(库名:niaq),m1a
与rmtd1@1st 则在金融统计数据库(库名:fsm)。其操作鼠标如下:
(1)Options
→ Set → Period → (Frequency:Monthly, From 1971:1 to 1991:12) →
OK
(2)Data
→ Bank → Files → 磁盘驱动器(看看数据库放在那一槽)
→ stock70.bnk
, stock80.bnk, stock90.bnk → 确定 → Open → Cancel跳回主画面
(3)键入指令 conv<1971:1
1979:12 tolerate=99>js=stock70:js.d ave;
(4)键入指令 conv<1980:1
1989:12 tolerate=99>js=stock80:js.d ave;
(5)键入指令 conv<1990:1
1991:12 tolerate=99>js=stock90:js.d ave;
(6)Options
→ Set → Period → (Frequency:Quarterly, From 1971:1 to 1991:4) →
OK
(7)键入指令 conv
js=js.m ave; (8)Data → Bank → Open → Files →磁盘驱动器(看看数据库放在那一槽) →分别叫取 niaq.bnk 和 fsm.bnk → 确定 → Open → Cancel跳回主画面
(9)键入指令 conv
m1a=m1a.m ave;
(10)
Econ → Equation → OLS → 键入 equ1 (在 Name 处) → 键入 js (在 Dependent 处)
→ 键入 gdp (在 Independent 处) → Execute
(11)
Econ → Equation → OLS → 键入 equ2 (在 Name 处) → 键入 js (在 Dependent 处)
→ 键入 m1a (在 Independent 处) → Execute
(12)
键入指令 conv rmtd1@1st@f=rmtd1@1st@f.m ave;
(13)
Econ → Equation → OLS → 键入 equ3 (在 Name 处) → 键入 js (在 Dependent 处)
→ 键入 m1a,rmtd1@1st@f (在Independent 处) → Execute
说明:
(1):js 在数据库里是日数据。AREMOS/Windows 无法直接由日数据 conv 成季数据,需先 conv 成月数据,再由月数据 conv成季数据。此指令先 globally 设定月的频率与期间。
(3):conv 指令把数据库里的日数据找取出来转换成目前所设定的月频率,而再 work
bank 里形成一个新的月资料 series,也取名叫 js。由于是跨数据库数据,正如范例(五),必须分 3 个指令来执行。本指令限于从 stock70 转换出 1971 年 1 月到 1979 年 12 月 (1971:1
1979:12) 期间的资料。在< >里 locally 设定 1971:1 1979:12 期间乃是 stock70 所涵盖部分。
注:tolerate=99 是因转换日数据当中可能期间会有 na 的情况(如星期天不交易,所以没有值);如此计算机语言可略过 na 做转换,最大的容忍度是 99 设定值。
(4)(5):此二指令各从 stock80,stock90 转换出所需的 js 数据。在<
>里 local 设定 stock80 与 stock90 各自所涵盖的期间。执行至此,我们的 work
bank 里已存在一笔月数据,名叫 js,期间是 1971 年 1 月到 1991 年 12 月。
(6):global 设定季频率与期间。
(7):把 work bank 里的 js 月资料(以 js.m 代表)转换成季数据。执行完此指令,我们 work
bank 里多了一笔 series,即是 js.q季资料。对 AREMOS 而言,js.m 与 js.q 是两个不同的 objects。
(8)(9)(10)(11)(12)(13):参考前面范例(三)之说明。
<回页首>
4.5
有关「上市公司股票报酬率统计数据库」
由于 AREMOS/Windows 能处理日数据之长度有限制,因此「上市公司股票报酬率统计数据库」也分 4 个档案储存:
(1)STOCKRR:含所有年、季、月与周数据。
(2)STOCKRR7:含 1972 年 1 月 1 日 - 1979 年 12 月 31 日之日资料。
(3)STOCKRR8:含 1980 年 1 月 1 日 - 1989 年 12 月 31 日之日资料。
(4)STOCKRR9:含 1990 年 1 月 1 日 - 目前更新之日资料。
读者如要对日数据作跨数据库之检索,可参考本章 4.3 节范例(五)的操作方法。
此数据库数据之检索代号亦采组合方式,例入「台积电的周报率」为
s2330@wrr,其中 2330 为「台积电」的公司代号,wrr 代表 weekly
rate of return。又如「南亚的日报酬率」为 s1303@drr 其中 1303 为「南亚」的公司代号,drr 则代表 daily
rate of return,以此类推。详细可参考本数据库之检索手册简介。 <回页首> <回入门讲义> |