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

大师,那两条曲线代表什么啊
页: 1 2 [3] 4
查看完整版本: 一个用stata 计算股票成本的小程序