章  股票市场数据库之特殊用法

<回「入门讲义」>

 

4.1  股票市场数据库使用上的特点

第二章介绍的基本检索数据方法可适用于一般 AREMOS/Windows 数据库。但「台湾股票市场数据库」较特殊,在使用上稍有一点变化。特别在本章中讲解。

就数据检索而言,股票市场数据库有三个特点:

    (1)「日数据之检索」:股票市场资料主要是「日」 (d)频率在操作上有关 per 的设定略有不同。
            (2)「跨数据库之检索」:由于股票市场数据库数据量过于庞大,我们分三个计算机文件储存:

    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 所涵盖部分。
                     在此指令中,数据库里的原始日数据必须写明其「完整名称」bankname:objectname.versionname (亦即 stock70:js.d)。有两个原因:(i)我们需要标明 bankname:(stock70:),因为在已 open 的另外两个数据库(即 stock80,stock90)中存放有同一  objectname(js) 之资料。(ii)我们也必须标明 versionname (即频率 .d),因为目前所设 freq 是 m,而原始数据是日数据。如果不标明 js.d,计算机会当作 js.m 来处理,但 stock70 里并无 js.m 这笔资料。一般说来,使用 collapse 指令一定要标明「被 collapse」数据的 versionname。在范例(三)已碰过此种情形。

    注: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,以此类推。详细可参考本数据库之检索手册简介。

 <回页首>

<回入门讲义>