设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 28262|回复: 105
打印 上一主题 下一主题

[经济] 一个用stata 计算股票成本的小程序

    [复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2011-8-13 18:03:43 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 awer 于 2011-8-13 20:49 编辑 " J+ b, U0 u3 T8 {5 e8 V3 \
; C4 X; ^, w+ P3 k
   我是从西西河一直追虎大追到爱坛来的,虎大曾用stata 分析过股票的长期成本和一年的短期成本,但是直接用kdensity命令无法得出筹码峰的具体数值,因此我写了一个小程序来计算股票的筹码峰值、长期平均成本和短期平均成本。下面就给出具体实现方法。
计算之前需要有
1 招商证券系统(通达信其它客户端也行,功能都差不多)
2 Stata软件 (我用的版本是Stata/SE 11.0
然后
1.新建一个文件夹储存股票数据,比如:
e:\stock\source
2. 股票数据导出
a 进入招商证券, 系统-盘后数据下载,更新数据
b快捷键“34”进行数据导出, 在弹出窗口选择
0 W1 s. e% }# m* X8 i- z- d; i
高级导出”,
在高级导出窗口选择日线导出”,
将导出目录选择为你新建的储存股票数据文件夹的目录(e:\stock\source! 切记切记
文件名 XXXXXX.TXT
勾选  数据精确复权
添加品种中选择想要导出的品种
开始导出
3下载 stata, 将本贴附件中的hello. do文件copystata根目录下
Stata中的 Do file editor 打开hello.do 文件, 确保hello.do 文件中 e:\stock\source 和你保存股票数据的文件夹目录一致
现在就可以计算了,以露天煤业(002128)为例
Stata 输入如下命令
do hello
hello 002128
) E1 t8 ~3 U% Y& T- P5 d" x
5 z# M2 W! V; V0 S% ^+ [
(002128
为你想查询的任意一只股票的代码)
几秒钟之后应该会出现下面一张图
4 Z$ X  K6 v/ E2 Z7 v
hello.do (5.25 KB, 下载次数: 11947) 其中蓝线为股票上市交易以来的平均成本值(注意!此值没有去掉一级市场发行和国家的0成本)
红线为一年内交易的平均成本值
黑实线和虚线为一年平均成本值附近两个筹码峰的值
黑方框代表的事20内每天股票的收盘价格
红方框代表股票最新收盘价
山寨完毕, 收工!!

评分

参与人数 3爱元 +17 收起 理由
坚持到底 + 6 谢谢分享
常挨揍 + 6 谢谢!有你,爱坛更精彩
万里风中虎 + 5

查看全部评分

该用户从未签到

沙发
 楼主| 发表于 2011-8-13 20:20:36 | 显示全部楼层
这点我也注意到了,所以我用 成交额/复权后的价格  作为成交量 用于权重计算

该用户从未签到

板凳
 楼主| 发表于 2011-10-19 22:03:57 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:49 6 H5 w9 c# ?5 a! }
能不能帮忙看看:
- F% j: T8 ?8 l% l% U1 V* f& |& Q, {5 x
do hello
, n2 k: S2 O; O+ ]- z! e8 [
你算得哪个股票?

该用户从未签到

地板
 楼主| 发表于 2011-10-20 11:18:45 | 显示全部楼层
沉默的前哨 发表于 2011-10-20 10:32 / N9 c7 N! G( n2 I, c" m# b
do hello 后变成& P' ~4 [$ C2 x$ `" n6 \) |+ N! i
......

) W7 o6 \) X" D! _

该用户从未签到

5#
 楼主| 发表于 2011-10-20 13:32:47 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:45
8 ~5 R% z2 H: Y1 g为什么老是提示:type mismatch
* j& k( c2 v: q! o
注意 日期格式要选成  yyyy/mm/dd,要不然时间变量格式不对

该用户从未签到

6#
 楼主| 发表于 2011-10-21 10:05:17 | 显示全部楼层
琴心三叠 发表于 2011-10-20 21:37 * V) b% k: |  ]9 v- ?4 \
谢谢答复  还有一个问题  我导出的文件为何只有当天的数据  而不是历史全部数据呢 ...
1 S: U( r7 s2 z5 b
有很多问题是数据不全造成的
. g/ l7 A% r. d0 _( ]8 R如果想要全部数据,9 q4 V' S$ n: q' p
系统--盘后数据下载--日线数据--日线和实时行情数据4 N) R- o  F" c: y# j2 e
# n# D4 Z* q1 f5 W" D; L
把开始时间设成中国股市开盘的那天,下载全部数据; q2 ]2 M4 A2 v  e

" m) T7 w+ A# K9 a下载完全部数据后,在屏幕上使用快捷键 34( E. D1 @2 ?6 K+ J
0 K; F9 x  X7 \& h9 d
34--高级导出--
9 K5 ]! o$ |4 h( `- k% l1 I3 V, X, k7 d2 V$ @  ]* [! q
然后选中   日线导出;选定导出目录;文件名设为:XXXXXX.TXT;勾选精确复权;不要生成导出头部;分隔格式为tab();日期格式为YYYMMDD,然后选择添加品种/ m5 d. _% D  t3 `  Q" y
& e6 w; G- t% S0 W+ D
我一般都是把所有数据下载到指定目录下,然后进行hello运算 4 T3 L# F: j( |# q0 ?
" }: c  D: v& ^% [' v; A( n

该用户从未签到

7#
 楼主| 发表于 2012-3-28 18:06:25 | 显示全部楼层
改了一下,这次运算应该没啥问题了
0 z5 h' X9 _1 i9 g# J  M  T7 W1 `& \% r& q8 G! K6 k

5 z8 J( d. g: ~" u1 I- Qcapture program drop hello
) U8 Y1 K; U' i6 `* x& B0 O, |! c* s7 r+ h
program hello
5 N- J8 y) K3 C2 H, K* k0 _  u4 _6 M3 x$ t1 v
quietly {' G; G0 a0 f  g7 S9 b4 d" p/ N8 a
5 \/ i) H7 i* b
clear
$ _3 j0 I% B7 @( ?5 h4 k9 u& |' w. q# S" O
cd e:\finance\stock\20110101\source
4 F, M) M0 ~) C+ V) G# P4 }; t6 i9 |) E' T4 A, e
insheet using `1'.txt' `7 }1 u# s5 z. e6 ?
0 b7 A) L3 j- C/ h7 s+ e* F. s2 W
   keep if v5>05 Y% A  {3 f7 b" v
    8 E- c5 G) e. l, o% J" F4 P! m" m
   gen vt=_n; h1 y& J  K9 f. U9 D
   
/ g7 U: g9 Y! B6 l  J9 C1 j2 N1 b   tsset vt/ h- H$ Y* l, P5 m

