楼主: 飘零的枫叶
47470 206

[问答] 用lingo软件如何对DEA-DA模型进行编程 [推广有奖]

41
epoh 发表于 2011-7-19 10:31:54 |只看作者 |坛友微信交流群
当下载一个.ssc file,要使用时,
最好先打开看看,需要配合的函数数据
就以为例checkSV.ssc
需要用到ssfnong.ssc,sv_mcl_est.ssc,module("finmetrics")
以及数据svpdx.dat
所以我把底下这几行加在checkSV.ssc的前面,
svpdx.dat=read.table("c:/checkSV/svpdx.dat")
source("c:/checkSV/ssfnong.ssc")
source("c:/checkSV/sv_mcl_est.ssc")
module("finmetrics")

执行的方式有两种:
1.source("c:/checkSV/checkSV.ssc")

2.File \Open\checkSV.ssc,
     then from Script menu, choose run.

svpdx.dat,checkSV.ssc,ssfnong.ssc,sv_mcl_est.ssc
   checkSV.rar (15.83 KB)

###############
底下回答ywh19860616兄
.ssc是s-plus软件中自己编写的程序后缀名.(S-PLUS script)

HFLibrary.SSC 只是为了Analysis of High Frequency Financial Data

作者所写的函数集合.

HFAnalysis.ssc 是给数据,给参数的运行程序

如果你要安装s-plus package
程序如下:

install.pkgutils()


library(pkgutils)


install.packages("resample")


  http://home.comcast.net/~timhesterberg/bootstrap/

这里有很多s-plus package可供下载

  http://csan.insightful.com/



已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 非常感谢!
ywh19860616 + 5 + 5 + 5 谢谢epoh老师 那module和library有何区别呢?

总评分: 学术水平 + 10  热心指数 + 10  信用等级 + 10   查看全部评分

使用道具

42
zhangtao 发表于 2011-7-19 10:34:47 |只看作者 |坛友微信交流群
在HFLibrary.SSC中有以下几行:
reorderTS = function(x)
{
                x.pos = positions(x)
                x.data = seriesData(x)
       
                pos.order = order(x.pos)
                x.pos = x.pos[pos.order]
                x.data = sub(x.data, pos.order,)
所以我觉得这个程序运行的关键还是如何把HFLibrary.SSC载入?
我以上想法,希望epoh老师参考。
数学好就是要天天学

使用道具

43
zhangtao 发表于 2011-7-19 10:38:42 |只看作者 |坛友微信交流群
运行HFLibrary.SSC提示以下错误:
        # finishing "bracketing"
        nona.seqNum = c(0, nona.seqNum, x.row + 1)
        # NA duration is only defined for those blocks
        #(bracketed by two nonNAs) that have two or more
        # consecutive NAs, find them
        key.seqNum = nona.seqNum[c(F, diff(nona.seqNum) > 2)]
        key.seqNum.idx = match(key.seqNum, nona.seqNum)
        for(i in key.seqNum.idx) {
                dur.temp = duration(x.ts[(nona.seqNum[i - 1] + 1):(nona.seqNum[i] - 1),  ])
                ans[(nona.seqNum[i - 1] + 2):(nona.seqNum[i] - 1),  ] = cumsum(as.matrix(seriesData(dur.temp)
                        ))
        }
        ans = as.data.frame(ans)
        ans = timeSeries(ans, pos = x.pos)
}
Warning messages:
  Conflicting definitions of "aggregateSeries" on databases "C:\HFAnalysis" and  "splus"
数学好就是要天天学

使用道具

44
ywh19860616 发表于 2011-7-19 10:57:09 |只看作者 |坛友微信交流群
谢谢epoh老师,听您一说,和R很相似,只要把HFLibrary.SSC放在对应目录下就可以了,再用source调用

module和library有何区别呢?
pkgutils这个包是一个大类吗?
install.pkgutils()和install.packages(""pkgutils)都可以吧?
呵呵,这台电脑没有那软件,回去我试下



ps:这个分析高频数据,在finmetrics目录下有一个supplement指导文件,里面有详细运行说明
一份耕耘,一份收获。

使用道具

45
ywh19860616 发表于 2011-7-19 10:59:54 |只看作者 |坛友微信交流群
epoh老师,经常听到高频数据,您能不能直观解释一下什么时候用高频数据?高频数据有什么特征呢?
一份耕耘,一份收获。

使用道具

46
epoh 发表于 2011-7-19 11:05:30 |只看作者 |坛友微信交流群
zhangtao 兄
HFLibrary.SSC一开始就已载入
就是用他的function TAQLoad()
读取trade_msft.txt,quote_msft.txt,...
到了reorderTS ()才会产生错误
而这个错误信息也不是reorderTS
而是function sub()造成
这是s-plus的基本function
有可能是新旧版本的不同所造成

finmetrics 3.0 已经不用reorderTS
而是用seriesReorder: Correct ordering of dates in timeSeries

finmetrics 3.0 已经不用plotByDays
而是用dayPlot: trellisPlot of timeSeries by days

