maodeng
发表于 2011-11-10 19:58:52
wenty 发表于 2011-10-27 04:17 static/image/common/back.gif
总结一下使用心得
1)删掉set memory那一行
2)改路径
记事本打开后,怎么用tab
冰火
发表于 2011-11-10 22:44:18
认真学习
higer
发表于 2011-12-9 22:34:04
我也曾尝试过使用stata软件对股票平均成本进行分析,但是作为一个非专业的炒股人员,而且日常还有工作的人而言,这种方法似乎显得太专业,而且操作难度极大,不一定实用。
使用这种专业的技术分析方法容易造成这么一种现象:大家都对导出的光滑漂亮的图像感觉良好,然而在股市中依然无法进退自如。
jway315
发表于 2012-3-24 20:12:54
谢谢楼主,希望继续给同学们挖宝哈!
awer
发表于 2012-3-28 18:06:25
改了一下,这次运算应该没啥问题了
capture program drop hello
program hello
quietly {
clear
cd e:\finance\stock\20110101\source
insheet using `1'.txt
keep if v5>0
gen vt=_n
tsset vt
gen zf=D1.v5
gsort -v1
gen avol=v7/v5
keep if avol>0
drop vt
gen vt=_n
tsset vt
sum v5
gen amean=r(mean) in 1
* 总加权平均值 amean
keep in 1/240
sum v5
gen mean240=r(mean) in 1
*240加权平均值 mean240
set obs 500
kdensity v5 ,gaussian n(500) generate(dx240 dy240) nograph
*240 kdensity(dx240 dy240)
sum dy240
gen yxis=r(max) in 1
gen yxis2=yxis/2
*yxis
gen dy240max=r(max)
gen dy240minp=r(min)
gen vtt=_n
tsset vtt
gen ddy240=D1.dy240/D1.dx240
sum ddy240
gen ddy240max=r(max)
gen ddy240min=r(min)
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
sum ddy240g
gen yxis3=r(min) in 1
gen yxis4=0 in 1
*ddy240g
preserve
sum v5
keep if dx240<r(mean)
sum ddy240
if r(min)<0 {
keep if ddy240<=0
count
if r(N)>2 {
pkexamine dx240 dy240
local tempminp=r(tomc)
restore
}
else {
di "cannot find minp"
restore
sum dx240
local tempminp=r(mean)
}
}
else {
keep if ddy240<=r(min)
sum dx240
local tempminp=r(min)
restore
}
gen minp=`tempminp' in 1
*240 minp
preserve
sum v5
keep if dx240>r(mean)
sum ddy240
if r(max)>0 {
keep if ddy240>=0
count
if r(N)>2 {
pkexamine dx240 dy240
local tempmaxp=r(tomc)
restore
}
else {
restore
di "cannot find maxp"
sum dx240
local tempmaxp=r(mean)
}
}
else {
keep if ddy240>=r(max)
sum dx240
local tempmaxp=r(max)
restore
}
gen maxp=`tempmaxp' in 1
*240maxp
*-------------ddy240pminp左侧高峰值-----
preserve
keep if dx240<`tempminp'
keep if ddy240>0
count
if r(N)>2 {
pkexamine dx240 ddy240
local tempminphddy240=r(tomc)
restore
}
else {
restore
di "cannot find pminphddy240"
sum dx240
local tempminphddy240=r(mean)
}
gen pminphddy240=`tempminphddy240' in 1
*-------------ddy240pminp右侧低峰值 -----------------
preserve
keep if dx240>`tempminp'
keep if dx240<`tempmaxp'
keep if ddy240<0
gen temddy240=-ddy240
count
if r(N)>2 {
pkexamine dx240 temddy240
local tempminplddy240=r(tomc)
restore
}
else {
di "cannot find pminplddy240"
restore
sum dx240
local tempminplddy240=r(mean)
}
gen pminplddy240=`tempminplddy240' in 1
*-------------ddy240pmaxp左侧高峰值 -------------------
preserve
keep if dx240>`tempminp'
keep if dx240<`tempmaxp'
keep if ddy240>0
count
if r(N)>2 {
pkexamine dx240 ddy240
local tempmaxphddy240=r(tomc)
restore
}
else {
di "cannot find pmaxphddy240"
restore
sum dx240
local tempmaxphddy240=r(mean)
}
gen pmaxphddy240=`tempmaxphddy240' in 1
*-------------ddy240pmaxp右侧低峰值 -------------------
preserve
keep if dx240>`tempmaxp'
gen temddy240=-ddy240
keep if temddy240>0
count
if r(N)>2 {
pkexamine dx240 temddy240
local tempmaxplddy240=r(tomc)
restore
}
else {
restore
di "cannot find pmaxlhddy240"
sum dx240
local tempmaxplddy240=r(mean) in 1
}
gen pmaxplddy240=`tempmaxphddy240' in 1
*-------------------------------------
gen price5d=v5 in 1/20
gen price5yy=_n in 1/20
gen price5y=price5yy*(dy240max-dy240min)/20
*price5y &price5d
gen priceny=price5y in 1
gen pricen=v5 in 1
*priceny &pricen
*-------------------------graph------------------
tw(line dy240 ddy240g dx240)(spike yxis amean,lc(blue))(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)) (scatter yxis2 mean240,lc(red) msymbol(+) mlabel(mean240) lc(red))(scatter yxis maxp,msymbol(+) mlabel(maxp) lc(black))(scatter yxis minp, msymbol(+) mlabel(minp) lc(black))(scatter yxis4 pminphddy240, msymbol(O) c(l[-]) mlabel(pminphddy240))(scatter yxis3 pminplddy240, msymbol(O) c(l[-]) mlabel(pminplddy240))(scatter yxis4 pmaxphddy240, msymbol(O) c(l[-]) mlabel(pmaxphddy240))(scatter yxis3 pmaxplddy240, msymbol(O) c(l[-]) mlabel(pmaxplddy240))(scatter price5y price5d, msymbol(O) mfc(black) mlc(black) c(l[-])) (scatter priceny pricen, msymbol(O) mfc(red) mlc(red)), title("`f'") xtitle("`1'") ytitle("density") legend(off)
* ---------可选项目----------------------
}
end
旅途愉快
发表于 2012-3-28 23:23:38
awer 发表于 2012-3-28 18:06 static/image/common/back.gif
改了一下,这次运算应该没啥问题了
这段代码是重新复制粘贴到hello.do里面的?
awer
发表于 2012-3-29 11:40:51
旅途愉快 发表于 2012-3-28 23:23 static/image/common/back.gif
这段代码是重新复制粘贴到hello.do里面的?
对的,就是hello里面的那个
David09
发表于 2012-7-2 21:35:43
awer 发表于 2012-3-29 11:40 static/image/common/back.gif
对的,就是hello里面的那个
. hello 002680
Obs. nos. out of range
r(198);
我运行后,出现这个,不晓得是什么错误了,请大拿们帮助
qqysc
发表于 2012-7-3 12:12:33
David09 发表于 2012-7-2 21:35 static/image/common/back.gif
. hello 002680
Obs. nos. out of range
r(198);
估计是导出文本格式问题。
qqysc
发表于 2012-7-3 12:14:01
awer 发表于 2012-3-29 11:40 static/image/common/back.gif
对的,就是hello里面的那个
复制粘贴有很多乱码,请楼主把上面的代码做成附件以供下载,谢谢!
David09
发表于 2012-7-3 17:13:26
本帖最后由 David09 于 2012-7-3 17:28 编辑
qqysc 发表于 2012-7-3 12:14 static/image/common/back.gif
复制粘贴有很多乱码,请楼主把上面的代码做成附件以供下载,谢谢!
我清除过了乱码的啊....
qqysc
发表于 2012-7-3 17:56:53
David09 发表于 2012-7-3 17:13 static/image/common/back.gif
我清除过了乱码的啊....
说得不是一回事。你说的问题可以试试在 002680的文本中,把tab键补齐,导出时不要带表头
David09
发表于 2012-7-3 19:45:01
qqysc 发表于 2012-7-3 17:56 static/image/common/back.gif
说得不是一回事。你说的问题可以试试在 002680的文本中,把tab键补齐,导出时不要带表头 ...
很奇怪啊,我看stata中间的数据表,都整整齐齐的导入了成交价成交量。但是一运行就蹦出来那个错误
David09
发表于 2012-7-4 14:44:31
搞定了,原来是我选了一个次新股的数据,样本数目太少了,引起程序的错误。
{:187:}感谢楼主给的好东东。
碧水芳洲
发表于 2012-7-13 13:40:00
怎么没人问曲线是什么 意思呢? density指标也不是很明白呢,谁来解释一下?
benhuashu
发表于 2012-7-20 15:16:10
请问,这一个语句:
gen zf=D1.v5
是什意思?主要是=之后的D1.v5,这个"." 是什么意思?谢谢。
海阔
发表于 2012-11-5 18:37:38
非常感谢;
墨轩书童
发表于 2012-11-7 11:46:47
本帖最后由 墨轩书童 于 2012-11-7 14:37 编辑
感谢楼主!!
海阔
发表于 2013-1-20 17:03:12
本帖最后由 海阔 于 2013-1-20 17:08 编辑
按照版主的步骤操作到了最后出现
. hello 600031
avolDo not found
---------------------------------------换成其他代买,也是一样;总是出现这个问题,怎么办呢?奇怪
maodeng
发表于 2013-1-25 13:15:07
大师,那两条曲线代表什么啊