" Z- `3 V) s' X; k* o9 }7 b   gen zf=D1.v5
8 V. ?: s) w+ ?5 O, Z: ^' d, P1 l# L1 a, I; o# c
   gsort -v1; d/ S1 l/ n# p) {

) K# J  n1 i) m   gen avol=v7/v51 W1 H# T0 K, w* Z. ^: \
   $ U. Z* u# M1 i* t
   keep if avol>0% a- B3 T" [! W+ \( d% s2 H& F# L8 U7 ]
   3 u$ J0 ?4 U+ Q; t2 p- ^6 U& d
   drop vt9 t" K4 J/ H5 q. c: N
  
  C: D7 w5 Z) B9 ]   gen vt=_n
' u$ C1 }) D5 b5 J/ k   
) N! \9 w" m# c6 F, X   tsset vt
4 f7 t8 c9 f1 Y, r6 h9 t6 J   ' y5 L' N# O1 Y3 S# T: ^: B
    sum v5 [aw =avol]
4 Y0 p& v! u: V$ x
6 m  ?( X6 {! x2 P8 z+ l   gen amean=r(mean) in 17 J& k* J  Z! i& |
   7 h, P7 w5 `+ f  m/ m( w0 v" j! E& @
   * 总加权平均值 amean
% N- |8 e* d2 L4 M  u8 Y   8 h! @& W3 n0 t' c9 |  T
   : Q) Q% h6 r, A' P
   keep in 1/240
! R3 M& h7 R! [
7 I4 X5 u" X7 _# w2 I   sum v5 [aw =avol]) t2 P# T/ }0 _) R

  |4 g! a4 }. d& e   gen mean240=r(mean) in 1
/ l9 t2 ]7 v+ z( P6 D9 D4 Z, G, m   7 _! u/ r6 t! `$ u
   *240加权平均值 mean240
7 w  p$ D. O3 i1 m  G2 k   
# M! O/ ]* x3 H$ J9 x% b- S   set obs 500
* R! U9 J$ a9 Q/ `& q   / ^8 Z6 q4 H0 X3 \
   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
& d0 v. a) q/ T# [0 _; s   9 ^1 T% J4 [  R. Z
   *240 kdensity(dx240 dy240); v! V9 b) z' \& F4 c+ L
     L' r: k% K* m8 D
   sum dy2401 z" Y$ B+ @& d+ e
   7 O" t) H9 l6 L6 g+ e
   gen yxis=r(max) in 1
9 u2 E+ ]. o6 K8 x2 B   
7 a2 P9 m) K* t1 \% G" W% w3 k! C   gen yxis2=yxis/23 R  |. ]. g6 E
   : u- k! v6 F0 P
   *yxis
$ \: v# P& N; i" z. W% {   
. V3 ~, U( e. T0 k   gen dy240max=r(max)
' I+ _- O2 l$ J% x$ l, p4 `( {   # ^5 A& L8 D/ k- y- F* T2 w/ M
   gen dy240minp=r(min)# O! m  x; q+ {& n9 T) u- S9 d5 q
4 ]* a) U" n0 ^
    gen vtt=_n5 S- p- N* [" I2 n7 F1 {

6 {' m" \0 j3 i    tsset vtt# H2 A5 H2 ~- y0 _! A
6 ~8 Z2 D. L; L4 A& P( L
   gen ddy240=D1.dy240/D1.dx240
" X$ {. u  q2 R5 Z; f6 b& K: g   1 T$ X  u( K- F/ a" Z2 s9 _
   sum ddy2406 z& s8 ?- J/ T
   2 d- N: ?& j4 J" f4 F7 |9 A3 k. k
   gen ddy240max=r(max)
( q( {. m- S% H8 w' Q* `2 B/ W   , ?9 B- o( e9 b8 Z8 W/ f$ A
   gen ddy240min=r(min)
) ^) g6 i) B& x# l     7 v* z7 q2 R% q' \/ c% m, q5 [- l& ]
   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
' t% j3 c' m$ A" w% k   
5 ~1 B$ J, v6 K) A4 E; T$ u' i   sum ddy240g# t; l, j+ R9 R! N+ c4 a
   
& E+ q5 Y3 r% C! \   gen yxis3=r(min) in 1
0 k: {* ?9 v! s+ O, _7 ~4 ~   
" r1 i6 M" r' z0 [- A$ I   gen yxis4=0 in 15 ?1 Z9 B* Y/ S
  0 f# J6 Q# U9 M" W6 e$ i
  *ddy240g
( D9 |! T: X' Z; H8 g( \   
  P" ?' `9 F) D. Y   . S% f  k; u  n+ x% f, s+ I
  preserve : b8 H: R, q* L4 b: g0 E5 L
  6 G9 [9 R. O$ E; K( |, F7 s) Y0 ]
  sum v5 [aw =avol]2 e9 C0 |1 l) C% j) {4 c1 J5 J
  % {# ~! ]$ a/ v& z0 u; M
  keep if dx240<r(mean)6 C: L: R* Y' ]2 h
  & P) J) S* O5 R
  sum ddy240
6 s5 a: Q7 B% E2 w  w, ~  K; }8 S  8 R) j$ n% c+ l+ w" T  o; A
  if r(min)<0 {( X7 j  Z: f/ P
        
- j9 S+ j0 t+ l                keep if ddy240<=0
: c" Y! J3 n6 G8 C               
+ L$ V" s. |- i0 d( _                count
$ z5 u- @+ A  y& d9 f               
- n& z1 d; W1 r. X6 \) y: K3 ?7 Z2 h                if r(N)>2 {
/ \9 i* Y$ z1 ~8 A                 
$ B( C0 S7 T% o8 u( K                 pkexamine dx240 dy2407 z4 D9 S! `& m( g
                ( C2 `: G" a3 K5 ?% Y4 }
                local tempminp=r(tomc)# b8 x$ h2 |! a# x9 a2 c" u( w% ~
                restore 1 H2 t, F5 a: H
                 }
* P) {9 ?6 e3 ]3 w% v                 0 m) ]5 V0 c9 t2 H2 t* J/ D7 L: `- d
        else {
. b# C1 M) G9 @% X                5 {& S: V+ `/ |0 S  n' _& ~
                 di "cannot find minp"3 K  l3 g# a; V( w) Z" I
                 % T( d& }# e2 U6 C% B# G- Q
                restore / t/ L) y# u7 N- V$ y1 g
                 sum dx2406 j7 k7 t4 O% O" d& E$ D
                 local tempminp=r(mean)
4 F% G, S8 v. P% Y: u+ x$ G. q                 & N$ r) R/ b: J/ [/ \+ t- e8 u
                 }
3 ?7 K  Z: b/ g                }
2 Z' Y2 q1 M6 [   else {
9 y" J( X0 x, {9 E& l                   x9 w# ^* x7 V8 ]
                 keep if ddy240<=r(min)3 E! K% ]' f" |! k4 O2 l( O
                 3 m% s; e) y1 b& k% b9 t" n
                 sum dx240( E8 F7 s% r; }- d, y. m& r
                 