##############
source("c:/HFAnalysis/HFLibrary.ssc")
## Load the FinMetrics module
module("finmetrics", first=F)
#################### Section 2 Data Proceesing ####################################
### loading MSFT Trade data ####
msftt.ts = TAQLoad(file = "C:/HFAnalysis/trade_msft.txt",type = "trade", sep = "|", skip = 1)
msftt.ts[1:5,]
slotNames(msftt.ts)
[email=msftt.ts@data[1:5]msftt.ts@data[1:5[/email], ]
[email=msftt.ts@positions[1:5]msftt.ts@positions[1:5[/email]]
### loading MSFT Quote data ###
msftq.ts = TAQLoad(file = "C:/HFAnalysis/quote_msft.txt",type = "quote", sep = "|", skip = 1)
msftq.ts[1:5,]
### loading GE Trade data ####
get.ts = TAQLoad(file = "C:/HFAnalysis/trade_ge.txt",type = "trade", sep = "|", skip = 1)
get.ts[1:5,]      
### loading GE Quote data ###
geq.ts = TAQLoad(file = "C:/HFAnalysis/quote_ge.txt",type = "quote", sep = "|", skip = 1)
geq.ts[1:5,]
### loading USD/EUR data ###
eurusd.ts = OlsenLoad("C:/HFAnalysis/eur_usd.txt")
eurusd.ts[1:5,]
eurusd.ts[1:5, "Bid"]
################# Plotting
bid.May2 = msftq.ts[timeEvent("5/2/1997 09:30:00", "5/2/1997 16:00:00"),"Bid"]
ask.May2 = msftq.ts[timeEvent("5/2/1997 09:30:00", "5/2/1997 16:00:00"),"Ask"]
plot(bid.May2,ask.May2, main="Microsoft Bid and Ask Quotes",plot.args=list(lty=c(1,1), col=c(2,5)))
legend(0, 120.5, legend=c("Bid","Ask"), lty=c(1,1), col=c(2,5))
graphsheet()
trellisPlot(bid.May2,ask.May2, main="Microsoft Bid and Ask Quotes")
graphsheet()
###single panel plot
bidAsk.ts = seriesMerge(bid.May2, ask.May2)
trellisPlot(bidAsk.ts)
graphsheet()
####
msftt.ts = seriesReorder(msftt.ts)
msftq.ts = seriesReorder(msftq.ts)
get.ts = seriesReorder(get.ts)
geq.ts = seriesReorder(geq.ts)
eurusd.ts = seriesReorder(eurusd.ts)
####Day plots
dayPlot(msftt.ts[timeEvent("5/1/1997","5/8/1997"),"Price"], type="p",scales=list(y=list(relation="free")))
graphsheet()
dayPlot(eurusd.ts[timeEvent("3/11/2001","3/17/2001"), "Bid"], type="p",scales=list(y=list(relation="free")))

##########
就改到这里供你参考.
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 向大师致谢!

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

47
zhangtao 发表于 2011-7-19 17:44:13 |只看作者 |坛友微信交流群
运行附件中matlab程序,有以下错误提示,epoh老师,您看如何修改呢?非常感谢!!!

??? Error: File: F:\0计量经济学前沿\BEKK\full_bekk_mvgarch.m Line: 4 Column: 1
Function definitions are not permitted at the prompt or in scripts.

bekk111.rar

3.66 KB

数学好就是要天天学

使用道具

48
zhangtao 发表于 2011-7-19 17:47:05 |只看作者 |坛友微信交流群
另外,请问epoh老师,在splus8中如何调用GARCH-BEKK进行估计?最好有个例子。
附件中是mgarch.ssc程序,我没有hp.s和ibm.s数据,如果您有,能给我吗?
另外,如何装入数据和运行?
非常感谢!

mgarchssc.rar

5.09 KB

数学好就是要天天学

使用道具

49
zhangtao 发表于 2011-7-19 18:58:13 |只看作者 |坛友微信交流群
我添加了ibm.s and hp.s数据,为什么还提示以下错误?为什么还提示找不到ibm.s?
附件中有数据和程序。
> # MGARCH.ssc
> # Prepared for the MGARCH Chapter
> # Date: April 5, 2002
>
> hp.ibm=seriesMerge(hp.s,ibm.s)
Problem: Object "ibm.s" not found
Use traceback() to see the call stack
> tmp=acf(hp.ibm^2)

mgarchssc111.rar

8.78 KB

数学好就是要天天学

使用道具

50
epoh 发表于 2011-7-19 19:34:01 |只看作者 |坛友微信交流群
s-plus
Modelling Financial Time Series with S-PLUS
page 516/1016

module("finmetrics")
hp.ibm = seriesMerge(hp.s, ibm.s)
hp.ibm=100*hp.ibm
hp.ibm.bekk = mgarch(hp.ibm~-1, ~bekk(1,1))
hp.ibm.bekk

Call:
mgarch(formula.mean = hp.ibm ~ -1, formula.var =  ~ bekk(1, 1))
Mean Equation: structure(.Data = hp.ibm ~ -1, class = "formula")
Conditional Variance Equation: structure(.Data =  ~ bekk(1, 1),class = "formula")

Coefficients:

       A(1, 1)          0.74486
       A(2, 1)         -0.34202
       A(2, 2)          0.47969
ARCH(1; 1, 1)    0.20091
ARCH(1; 2, 1)   -0.02610
ARCH(1; 1, 2)   -0.05714
ARCH(1; 2, 2)    0.41349
GARCH(1; 1, 1)  0.82645
GARCH(1; 2, 1)  0.12095
GARCH(1; 1, 2)  0.25594
GARCH(1; 2, 2)  0.70165
                        
%%%%%%%%%%%%%%%%matlab
load('hp_ibm.txt')
data=100*hp_ibm;
[parameters, loglikelihood, Ht, likelihoods, stdresid, stderrors, A, B, scores]  = full_bekk_mvgarch(data,1,1);
parameters

parameters =
    0.6971
   -0.3355
    0.5062
    0.1955
   -0.0242
   -0.0369
    0.4192
    0.8438
    0.1163
    0.2327
    0.6977


hp_ibm.txt

    hp_ibm.txt (46.27 KB)
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 好的意见建议
ywh19860616 + 5 + 5 + 5 热心帮助别人

总评分: 学术水平 + 10  热心指数 + 10  信用等级 + 10   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-3 00:01