/ W% z7 ~  v3 t0 E& u                 local tempminp=r(min)! t. o- Y1 {' I
                 restore ) C; |3 i* \% W% l  ~# ^$ Z
                 }$ {  J$ E5 x  g+ k4 A% x7 N

0 Q0 |$ d# \- T7 @1 c# x( d( P: D- |8 |' v9 l1 ?/ ^
9 M! s" v9 J- Y, R  Y
   gen minp=`tempminp' in 1
6 ]& z; n5 D% Q+ Z7 U! D   *240 minp% B$ a) M2 s" Z! t; a9 _, Y
  O% J/ i# ?0 x- S- _

: r$ @9 X( E2 z, ^9 w   
- J* `) b7 t3 O+ o6 C   preserve
; c2 \. d; _5 A% [2 C) M, H8 v' K   ! J7 d0 U) L0 J9 |: m% l
   sum v5 [aw =avol]' }1 x* M3 c& c
   
) S+ _4 P( N) |' s, h( A0 e3 A& L& ]' Q$ b   keep if dx240>r(mean)
3 Y+ r- \) F  f; u+ A1 n   
( s$ P2 c6 e' O. W   sum ddy2407 W% }5 `! c6 O/ G3 [7 K
   1 L: C' w3 p& B( k
   if r(max)>0 {: f  E: O" n& X! R% o3 C
                + b% S  K. u- |0 k5 n. H& |- }7 h! C
                keep if ddy240>=0
# ^. o" R- ~3 j0 e& v2 L0 h6 U2 b                1 W% B1 `, k: s% T& }* p
                count
5 t' V; W0 |. r                ! x2 A! r- b% s
                if r(N)>2 {$ w* s2 _) D8 c6 q! ?' x1 t! D
                 
: k& |0 f( @/ z! G/ G                 pkexamine dx240 dy240
. |6 K/ U# M8 a# R& M+ q4 g                5 i6 r( z$ c! X3 S, X; B
                local tempmaxp=r(tomc)
3 Q  q2 J! O' a: @                restore
' H" @: I# i# m' u" H  C3 ^                 }+ ]$ z# G8 M/ t! C4 E
                 
) ^+ g2 M2 ?! J                 
) j; `* b1 G3 i( i6 A4 T- z. j) ?. H1 |        else {
# U& ~& a$ j; r( Y! I: i                restore
$ Z( n& v6 v8 r& k7 q                 di "cannot find maxp"
( q3 F" d4 p. d( z8 `7 B2 P/ l" M) r                . a; D! B$ Q) A( V1 m1 h7 I; r: R
                , i2 S( r! f3 m7 z
                 sum dx2400 L4 N) Q7 r% [+ o* w2 L
                 local tempmaxp=r(mean)4 K- }! ]: b6 M  Y3 A
                 
. W- a: {8 S: p                 }
) N, o0 }+ z7 t' g0 |) f/ t4 Y                 " U7 \+ J3 a0 r- I
                 }
8 @: L4 G+ n) P5 X                 ; a  P9 \& o, v' ?* W1 E* {
    else {* }) f$ `# F, B0 y
       
# [, A7 [! y" b           keep if ddy240>=r(max)
) A5 B: O8 u8 f9 V  V           ! w3 Z  T) f! V0 N) h& r
           sum dx2408 G8 d8 [( h# K
           * W7 _) d* Z1 H+ _0 G+ M8 b+ \( i  e
           local tempmaxp=r(max)
. M1 O" T# e# r1 O, F+ Z           restore
# |, D! t7 U' M9 [, ]           }: R) W' f- n7 t4 \, d8 C
        ; C( A6 i, x+ Z: l) k+ N( U
) L- x0 I( A" U! w! L. h% T: y
  - R0 q) J1 s; l) l" L4 m

8 j* W" J- e+ V) M( C   gen maxp=`tempmaxp' in 1
# y, G0 n2 y1 x- k$ \1 X/ |   
6 T& {- {( @2 J, K) P/ B* M% }   *240maxp
! k/ S5 S' b) \4 W) s   
: c& S' r+ Y- o   " h/ Q* V! v4 L3 A3 v( o$ w. ~
   *-------------ddy240pminp左侧高峰值-----
$ G7 g. [' c; N; N7 v* m/ u   . ?1 [- I" f8 X0 A" C
    preserve * a1 U- f+ P0 V. j7 \
   
6 R6 {+ [1 T: y$ o( O: q3 G! }   keep if dx240<`tempminp'' X7 k7 [5 A+ G4 p) g% o5 Q6 i
   
1 r2 x* b5 R4 u5 j   keep if ddy240>0
+ j4 y7 q& m/ b9 {2 {1 w   9 q5 E3 U  V6 Z# ~8 F! h- v
   count
) K& G% ]; N" k: b% U' K' m% n8 v                % ^: L- m& i2 g
                if r(N)>2 {& d$ G1 i7 p( j) b. Q2 r! Q
                 
( d2 N$ [" s5 D3 B  i! Y8 O3 w                pkexamine dx240 ddy240
( |) K) j) H1 M4 a# m8 g+ ^               
2 l8 j7 C, i+ q( l) A/ n                local tempminphddy240=r(tomc) ! J4 m" }5 h+ T/ h
                restore
3 e( i) R- Y) u9 }& D, E1 H                 }, R( a; G0 k) ?1 T
                 0 U0 m4 Z, x0 ]
        else {
/ D' k' j2 a& ^0 A% ^% A/ X9 d3 T                restore : y- e9 F2 b3 p. E7 s" v/ d  G
                 di "cannot find pminphddy240"! Y7 t0 L( n7 p
                 + j" z/ ]- R: c5 r) j! c
                0 w' f$ g# t  e) b8 f
                 sum dx240
# Q% y  J* j) j  h                 local tempminphddy240=r(mean)
/ E, O/ m- ]/ x( n; A  I- r5 j0 v                # B/ U1 C* J9 T9 U3 [- M
                 * h: U* u/ c! ~* |3 g3 N- t0 M4 I
                 }- K5 R, |4 m, B; u! F
                 
: g. P) l, M7 v6 J   7 C; n# q2 I$ U( G6 v
   
0 T) C! s" {7 V$ b9 y! z( Y* a   * w$ W' u" W' ^9 Z" B0 r4 ~
   ) p& s* c! a5 K
   & w6 @( F! x6 x0 \/ Z, M2 d" g
        gen pminphddy240=`tempminphddy240' in 1
: l+ e  {9 R9 W  L' Q0 @! ]! ]       
) U$ h, y9 w& k6 |: _) V# N+ e        4 V( {7 W4 U& j4 d, P- o  K
        *-------------ddy240pminp右侧低峰值 -----------------/ e0 K" h5 {& a- o4 L
    preserve
0 R0 R+ ~8 T4 v+ n# C! x2 ~3 K
( F) J6 ^2 q% h+ D   keep if dx240>`tempminp'
- p+ ?! H2 m# b! e0 h6 k) k   
4 E/ Y- b+ D1 P0 b   keep if dx240<`tempmaxp'
1 f. B6 m2 G& F* g   
. L% A; J5 \) [2 r   keep if ddy240<0
6 J$ [. T9 g' O1 j: N6 G8 X% z   
+ Q/ T0 C$ c1 `/ l+ i/ j0 h   gen temddy240=-ddy240
8 y" Z4 M1 d( X% f; a  ~   1 `3 |5 E( l% X" a  p4 z+ ]
    count
, c' m/ e% v# G% p) l. K2 S                $ ]- T# B4 d* q$ T- F
                if r(N)>2 {
+ y  U* n/ Q/ Q# G8 E- g                 
. G/ `; F8 S8 v" b3 p                 pkexamine dx240 temddy240% i7 {) ]7 J( B* O0 R; f  K+ r
   
( M" n5 N# F" B- `& Z0 Q/ J+ b: z- L  local tempminplddy240=r(tomc)% b- e6 d+ W) U' E0 d* Y
                restore
0 k9 f# F+ J) a9 @: V7 j                 }
: \' _% \6 H5 m. m. V4 `: H                 
- F# Q1 @0 ^" w% R/ c% }" b        else {
% @! t8 }. I" D! K; [4 X                ! |9 x- ^, Z/ _1 D
                 di "cannot find pminplddy240", ]0 W2 [9 i( |2 J% p3 e' j; n
                restore
6 l/ @5 M2 t& F" B- z9 t8 o" t: S                 # m/ E8 H! s& o8 M0 v
                  sum dx240
4 n1 m3 l* }9 E8 I                 local tempminplddy240=r(mean)
/ l$ l8 A  d/ w" {+ n$ b                 
5 T5 n# V. t( D, _, j0 c                 
  |6 b0 M2 q, C+ K" o! o$ r                 }
1 J) A0 N; @# E3 n8 q   4 t/ u' ^2 r7 [' J& n% G
   
6 Y0 @4 ]" |& b   1 d' J0 T! P; [& i  C& G
   / K. a' Z) J8 ]- p6 N) o
   7 S. J4 u" u$ H+ q7 w* U
        gen pminplddy240=`tempminplddy240' in 1% ~. b" g  h+ B0 w+ o: Y
       
3 c" j9 T6 D1 i/ O6 B, e        *-------------ddy240pmaxp左侧高峰值 -------------------
$ R5 `# |/ l& A" I        , ^7 y9 b, U3 n2 J- l
         preserve
& K# h( {1 |3 m   ' O& R' q2 Z  l
   keep if dx240>`tempminp'/ l, h, `) o. g6 P) P, {
   
& Q" h2 b* e/ Q   keep if dx240<`tempmaxp'" ?% g4 c5 X1 l, n7 y! G
   + g5 ?2 T- U$ P, d6 {
   keep if ddy240>0" `) o# \1 G6 C8 A7 B; I( d
   count
: S  }( I) @) e5 ?1 y  ^' d, L               
, N, T4 p4 l8 p' z8 J( h' H                if r(N)>2 {" P8 j- n. t& @% k) M% X
                 " Y& `, t5 U- K- @% ^
                 pkexamine dx240 ddy240( j- \, h' |, ?: e* B7 a% w- g
   3 W. s+ |$ ]' w4 N: \3 W/ p
   local tempmaxphddy240=r(tomc) ( O. c; ^$ k3 i0 w0 Z" D5 W
   
8 X6 Z: z- }0 Z7 c   restore
& L# r% \% `; {                 }: E/ y1 _3 T5 ?) t4 h6 z$ t1 P
                 * e, A* [6 |5 V1 q
        else {
* `' R8 O0 G9 q. w) G( G               
' R* V0 Z1 z3 g  }% x% u6 C                 di "cannot find pmaxphddy240"7 m& ~( l+ q1 O% y" A5 ^
                 restore
, ], h; D0 O# `4 e& \4 C8 [               
* u  N* W8 J  L& Z8 f                 sum dx2408 J3 t; [1 ], d8 T* i- p
                 local tempmaxphddy240=r(mean)
) A3 V* `9 j  Z/ ?  b% w5 O4 x9 g% O                 9 g) ]: D2 q) T3 `
                 
# [7 }7 u) c. f/ a! x                 }! q6 b& Q+ s' e
   6 D9 X+ C  j4 @% w  R1 v
   
' R8 t/ p/ r1 M2 \9 I( w! j8 B    1 E$ r9 F+ ?+ A! `
   
* A1 ^: N: b* U7 E8 S) c' w# e; d/ f8 ~   : A  P' y2 S7 A* d, n
   
" {1 g* k4 G8 j7 b: t! e' D        gen pmaxphddy240=`tempmaxphddy240' in 1
8 e) X$ w/ g( |! a  n: r0 r8 ]        2 K. V3 y* P/ r: g
       
' j' p, n$ k+ _0 _5 d; `0 J( K        *-------------ddy240pmaxp右侧低峰值 -------------------
8 P: Y, l; e2 \; p0 `( @, d       
; s5 Y1 Z! a( x6 S$ w7 \* ^( g- I         preserve
/ @. y, {) y- M2 j3 n  3 F* h# u2 w* c9 q3 `
   keep if dx240>`tempmaxp'
7 H, i% B1 j) L6 z3 I6 m   
( t+ }( a3 q6 p% K: _   gen temddy240=-ddy240
9 ?3 ^8 p2 I* W% s$ Z4 u* L' ^   : O& j! m$ K0 \' ]! c
   keep if temddy240>0
. a. z, g# e* r   : c7 v) j' q! E/ G/ K( U3 q
   count, P/ Z* g2 v) ?) K+ n
               
3 _) ?' [5 c7 ~( r$ W2 W                if r(N)>2 {
. t& I  ^+ m. P4 a2 Y                 
* t$ F0 @; x4 H5 \                pkexamine dx240 temddy240
* E) Q6 }5 d/ O, I  u   3 B. Z1 [7 _& o% i
   local tempmaxplddy240=r(tomc) 2 v" r* j  b# m
   restore) `" U: r/ z1 o! @: V
                 }8 u1 [+ X+ K7 r. x  y
                 3 ?2 J) e7 k& ~
        else {. Z' G- k; }% Q" [7 v' N; ?
                restore4 z, K/ q# b2 W  Y
                 di "cannot find pmaxlhddy240"
3 S; u3 c6 k4 L                 
, i2 v9 S% d: O8 L2 Q3 C: J: b' O5 f               
5 T5 a# _. F# F7 G. D. c8 t                           sum dx2400 b9 `- ~7 s; n# u) {9 D; |/ }
                 local tempmaxplddy240=r(mean) in 1  J# a3 K. k* R/ N
               
0 f0 j9 h  S. I6 k( n, c- W                 4 d2 {" H9 J4 {8 L. ]
                 }
5 L* n6 A  H' p% L   
, s/ F1 \$ u$ B8 h   ! g) n& M# ]9 v0 g$ z, h! y
   
2 C" W' I' H( d, I* Z   
5 V+ i) z7 \7 y   
: w! ]. {' `& i4 K   , H! J7 o9 G. F+ H7 X3 x6 K
        gen pmaxplddy240=`tempmaxphddy240' in 1
7 D2 n8 C# t3 M! N' n( a2 w  ~       
3 k4 A# Q( m$ z- u! L" k        *-------------------------------------
/ X6 V2 E2 `& W" R  r   " f" @; f# ~: N
   gen price5d=v5 in 1/20" Q9 U9 ]* F) \8 `% F0 w
      ' s. m" t2 ?& v7 V  ^
   gen price5yy=_n in 1/201 X% e) T+ @! {2 I2 m
   ) D1 I4 X% z2 W9 W3 t2 P
   gen price5y=price5yy*(dy240max-dy240min)/205 x; q. c, U" Y
   
8 O1 o' E& x6 [- C   *price5y &price5d# \6 ^4 ~& }3 s! `
   2 S, O  y" y7 N7 _; k
   gen priceny=price5y in 1
, n9 o+ `+ z- J   3 V6 @" g/ W# _; u# r7 f) t; S3 E
   gen pricen=v5 in 15 d. ~# [$ J( z5 O' [; i

4 q" r' W6 ~+ l5 `     
# A5 M6 @7 s; }7 _& b   *priceny &pricen
9 V; v5 {8 {& ^4 G) M2 J4 b# n6 ^   # Z3 D4 c% L: t$ {1 K! ?* c; m
   
2 d! e9 i  p4 C6 {   *-------------------------graph------------------4 B3 Z7 J" m' A8 P& D0 U( U1 u$ Y
  
4 V& i9 T' d2 ~, C+ c7 [. Y; d  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)
5 ~' ~! P& N% W: k0 W" d( e$ W
7 l% Z# `+ G, @5 @7 _* ---------可选项目----------------------
- k5 X( u8 g6 f9 w4 T5 z' O# l# \4 Y' ]- @$ B5 P1 ?
}4 Y2 o0 J* t2 Z* k
end/ U- |: E  h# h( c! P# U% h1 k

该用户从未签到

8#
 楼主| 发表于 2012-3-29 11:40:51 | 显示全部楼层
旅途愉快 发表于 2012-3-28 23:23
, A' N% e+ G9 j3 O  C% b这段代码是重新复制粘贴到hello.do里面的?
3 D' F3 L7 Q) K7 A! B
对的,就是hello里面的那个

该用户从未签到

9#
 楼主| 发表于 2013-2-5 14:40:59 | 显示全部楼层
maodeng 发表于 2013-1-28 13:13
, u4 R/ d1 a; d5 V7 m  r- b1 d. hello 300236
, ?: n! c9 E& ]; ~- z! R& M, Dstatement out of context
. c  k4 h2 _+ @: tr(119);

+ `4 A7 I& X5 i# \  T6 g抱歉,最近太忙了
9 B! V; i9 d! Q7 g  H2 _& o3 I$ |9 ]' \& U
300236 我用下面的程序试过,没问题
* ]7 ~6 A5 W; e: w4 S- _9 w
! Y! G1 z3 L- v) l你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试. u6 ^: H: V3 @

( m( h/ E) r$ ]% {" K/ O# N! H/ I# ?/ Dcapture program drop hello
4 z/ k- Q0 i6 v/ B4 i* Q; C' L8 A  r* a( z" z+ a: _
program hello# q  H; k8 o, W4 U

* U% T% l7 I5 w9 Q# O quietly {- I/ x4 m" V5 w5 C  }6 [5 t6 u
' Y7 r1 Z. d% |8 a
clear
! i: ~: F: F" f$ l! y
  U2 J+ |, W$ O- o* Ccd D:\stock\test\source
( i" l; B) m& z9 s" l7 s+ M0 M- P3 l' a' H1 i& `+ t/ y7 ?
insheet using `1'.txt
/ Y1 l+ K0 n' e7 _4 _7 |
. T6 f7 K$ _4 y   keep if v5>0
- g" F) C' x! k! Q1 b   
& \, c) ^3 _% D   gen vt=_n
: q4 O' k% |+ l' H" h   - [. j1 `* h0 r( X
   tsset vt7 @# ?; Q! w4 r6 k8 g8 l

2 N) O/ T  Q3 C6 S& j" A   gen zf=D1.v5
" C! q! B7 Q0 d( b  q: R/ |9 g0 v+ J6 `" V
   gsort -v1
- o* p; S3 q& ?$ J7 g' e  n6 E) o; p) ?# s: K$ |3 Y) w
   gen avol=v7/v5/ U8 l/ l* x* s# b
   " q) o+ X8 a8 e2 A
   keep if avol>09 E' p% y; N- m' R3 U8 P' R# H
   
- {5 ?% q- Y5 L( ^* i   drop vt
3 E* s( P0 y, x% N: r1 G  
) ]) V3 x3 n9 L3 ~: s  w! f   gen vt=_n# J" W, ^; l2 w/ X
   
; w( Q) |, J, N& b. F/ `   tsset vt4 D2 S" o! D; B1 F3 H( d
   " l3 ?2 d. H) g0 t" W: {6 P
    sum v5 [aw =avol]* c1 N: f+ g/ }  q' D

' B  q5 m; b, v' ~& G. h   gen amean=r(mean) in 1% [- d  k% h+ F8 c# Z8 Q' q" X5 H
   8 F0 [  q9 z& [  D. {! G6 e: f
   * 总加权平均值 amean1 ~6 j  ^( m; @( G
   
  z2 G' U" V# J) y   
) p" n6 u6 t* t5 g* [  h   keep in 1/2409 B! x( ^* U7 G3 j8 i7 |& m9 V  I( x* S
9 ^% _, B' [* s7 A, E7 A+ s
   sum v5 [aw =avol]: g- ^; Y% q: c9 k5 g

& P1 S$ m' T9 U8 B( @* a   gen mean240=r(mean) in 1
; x5 y  A$ t' }# X7 ]   8 H$ h. X, S9 o
   *240加权平均值 mean240
, X# o1 }! P0 v, p6 G8 E3 f   0 l% @1 @3 _6 k6 |' a' n0 \! p
   set obs 500 2 R3 a: v) i) O: j7 L* O: o
   
: a) O- h$ ?/ P4 h$ ?* r( d# Y   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ `$ c0 l1 {9 P0 V" ~9 o
   9 Y9 C" w2 S) Y; k. `4 C: y) r
   *240 kdensity(dx240 dy240)% [: R$ y  ?7 e: i
   
  D7 s* x4 S  n: B/ {4 w   sum dy240! z8 A. w. ]% @, O
   
) D- [2 i% J0 @0 e! d% b4 M8 z   gen yxis=r(max) in 1# C& i& C& f% T% r! q: L( u. Y
   # H. p6 P5 q- l. z5 C9 g
   gen yxis2=yxis/23 U$ W7 o; {1 |9 F. v) U
   
* B7 D" p$ D! V. f   *yxis5 r, Q% J3 }6 |6 g/ s! C. v
   
5 q$ B& u% W- e( M1 U$ i   gen dy240max=r(max)! p" p1 k7 [+ ~: f' s
   & f2 w% ?) M( p/ r% y/ A
   gen dy240minp=r(min)
6 `# |" `- A7 N9 U6 k" U  D! _$ G* B7 r1 X   D8 a  m2 Q9 @; E# w
    gen vtt=_n0 s8 E9 G! J' f- T0 K% r
6 O' u! r+ ^0 V( T# o6 q
    tsset vtt
( E4 D: H) u8 j' x) z* T7 G- K% y2 a+ ^; {; U, b  A
   gen ddy240=D1.dy240/D1.dx240. M/ v, }5 @0 X& v
   
; E+ x) j! C, E( v; M   sum ddy240  e. U$ q& E! e' `0 u
   
8 h& v/ C1 Z- C5 X( R+ x; u3 n* F   gen ddy240max=r(max)
5 Y& H# K5 F& n! M   / B, k$ Q# G# i. s: T& W; c2 x1 E7 K
   gen ddy240min=r(min); y+ a% _4 n6 Z. |/ U( m9 i+ G
     
+ t7 a+ G2 B7 g, K; z   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)) h2 ^2 j+ v! w# e4 c
   
" A) k4 ]% ?) j1 L' q# ^: \0 m   sum ddy240g+ f4 S+ Y" F. f2 R6 M
   - i  [; W. `1 w/ l
   gen yxis3=r(min) in 1. x4 y  A# w: V0 n5 h3 M8 Z" A
   
/ b$ P7 i/ I8 g; F+ Y2 S$ @   gen yxis4=0 in 1' m* ?+ m4 e: M. w0 m* K) x2 n$ J
  # L  u. R/ D% A8 }: W6 h4 u: Q! Y. r
  *ddy240g - I6 q4 {% I6 V/ b! o; n
   
; p; }! Y. r: z7 \   6 z) A/ y. }0 A% O
  preserve
7 n( b+ }3 T: G  - `; D3 k5 e2 e' {9 ^$ F; h# E
  sum v5 [aw =avol]
/ I* u+ Z, @; \- }  & ^% z9 o) |$ Y% w8 }. }
  keep if dx240<r(mean)
/ F( Y% [" W8 t- P$ a  
6 b- L( E2 N+ @  sum ddy240
7 K) Y: R+ i& |$ j( L: C& c  " {) H/ R* k0 L. O$ g, `# E
  if r(min)<0 {
' R. a4 v: [2 H/ R        $ @2 x/ o& G) ]9 Q( K' ?& z* g
                keep if ddy240<=01 {0 h( M7 W- M# _" ]" ^" ?9 Y$ Y  d
               
3 r% a) }0 a3 ~4 b5 x& q) Y                count6 O+ M4 x1 l$ N
               
. F7 F' J# f5 _) e* e1 X                if r(N)>2 {
: Q: m9 Q; G9 e" ^( r                 6 k1 W$ }0 Q: @! T8 f
                 pkexamine dx240 dy240, k: \9 z- p+ Y, x
                " w0 K  P/ T, `8 d, C+ Z$ H- e
                local tempminp=r(tomc)0 `$ T% S% q5 m
                restore ; _3 c8 R  x1 N% H8 b
                 }2 w. l, e+ V1 m
                 
1 M& I5 d: y! Z! r- J0 j2 Y        else {
" i( n/ e) {- h+ v7 q' X- ~$ W               
2 e7 U' X+ x% N) a# s+ y/ o( m                 di "cannot find minp"! _1 r; Q: O+ C5 I8 o
                 
" F+ _- R/ c8 _                restore
2 ]% @. k0 }- P* M                 sum dx240
4 I* L1 k2 f, E  Q! k4 @2 I                 local tempminp=r(mean). u6 g$ T) c8 h& B: s
                 
- @# ]  d8 L9 v9 P/ T5 X: Y                 }1 l8 M9 [$ B2 x$ B, i- [% r
                }" ]" s: Q  H, n& ?
   else {, G' q" i0 t: w. i2 v
                 
/ g4 n3 t# L# ?% v                 keep if ddy240<=r(min)
( S; \8 F" v6 q/ Q1 B$ C0 O                 . a* p2 A/ C/ h8 X4 q1 t
                 sum dx2401 ^$ _  X% `0 f, l. f
                 
( W. L8 c4 r* C+ f* C2 ~, w                 local tempminp=r(min)9 l$ n1 Y7 `) D* ]5 D3 m* [
                 restore
, `9 f# A4 E7 H0 j9 B                 }: Q0 A' M# _4 a) B& J. |
# \: T- _, ?- C& d
1 E5 F& t$ T9 O" ]. \. a+ P$ D
& Z5 R, u# I; U+ |; O
   gen minp=`tempminp' in 1
7 v' K) `. f4 v5 G2 W! {- X2 }2 ^" M6 ^   *240 minp$ V4 L- ?% J9 Y. L  N/ K! u# X
) b* H$ o% c0 l( E

( S' C9 }- D/ E% j) Y. d  u$ {   ' A4 L1 G5 I- d, M: m( f9 h' s9 W
   preserve
/ l: R# L4 ?* g' @   1 i' M2 t( ]7 J& L8 Y5 ~  I
   sum v5 [aw =avol]& E3 B# r; s  Q; K8 H/ ?
   
% |8 z  v% b& K. r   keep if dx240>r(mean)
, u; J# r- |9 G2 w" R1 A   5 R  \# d9 q5 ~3 u; X1 J
   sum ddy240% X( T  T! y- \3 ~: \1 s  l$ h
   7 C. N# s$ w! T" t6 L3 N, |! T+ i
   if r(max)>0 {$ ?) v+ [+ Q8 m- B- G1 Y
                ; n. E! d8 q; f: ~5 `* f; x% S
                keep if ddy240>=0
2 v* l5 i, |+ D1 u7 E! s' I+ v0 v               
, _* Q; y+ ^" `7 G. h5 q; g                count
% E" o! @! i% @                1 o! d2 E7 w/ H( G& `* m% d2 j
                if r(N)>2 {
; f, ~* S9 A7 I& N, W7 B5 O                 & W! k: P' I, q1 w% q
                 pkexamine dx240 dy240
. q* Q7 N* Y, T               
! y& k7 D6 p' s) j4 L                local tempmaxp=r(tomc)
. C6 }. l* W( x; j1 i                restore
$ G: N% |' d5 K0 U+ L2 y/ t                 }
' P1 u- i4 e" ?9 k* v6 ~: X8 W. _9 [                 / t% w% P9 j9 X- ^- O3 C+ V
                 ! ~3 i5 b( L6 b. T' U5 K/ m5 L
        else {3 ?6 A: M! u8 Y$ P( V" \
                restore : [+ B3 I/ X1 s* t+ B+ c
                 di "cannot find maxp"/ d5 U, H" l5 X! k+ z. O
               
# E! b" b3 V4 O9 L1 D2 r3 m/ p) }                ' {  i2 }+ |( \( s; L! ?: C6 H
                 sum dx2407 d1 J( L2 D+ h$ F/ X" H# s
                 local tempmaxp=r(mean)- C( v9 v/ }8 E9 x' R! d) |2 ~8 I4 x
                 ) e2 Z5 Q) X1 C; }6 B
                 }
& g" y& [* u% M4 y5 b# m                 5 o( N; q1 q8 b7 y: h! i4 _# d
                 }
) A' c: {" a8 R1 Q% [; d4 |                 : c( I, D9 m) o$ Y
    else {8 Z8 B9 G5 v0 J5 B: K% K+ S
        $ N- l% o6 [+ I5 A
           keep if ddy240>=r(max)! `2 d# c* B9 w
          
8 N: I9 V! X1 n/ Z/ B' n/ f           sum dx240
$ j2 Q* e% ~/ H5 W: F' p          
4 C3 C) N, ^8 w7 i. Y           local tempmaxp=r(max)
6 K: I4 E$ `; T1 L$ n  @9 }4 ~! T           restore ( ^: c8 g$ X+ M! H* |
           }
  Q# @3 x2 M0 w7 u+ H* b6 }& K       
4 U+ M: u6 S4 Z6 J/ H- v/ l4 A$ N# C0 `$ e. Q* I' k4 V
  ; R$ k+ y5 Z& ^
, E  n2 [' c5 c8 E
   gen maxp=`tempmaxp' in 1
: L# c  v3 {/ ^! [   6 ~9 m. d) t. a- \2 R$ Y' i
   *240maxp- \8 ?/ q6 M% M0 h2 m( t
   
2 Q% s# l/ b* _& h! Q   # T6 y# w6 [0 g- o0 r( D1 a, \; m
   *-------------ddy240pminp左侧高峰值-----
  I: s5 r3 a& ?* b- l1 G( T: j2 o   
- Q/ X9 g+ W( Q( g, W4 W* X    preserve
5 r# X. K" d9 q% P, s   
) b" u; {( x$ o3 [8 z7 O   keep if dx240<`tempminp'9 c1 f; q. l( F* |+ d
   
5 T* {( |, z* _. `   keep if ddy240>0
0 I! `3 x1 j7 l  e( |9 Q   
8 `! ?9 c3 U3 H& B9 [   count
. L9 \( ^7 @* |4 Z. {  Y) k; O                / j$ `, s% G/ j4 }7 o
                if r(N)>2 {
% o" G" J7 P$ O. {& B* `                 
+ u4 w# V( _" X, l# E  @% a  U                pkexamine dx240 ddy240
; X) g: v) w7 _9 D                * g( n1 b7 ~9 m# \% Y0 ]
                local tempminphddy240=r(tomc) ! o% P9 g/ r1 R4 ?( ]; B
                restore5 I' U& h% p7 Z$ z8 A+ [9 [
                 }
6 Y4 `* M1 j# n$ P$ |) N                 
- T; p3 z" H- L6 L% }: p7 @        else {& ?+ t  g& G, n* D
                restore
; `7 u' _6 }3 E8 y                 di "cannot find pminphddy240"
+ J$ u5 c- L8 w9 A2 q. \                 - a* e- C$ Y7 n
                % b$ q! C9 \, b; a
                 sum dx240& @: q* r& `5 D% `) b& y
                 local tempminphddy240=r(mean)
. y( f. ^" S: e                ' P8 |7 |' Z( X8 i
                 
, B9 q2 q1 u8 j& [                 }
7 a2 S5 [( N9 O% ~5 P1 Z8 B                 + L8 U* ]  p/ y$ S
   
2 J, j( E8 R7 u% T& B' g   
8 Y2 U6 I5 a$ ~7 v2 {+ y   5 ?9 S, ]8 Y3 ?* Y+ _: d
   
$ k- k% e* u4 q0 r   
) }* ^- c4 i  Q- ^& e# C; p! H        gen pminphddy240=`tempminphddy240' in 1
( y  W* G4 K' ^       
( S- ]$ ^0 t4 Q8 j% r        ! Q$ l6 S$ ]+ q; Z
        *-------------ddy240pminp右侧低峰值 -----------------
& F  m$ W" B) ]. n* {: f  z    preserve
1 ?  E, \8 |8 p0 v5 ~" X! e( B3 E
$ B/ }  B0 h3 J$ x, q   keep if dx240>`tempminp'
$ V% u! w2 a2 l   
: N6 U  l  }" P+ {   keep if dx240<`tempmaxp'* }/ l* U% Q5 N' r# T" ~+ Z( m; R
   
/ d8 P" ?. D7 ]6 z5 s   keep if ddy240<09 o' t& s4 A0 Q2 G/ C
   
# \1 _: |2 m4 K% P   gen temddy240=-ddy240
2 a  B$ E% k- r- C; B   
& B) ^3 H! {+ _    count
# s% q, \" r2 Q+ D* |* }. m                + Q8 F+ _& U8 n( v' N9 M
                if r(N)>2 {% X7 _, m) K8 o3 E. h4 P
                 
1 e# d% ?: ~/ A- K% w4 p                 pkexamine dx240 temddy2405 o8 [/ p$ A$ J; S) m
   . Y: s, T+ V6 ~! {9 b: @" s8 l
  local tempminplddy240=r(tomc)
* c/ O! P! j$ u8 e$ _& o) Z                restore) d4 m7 s) z6 A; m  `8 y
                 }
  i9 w. P0 s" G                 ( G1 u9 J0 c, {/ B0 b" o" [! \0 a* J
        else {
# r, @5 I) B4 j2 y5 ^/ Q                - p; \8 a" A& g6 A' X
                 di "cannot find pminplddy240"( \. V$ p. H9 }+ y& y. A
                restore
) J1 [* r% d7 Z8 E5 c. }. J: k                 
2 }6 S& H6 j& j  b) \, _1 N                  sum dx2404 m4 d, V! p; N) w2 |
                 local tempminplddy240=r(mean)+ A7 p0 G& n! c8 W) H/ d! s  [
                 
* [' r6 ~2 t$ R* {( A                 
+ V( c+ O7 ~1 L; m7 i7 o                 }' Q: @: K0 m9 n3 d. r0 }4 E, F
   7 `* x" z7 B% i- U  B8 g' j: U: |
   
, U$ Q; G" J% `, w' v3 r. e) L   
: r( I% \' z; n; O   
' }/ m' S" A& S7 l! e6 n! \7 [. C   6 \6 c# h8 B7 y2 T
        gen pminplddy240=`tempminplddy240' in 1
; G; F" I) W! m        # r  f$ G8 S: z9 }0 K
        *-------------ddy240pmaxp左侧高峰值 -------------------( d4 ~* M4 A9 J; Y( u
       
: l8 u6 i* w- z  D+ H3 S8 x         preserve
0 O9 o: K  F# |9 p! G   / P, ?: M, B/ A0 ^5 y
   keep if dx240>`tempminp'
$ T/ w4 e4 H( [2 O* _. Y   
* l4 c) u* v: n   keep if dx240<`tempmaxp'# g- s& t9 H0 V1 P0 {
   ; d; e1 p, I0 r2 {4 w: y
   keep if ddy240>0
6 ^; _  D  e% I( ^   count( H0 v7 t7 d$ f
                : r5 F( ]: P4 U. g3 }4 j
                if r(N)>2 {8 P0 O+ p! S6 {# `! m
                 
; N% I, [+ |! f: y1 p                 pkexamine dx240 ddy240% a# v* C1 B# r, a8 h; D/ ~0 Y' c5 e
   
* Z7 j1 j3 t$ ^) g6 R$ k1 Z1 R   local tempmaxphddy240=r(tomc) ; V4 ?( \- R' O2 r7 R' c( [1 E
   1 x" a# C; \! b$ {: J
   restore/ n0 p- \) _7 ]% M
                 }, N+ V6 a4 G) X6 i
                 
0 a, Q) d7 r) F: q# ^4 z" F4 U        else {( {0 C( L. s/ q
               
5 [" ^1 a, k& c. O/ \) e: p2 \                 di "cannot find pmaxphddy240"
6 v5 s" C& N! D                 restore
. O5 O  c! W. n5 T# U  b# N9 r* l                + q, i( l' J& `/ H. J% z6 _
                 sum dx240
* z' j) r2 s* ^                 local tempmaxphddy240=r(mean)
" C" u8 H6 |, ]7 V$ m8 x. N                 & ?: F* @/ E6 T0 e
                 
. n& i3 q5 k  T6 }% k/ r# h+ u) [                 }4 W8 W0 `& U/ K1 N9 d: G
   
) t6 W4 i6 c9 u* f$ e   . M* y3 @. Y$ x4 ~$ l1 V
   
4 P4 R4 ~) o  W1 V3 a   
4 p1 D! l% Y9 i& n( _3 Z   ( L+ i9 D! l. k2 b0 M) S0 i
   % X& Z  r9 p+ D0 W. l
        gen pmaxphddy240=`tempmaxphddy240' in 18 A. \2 U0 W8 v6 ]2 O& I
       
- Z5 S. `! p9 w* x% k+ a        4 L2 Z  A* H; ]* ]7 H; V
        *-------------ddy240pmaxp右侧低峰值 -------------------# D1 c, B# O( H8 f8 G8 n( r
        " p* d8 \+ d' G2 j0 h/ z
         preserve " T* F! Y+ U# f( B1 T! D, f
  , _* ~+ l- E5 y) }
   keep if dx240>`tempmaxp'# d& u7 a7 A$ f
   
. ?/ u3 l/ |$ T( H# [  A   gen temddy240=-ddy240
& m) s. }0 X  d* }7 d  W) F) j   0 C, ~6 l! m4 t9 s& r/ j6 d
   keep if temddy240>0# l5 H5 X6 v" a8 L) d9 n
   ' V6 l' l/ K/ X$ w& r: E$ v/ b
   count
4 S# x3 r3 E0 F               
- ^' F, x4 D6 t5 {4 D2 \                if r(N)>2 {
% ?# \. u; S( n3 `" v! I/ w                 
7 @/ J* L7 o5 a" U/ A) f                pkexamine dx240 temddy240
# w' \0 f  d; C% n7 h   & I. x5 G% F; f2 _# H* R
   local tempmaxplddy240=r(tomc)
" }, D& {' S4 z# r6 D/ M, U   restore
( F( Z3 r/ d8 K$ l, g                 }
- N; k6 B0 L" `. R                 
. t" M9 b% p& Z! S+ s1 F: w        else {0 w0 p# }/ q; N$ @
                restore) ^* F; X3 q3 M# D
                 di "cannot find pmaxlhddy240"! _  `/ t2 N3 e& W
                 ) q8 v' ]1 F; S/ ?
                1 y/ R3 [  w; m. Q
                           sum dx240
8 S) H% Q/ f2 y2 ]  a                 local tempmaxplddy240=r(mean) in 1
8 a% s6 m) u; y: X9 y$ ?               
- k1 Z" b( X) {- Y6 Z                 6 X; A: p7 _) {) |1 L3 z
                 }9 q% J# T! [: A" ]5 n
   
7 K) d7 p) q; v2 S   
! y" _' W/ F- d! ~6 u6 f. J  `1 g, y   
6 z% c1 Q. q- p2 e   " o+ T& C- d7 e9 {
   
+ {# B, _9 \) [' Z( `: ?* G0 a7 G- r   
2 Y( V; K, R$ Z        gen pmaxplddy240=`tempmaxphddy240' in 1+ {, K: C  d4 a
       
+ E' I3 Q' r: f$ M# N        *-------------------------------------: I: \6 J- v! a1 [
   
$ x, _- G, O% B! [  s4 O/ i0 p   gen price5d=v5 in 1/20" Z; j  z2 R0 ^
      
$ c' G0 M( s+ B9 v. W2 M   gen price5yy=_n in 1/20
6 ~% K3 {' g; f+ m. P/ b" _   
2 Q0 T* Q; G0 `+ ?   gen price5y=price5yy*(dy240max-dy240min)/20( ]- u" @% Z5 F2 e2 m/ H+ P
   
- l1 r! a- H8 D$ N: G% w  c% n   *price5y &price5d
' [$ t/ M! j* d& Q* d9 Q/ i   4 t9 e1 Z; P0 i2 X  y! L" M
   gen priceny=price5y in 1
+ t, z; y: N+ k; u   
+ u$ o2 t2 w8 t- E   gen pricen=v5 in 1! Q- c4 P% N8 x* L$ ~

4 j' l4 f: @+ [5 W6 c3 x+ B     
. o) O* q4 e, E5 x/ P' y   *priceny &pricen
/ L% U% U4 @/ w6 V   8 P3 a. N( L( @: W! ~/ ^
   
3 a/ y; U6 F, V% [- Q2 h5 l! X   *-------------------------graph------------------8 B  X3 J5 i2 u% X8 f
  
2 h1 L8 m$ g8 H" @* w( E' w" i% _5 Z: p  tw(line dy240 ddy240g dx240)(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black)) (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)0 i9 y* M& X+ `0 m2 [. Z
1 K. _" E. S" |  d
* ---------可选项目----------------------
4 V# A+ E% T5 Z1 {$ f7 p! v*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
/ x/ p( g) m# [) p9 n; ~- E}8 c0 Z% Z$ C' n' P6 Q
end/ R' {& M$ O/ r+ Y4 I1 C

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-11-1 07:10 , Processed in 0.061957 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表