设为首页收藏本站

爱吱声

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

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

    [复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2011-8-13 18:03:43 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 awer 于 2011-8-13 20:49 编辑 6 m' W; P# k2 f- J, d6 V4 J
" K: q! ]2 Z' ]. M8 H1 w  h  k/ z4 X
   我是从西西河一直追虎大追到爱坛来的,虎大曾用stata 分析过股票的长期成本和一年的短期成本,但是直接用kdensity命令无法得出筹码峰的具体数值,因此我写了一个小程序来计算股票的筹码峰值、长期平均成本和短期平均成本。下面就给出具体实现方法。
计算之前需要有
1 招商证券系统(通达信其它客户端也行,功能都差不多)
2 Stata软件 (我用的版本是Stata/SE 11.0
然后
1.新建一个文件夹储存股票数据,比如:
e:\stock\source
2. 股票数据导出
a 进入招商证券, 系统-盘后数据下载,更新数据
b快捷键“34”进行数据导出, 在弹出窗口选择- z9 S+ u, Y8 W1 T) k' {( F
高级导出”,
在高级导出窗口选择日线导出”,
将导出目录选择为你新建的储存股票数据文件夹的目录(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" {& q5 o5 j' m& ~
1 Z2 ]. M4 F' l4 ?1 g& x/ f7 I
(002128
为你想查询的任意一只股票的代码)
几秒钟之后应该会出现下面一张图

2 _( G* T! H+ r3 |  Z
hello.do (5.25 KB, 下载次数: 12295) 其中蓝线为股票上市交易以来的平均成本值(注意!此值没有去掉一级市场发行和国家的0成本)
红线为一年内交易的平均成本值
黑实线和虚线为一年平均成本值附近两个筹码峰的值
黑方框代表的事20内每天股票的收盘价格
红方框代表股票最新收盘价
山寨完毕, 收工!!

评分

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

查看全部评分

该用户从未签到

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

该用户从未签到

板凳
 楼主| 发表于 2011-10-19 22:03:57 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:49
0 M2 m, S; h* U能不能帮忙看看:- N  Z' P# C. v' L, Y; N* T/ T+ A
! y, w' |- f7 o" J7 Y. P# C4 y
do hello

  Z  h! q" y. ^- }& S你算得哪个股票?

该用户从未签到

地板
 楼主| 发表于 2011-10-20 11:18:45 | 显示全部楼层
沉默的前哨 发表于 2011-10-20 10:32
$ n  |$ c4 t' R) n7 m/ ^( Y3 Kdo hello 后变成
/ F+ B' q. c/ B# u& W......
7 q2 ^7 X3 z1 f* e$ \; l

该用户从未签到

5#
 楼主| 发表于 2011-10-20 13:32:47 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:45
$ @: j+ O" F6 |5 p# H+ ~9 v为什么老是提示:type mismatch

  U! O+ Q# I0 i: ]注意 日期格式要选成  yyyy/mm/dd,要不然时间变量格式不对

该用户从未签到

6#
 楼主| 发表于 2011-10-21 10:05:17 | 显示全部楼层
琴心三叠 发表于 2011-10-20 21:37
0 m) s, `7 ?" R1 \+ M谢谢答复  还有一个问题  我导出的文件为何只有当天的数据  而不是历史全部数据呢 ...

, b/ i% j$ ]' G$ \/ Y8 r有很多问题是数据不全造成的
5 w% a5 g: ^% \8 R如果想要全部数据," x5 f$ `1 X. d; k4 h
系统--盘后数据下载--日线数据--日线和实时行情数据2 f5 ?9 E. s( [2 z
. M1 i% D! E( r! {6 g7 F' ^
把开始时间设成中国股市开盘的那天,下载全部数据
3 t. d* k3 \3 z# j
$ q( C7 H$ m9 C  }+ W3 o% o5 a下载完全部数据后,在屏幕上使用快捷键 34
. o: H! f4 R* G/ `5 j  h3 ]' R8 ~5 C$ d3 x" Q7 Y- a
34--高级导出--
3 F+ }! H5 ]- d, m9 j; b0 A, x
3 k. X! Z" F' s8 o然后选中   日线导出;选定导出目录;文件名设为:XXXXXX.TXT;勾选精确复权;不要生成导出头部;分隔格式为tab();日期格式为YYYMMDD,然后选择添加品种
% P, `8 F$ |" K7 ]$ \8 }: m( i3 G( l. T. f: H+ b  ]0 M# l
我一般都是把所有数据下载到指定目录下,然后进行hello运算
5 X* e" ?. O0 a* K8 ]  o- E7 {1 s& t3 Y% \

该用户从未签到

7#
 楼主| 发表于 2012-3-28 18:06:25 | 显示全部楼层
改了一下,这次运算应该没啥问题了
, d% I1 R0 b6 e0 ~
. A6 q% X3 ~, `, g
7 N! [' u; ?' Icapture program drop hello
: W2 G2 }5 p. X" s2 g) i" `( g* u- i: I& h  I
program hello
' ]8 _0 g- B* c% K/ C; z- q
, b: y. G) o5 P quietly {
4 q; a4 f8 l( d9 D" j5 c' S) c8 ?; E* U( w* i: M
clear/ o0 C9 R, o; F0 p  i  p% V  ]

0 d: p1 \! b3 e! a+ k, X, K" N- ycd e:\finance\stock\20110101\source- B" q. B1 l* Z2 {- l
/ }0 V' }* U5 r  R
insheet using `1'.txt8 Z, g0 l9 u# B4 s; c- m$ J

  K/ w6 J; [6 d$ t   keep if v5>0
% W' x4 h! _& I. n0 e- w0 d1 M   
. b9 t3 `3 L% Z0 s  I0 `) w   gen vt=_n
6 G9 m- U( Y4 C4 L   
. |' X+ f6 \6 p- X4 P; n& v' _   tsset vt
+ R$ E/ f4 o& H1 m/ U
; X2 F9 F* A' i0 d   gen zf=D1.v5  U( W0 c+ `' D: q' m- i6 X/ m

5 m3 U9 g" d# R9 \' S7 x   gsort -v1/ `% K  \% U7 J4 a# ~3 a

& g% {3 |# }& A# j4 e7 O" _6 k, k   gen avol=v7/v5
8 [/ p2 N  |* H/ u9 c1 m+ X   1 `5 ?. w- K3 S6 H$ ~
   keep if avol>0
3 Z& }& B/ R  Z4 A   9 t: d: M# W4 Y: p6 D4 w5 K! t% y  O
   drop vt
3 }# ?- L' B' ~/ \  6 s; a3 E) C. U* Y
   gen vt=_n
8 E0 D5 g6 _% m1 p1 _   
: l) z: d0 ^9 D1 Q/ Z0 O   tsset vt! q: J; ~: l3 w0 J
   
: p* B4 G, J! K( ]% j) }' t; I    sum v5 [aw =avol]
; u- C/ q: {+ E4 b5 p9 [
) ?1 x. i1 E9 d   gen amean=r(mean) in 1$ e( K% s- p7 @& M, f$ \3 R% ^
   " O1 ~8 D/ t4 i( x
   * 总加权平均值 amean) S1 i1 C/ F" u& n2 h' ]
   * r; ~3 B# [! K+ _8 ^/ G
   ! N5 H5 ?' f0 a) b7 r" ~
   keep in 1/240, b. ^: G5 L& c7 K' B. S: k' _
/ Y) @0 N0 q: Y5 B  I
   sum v5 [aw =avol]0 v) \& X3 K9 w5 o0 s; c, U. V4 L2 r

" E) F! C+ C2 I   gen mean240=r(mean) in 10 c+ S! i! H' Y
   
$ ^  _& \; `* k, D; w# }   *240加权平均值 mean240
& w0 Z  ^5 w9 j. I% u! n* Q5 L! {   2 o# u' E* r) c6 k
   set obs 500 0 @; {( Q+ M9 `% W( b3 M+ [) ~6 O% }
   
! x' q4 e, q) ~& J" x2 X) K   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
3 V3 H2 n2 ^7 z1 N  J   
  r( H& F' N1 _$ c   *240 kdensity(dx240 dy240)
% R' D+ _2 r. x! r   
5 `* P0 e" r' n) K2 o1 Q, s   sum dy240
) p7 X0 ]  E- A. D5 {" }   
& F+ n8 v/ K5 g- L2 {   gen yxis=r(max) in 1
1 ?0 `6 {& f2 N. R, H   
/ X) \* c/ Q4 \4 z* u" B: A   gen yxis2=yxis/2, b. b- f7 U. j3 y
   , C' B, L8 |$ x. T' y
   *yxis
# f" L% H0 C, w5 X# p6 r   / e6 z8 T% K  [( G& X5 c
   gen dy240max=r(max)( C; R/ h/ k( S- m* T
   
6 r6 |: J: r. x4 t5 j, p( X; q   gen dy240minp=r(min)
8 q6 R. h( q3 @) k : w; [1 O5 v- @6 S6 x, K# ^5 O8 @! `
    gen vtt=_n
: ^+ }$ [5 R% I1 B* o  Y. B# C1 |; b3 s3 ?. H
    tsset vtt
. b$ J) y% s3 C7 p& T/ N. j
* c: W/ v( D  y" i   gen ddy240=D1.dy240/D1.dx240( J: O3 K. T9 C
   5 P3 Q5 N" x/ N. ?: y! W
   sum ddy240
/ w2 o# c6 y8 }& t2 r   - j0 b$ H+ C- i
   gen ddy240max=r(max)
' A( S! T5 n% h" V+ n   + b9 A) q4 N5 u4 W2 B
   gen ddy240min=r(min)8 q3 ~6 S0 W' _' y- b6 w3 C
     # t% u) x" t( \. J
   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
. p3 P1 g0 K& g6 e   . N  a/ k( M+ H+ S( c; F) u6 N
   sum ddy240g: W* Q0 \9 |  v" H  J4 [
   1 [( ~3 H6 r( P- \* X. P% \3 y! B6 H
   gen yxis3=r(min) in 13 C0 }& t8 h4 X& Z& e8 d' }
   / J7 c9 S9 p9 Q5 m
   gen yxis4=0 in 1
- b. U( C' i2 r; D3 G  $ o3 A! B" x( M5 J% w1 U
  *ddy240g
6 k5 O- I5 A8 ]) ]) P5 I$ V( j; M: V! w5 ?   
/ r4 v# O7 z0 Z9 y6 F   
! n2 b# o. _+ z1 P0 c  A" g$ M5 I4 Q  preserve
6 S( H6 F; r5 X' s- b! w  
9 H) \, \% T1 X9 S: y! ?6 y; _  sum v5 [aw =avol]
: T- b/ X# k: g2 S  
! ~5 V4 ~; U$ \% z3 K5 [  keep if dx240<r(mean)
  S2 Y$ u+ X" l2 {0 Z+ i  ( k7 |; Q( C" ]& s3 S" }! Q
  sum ddy240: i4 b* r' J/ n# B
  
1 q  S) I- M7 @' x/ |( k/ \/ F  if r(min)<0 {! p2 W7 F0 V6 w2 E
        
' ^! I& d! }( F8 n: \% R                keep if ddy240<=0
% k6 F  O+ f, C+ m               
; v1 M; c+ `/ u0 g                count
  z" ?) {( b* ?1 z$ O               
& Y2 J- V. }9 A                if r(N)>2 {
2 n0 M; Y/ T5 B8 E5 P                 / q4 G  N7 C: ?# l
                 pkexamine dx240 dy240* ~5 o) i2 ~, {' \
                7 p0 K" _* t% l" D9 z3 L1 g
                local tempminp=r(tomc)
% Y7 S0 S7 L- _2 g1 `- D# ?                restore & s, \% x* u/ X2 |! u/ [& v
                 }
& P- H. G& E* ^1 X7 y                 
" ^$ B! X# W8 n6 \        else {
* \0 N# g! v6 h$ g3 E                . F$ o% s$ s' v! K
                 di "cannot find minp"
2 Y' p4 }+ \1 U# i* Q) r+ l9 v                 
+ B( L9 \. J  ]# ?                restore
* k, [3 ?7 S; d( }" M                 sum dx240. u$ d; ?, D( f- S+ D$ o
                 local tempminp=r(mean)9 m: |7 n, Q6 d" q, r! G7 o* s
                 9 I9 n2 o; g8 Z$ ]5 E" f
                 }
) Z5 I# f) s7 v; x) q! S0 ~1 P" [                }
, ?9 g! W4 h/ |- z+ r* J0 T   else {
' u; v. A' D( ?  z( S# ?* }5 X                 
* E; e6 H  h! H0 }0 L" W6 Y                 keep if ddy240<=r(min)3 H- X& |- K: b
                 
1 a) G( B5 H( D) \2 Q2 `0 L+ `                 sum dx240, E5 q* D# ?/ X: Y( e- @9 S
                 , R. L+ [* O, D9 q" x! }' z
                 local tempminp=r(min), d9 _# Z, `- r. L
                 restore , A+ }# Q7 b* B6 o3 t
                 }
' c) `9 K; ]3 N3 |( t2 O/ l/ \
* u6 S7 @: t4 T. ]' f$ H
( O2 y0 i, q+ Q* f" H
  n! N4 k9 y3 u4 c9 b   gen minp=`tempminp' in 1
: x5 s0 L1 A  E& m   *240 minp
5 |8 c# C* u. F9 o0 y
" L9 q4 r- W7 M8 l) Q/ q4 y3 R; C
! X  a; u3 A5 ^* ]* D; i   
- }" \* Z3 s& C- |   preserve
2 ]( G6 k$ \8 X0 ?' p! i   ( A8 v- R  L! ^0 M
   sum v5 [aw =avol]
- e$ r  U% B$ }4 m/ A7 U2 E   
" R, |2 x0 m# p" ^   keep if dx240>r(mean)
! O0 f* I# z/ B' I* C" v   
, e, z  p6 D6 g- r# K5 e2 d   sum ddy240
* ]7 `- F# y6 l" G   
+ O% Y2 M7 @! S7 S5 v9 t   if r(max)>0 {* o0 u6 z1 i" w: O" Z4 T$ @! x
                7 _4 b' a( o  M2 h/ I
                keep if ddy240>=0
- g) \! q( L$ ?/ g- A                1 R. f0 t, s1 A8 b+ s5 r
                count- ^. Z9 C0 p, A# E; k5 l0 i
                / l' h6 B0 p9 U+ _, v  Q: p6 F
                if r(N)>2 {( o  y, R$ B/ P/ |0 r9 a5 h
                 9 ~9 R$ h8 g# u2 |: W
                 pkexamine dx240 dy240
2 ]% ?% Y& b% x: G% X               
# e- t# b" o3 y& F' K# {, y                local tempmaxp=r(tomc)
: ~- O! }# L' A+ k1 q  t" d  g' C                restore
; `8 k' y5 V5 b/ e1 D+ o4 H* G                 }
5 R' D. N- M  B& l                 2 ~( s7 s, {8 F# P, B& _
                 
8 Y/ Z3 X7 v8 h9 m" e+ t# A        else {0 [9 L3 J: Y' I1 |6 S
                restore
; l) Z# @# u' u) Q4 ^                 di "cannot find maxp"
; I3 ]% y. F/ I6 y               
4 Z8 a  D- i/ E5 x  M, [* N  H. c                6 T' M7 d7 g( g
                 sum dx240
  V+ R% W) L1 k" s  Z! u2 m% K                 local tempmaxp=r(mean)9 _0 e0 [' q- `9 z/ L) R
                 - Q. H7 G% D. v
                 }
7 U- x6 p3 e+ [5 a                 * H: u5 g9 g* h
                 }
4 D; B2 ^6 m8 V4 w0 `9 j: F, K                 
  {) Z1 B/ [1 N- Z$ O6 l) D    else {$ d- \  ]% @' Z. P
        $ t8 {7 |3 X) B3 M' L" l- l  S
           keep if ddy240>=r(max)/ A. P! S2 b* l
           / A) s; N5 G9 [3 ?( n6 P
           sum dx240
6 S  y, P, u1 P2 g: v3 O           , u) J9 C; B6 p. R! P5 J/ M
           local tempmaxp=r(max)
6 O! D" I% j- a( s$ g5 F           restore ( H( w9 q9 j; K0 h  \- i
           }
- T; d/ z$ r* L' r: Z- c       
- v# f. f% ?- ?: I# d5 x  a7 f4 r: J7 v% W" D% \9 t$ H- }
  # e; R" t6 u9 }! J: M3 h+ ^
+ U8 p1 o- f! }7 T
   gen maxp=`tempmaxp' in 1
. z$ D' D( |0 u' \- \2 H" A   2 ~  v- X2 C% q5 H) _% [
   *240maxp! J5 O1 J. ]  u7 \) w' {8 g, ]9 A
   ! g- D* Y# Q8 S. I# U. e: W1 n
   
6 F6 H( K+ [% w2 B0 Q/ b: j1 c   *-------------ddy240pminp左侧高峰值-----
1 r+ Y$ i6 j2 z" w9 x: N% p3 @   : ~# G1 {9 F3 s; h9 r; W- r
    preserve
8 f2 y: v% d. |. H, L: b( ^   
) }/ T* r5 j0 A; S( o   keep if dx240<`tempminp'2 g9 e" F& `- F  x( H2 s/ |' P5 B4 V! Y3 [
   
6 G. J- z. c# h# [   keep if ddy240>09 K! F8 o& e2 h6 A; }% D) t. j. v0 y# \
   8 R: M+ ~1 s) Q7 n, Y
   count
* L3 z$ i1 E$ S               
- _- a1 ?6 D* z4 `. c                if r(N)>2 {) [7 v, i  D5 V: \- I  x
                 
& {0 Q0 W1 x; j) T8 {                pkexamine dx240 ddy240) I6 K: L( P2 K0 }. \
                ) T1 Z$ @: N0 Z# r: u4 D
                local tempminphddy240=r(tomc) ; a+ o& H6 ?6 O  h, W( [) z* n
                restore
+ L% R1 Y/ x8 z5 B                 }3 z6 Y" ]' d- f
                 9 ]- P4 d/ T( }$ [
        else {
. ?" q) c' [4 n8 w) p. x                restore
8 S) c8 ?2 C0 F# i' w; j/ V                 di "cannot find pminphddy240"
7 B4 ~3 O  I, G" N; u                 % _& i6 J  ?2 @9 S0 x0 g
               
) {$ v% K$ d- S: l" `' B                 sum dx240
$ S, F7 u2 q7 S' p4 ~- i; T                 local tempminphddy240=r(mean) 8 ~5 i, M8 n; \2 W/ z) H
                + ?9 Z5 E$ k+ o# p, d
                 ( t9 w3 t8 D& |: N3 \
                 }' h/ G3 z5 B# r, K
                 7 Q. h1 y5 G! H" c
   ! v8 Y7 ]% R  E$ q4 S% s) @
   
( e0 c7 Z/ G9 @' s  A' c& H   
! _, P/ `6 D1 W" r# w3 M3 L; _   
2 F8 ]3 p2 d( \* C& P. {- B# s/ d   8 T3 c8 b* l9 W) V. @
        gen pminphddy240=`tempminphddy240' in 1
/ q" l/ h* Y0 k4 D: U        ' V; S: }' e2 H
       
7 ~3 I0 k/ ~# |9 @0 S        *-------------ddy240pminp右侧低峰值 -----------------6 Q9 ]/ ?  z: l+ m8 Y4 L9 l
    preserve
/ z: S' |5 j1 N/ s# p 0 n4 ^5 S& K+ L* q
   keep if dx240>`tempminp'
0 |1 j/ p* c" ~8 c. N( F2 `   
& h/ F5 ?0 b1 w" ^* J  i. I   keep if dx240<`tempmaxp'! d8 I: i6 L- s6 j5 h) F/ N
   3 d6 ~5 }5 D$ I- s
   keep if ddy240<09 v) H) h& T; {5 T7 r: h, V
   
1 B7 G6 I' H3 w, j, p   gen temddy240=-ddy240/ i  j- u0 L# [/ L: ~
   4 U% Q. q0 B9 [
    count
9 N4 C' V; D7 t' ?, y2 j1 z               
" o5 N. }! H1 \- M/ g                if r(N)>2 {
; B2 B7 b5 ?1 x% |) b  r4 r- D                 
; `5 ?; I. b; |" s6 U; h8 k                 pkexamine dx240 temddy240
2 B9 ^, M& N7 l" M   
1 H$ R7 J; v" r  local tempminplddy240=r(tomc)6 ]% \( ^& W/ g" u  ^
                restore( J3 W/ B" B# n# s
                 }1 M/ U  R5 a' R5 o
                 
% x: }7 f& {7 {+ y8 m7 C& y        else {
& ?* B7 X( t4 ^2 z$ M               
" j; J. \  P2 T- D  ^                 di "cannot find pminplddy240"
2 W8 r+ U6 P7 H- ^1 W! I                restore
& A2 e2 J. d7 z* @! k( E                 & a0 L+ q7 l  L  u& a4 s
                  sum dx240$ v7 R$ x" k( R
                 local tempminplddy240=r(mean)
, M& ?( i, _% J                 
% n' S6 o+ E" X                 
9 R0 d$ f4 `% _+ P; [                 }
& [3 H; a* x8 y2 Y7 v! D& Q# L   1 [! x4 s' ^- x+ @1 M: o
   
* b6 M4 @: z, u0 g; ]4 n   - S8 \- s* V) v( D+ v
   
* T. ?/ F7 Q) }8 e   6 {+ v; U0 M6 @6 M+ u
        gen pminplddy240=`tempminplddy240' in 13 i, t/ d3 V# N; q
        + O# F* v7 Z1 y" T( z; `' ], S
        *-------------ddy240pmaxp左侧高峰值 -------------------
9 R. l! i1 J9 M* P# m. p# W% A, q" i       
' j1 Q7 K5 F% [  f& e  b# s         preserve
1 G4 i# {4 O0 ^; h! p5 \   # f+ F( e5 L4 }% [+ _9 w
   keep if dx240>`tempminp'
& i- q# _% x' j4 k+ P  I   # l' X0 [2 Q8 N, z
   keep if dx240<`tempmaxp'
: ]* y" {4 q; q) V+ O/ ~) V   " a7 |9 B1 M0 }8 q, {1 J2 r
   keep if ddy240>0! y+ L/ u% B9 u- p3 G+ Z
   count
. r" `" h' v7 o) R, C3 E( }                2 ^6 h" U* ^  Y: i/ }( t( k4 ?
                if r(N)>2 {" d- P$ X4 n8 F2 L
                 
/ ]+ ^: M& U$ e. \% B6 d0 H8 L                 pkexamine dx240 ddy240% t9 K: Q1 h; ^2 o9 d' D( B
   
8 a' F0 n. h9 L5 Y; q   local tempmaxphddy240=r(tomc) 0 k9 N8 d7 y& [" }
   
% L; Q$ j: ]5 U( @/ y9 Y   restore
: |2 e" X! Y# Z6 [                 }
: _% g3 E% f. A                 
# K0 D3 h3 Z6 R. O        else {
; p4 M* n8 a( e- l, D: {( a) s' {                1 g2 I/ P* N  `
                 di "cannot find pmaxphddy240"0 [* r4 P4 r! r3 u2 V) C& P
                 restore- C/ |; B5 I$ C
                " K# _  Z  u9 z  j6 G5 V6 s
                 sum dx240% ^& k% S( F9 G0 h: b' p% @
                 local tempmaxphddy240=r(mean)
, K1 G! G. r& o" X7 `0 Y  i                 . _( I" G3 x- T% G3 |
                 * O: s8 C2 i& y7 V- A% }
                 }
) B8 M5 f# C3 X5 |   / H# w4 T0 J3 o+ U# W9 I
   ) f! a3 Z  f2 x% v+ c" p) A
   
# D$ @. y. ~' Z7 {4 m   
5 b7 ^3 l1 W* M   
# i4 R+ n- A9 M& H- \8 |   
; u% L3 W% I" ]9 \' Z( G- F4 d" @        gen pmaxphddy240=`tempmaxphddy240' in 1
3 |+ ?6 @4 F) I2 J0 O- {        * m4 k7 b- y1 }- `  m8 y& v5 s
        5 W8 v' v0 g* @9 N3 d* g
        *-------------ddy240pmaxp右侧低峰值 -------------------
) C: T4 p% ?* r& K3 ~       
/ k8 B* U9 _6 D8 l# L  [2 |0 c         preserve
: h. N, {* J0 f; S  
- R/ `7 K+ r7 U# A! \   keep if dx240>`tempmaxp'
! P) E  C2 R6 y$ R, r) X9 m2 {, l' u   
' g" k9 R- i' W2 y' W+ b; C( K, M6 x   gen temddy240=-ddy2409 ^4 s. s9 K+ B; Z5 i
   
& q( P$ U' j# O7 z1 @* Y   keep if temddy240>0, a- j; t. G) U. C; a3 J
   
5 c; l; R" H! ?$ S% v9 E( q   count1 F' ~, x  h& [! W! j
                " E% `2 J8 _" {# L! U
                if r(N)>2 {) F( J! ^; S5 S
                 ) l/ @4 q& W7 k, n
                pkexamine dx240 temddy240  u. M* s# `/ i) o/ \
   ! Q# Z2 U* B, G! r1 W
   local tempmaxplddy240=r(tomc) $ ~' Q8 t" x7 `/ Z3 Q  u, K
   restore. x* p8 t- J8 z5 w! Y
                 }9 n: Q5 e, _; A6 C+ b8 q% e
                 
, A$ `. ~1 D) O- I' q+ b( g8 i# S        else {9 p- \2 a) z. o/ K
                restore
  f$ T: k  y2 N8 P9 T2 \5 K                 di "cannot find pmaxlhddy240"
" m7 _: q( Z% R6 u9 x' i4 G! p                 ; s% g- _' W  D. i9 Q
                - m" J: n9 R; [' O
                           sum dx240
# a$ e! W  Z6 G                 local tempmaxplddy240=r(mean) in 1
0 A; i3 t. O) [+ r* x* v               
3 R4 ]/ ]' w# g2 E5 U/ u6 B                 
( h/ n1 \  f8 j: J! u                 }9 N5 X5 e: r; t$ @( t0 h1 |% L. c
   2 A2 n! i' i2 O& o* [+ \7 Y; V
   
# B3 r- s7 A: l1 ?' g' O    7 v) R* N7 d# P
   
0 k3 l: g5 v/ E0 `# ^7 A. ~" s2 _   ! M3 o& c1 Y1 t0 w
   & M  d% w, z/ p2 O  j
        gen pmaxplddy240=`tempmaxphddy240' in 15 U7 N$ l$ l  {9 c
       
" Z  Z- E; O7 ~. ]        *-------------------------------------
) |3 O7 _7 P9 N" g9 e   2 w8 a6 H2 S' I, G2 _
   gen price5d=v5 in 1/20
/ Y& O8 H; D, Y9 L* F' l      - i4 S* w' L! F3 H( m7 y$ E, K
   gen price5yy=_n in 1/20+ d! ]& N/ c! F: E7 d6 B
   $ ?" j1 `8 X2 @
   gen price5y=price5yy*(dy240max-dy240min)/20! [" j& F% q/ c3 y7 _" N- k8 \
   
, }; Q: k! E+ r% l2 A   *price5y &price5d
0 G; Q' _+ o' ~2 g' ]   2 R3 u& w" }/ K% W. Z
   gen priceny=price5y in 1
, W: N; v7 c) A+ g; V   
2 Y8 D% R2 W$ W' @+ j9 o$ i! G5 d   gen pricen=v5 in 1
6 ]. `  m. m6 P2 E% \! V+ T
4 L5 E* e' [* Y, a! I     
' [: y+ k  t1 f8 a   *priceny &pricen8 T4 Y9 x- K; i$ C  t& E9 G
   
1 w# E% K/ v1 M7 f4 M   
+ }( K4 j6 [" e6 v   *-------------------------graph------------------
9 E( U. z+ e# D6 m: u4 g  \, t  
7 ^$ K5 m4 J# t3 O7 [6 ^  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 _- k, R" R* _& m) I6 `
' L* L- C; T( l& I3 s5 Y4 v/ ?
* ---------可选项目----------------------
: |* L  h4 k3 l, l6 g, s
5 U' W  v5 r* J7 h! U6 _( S}2 o5 Z2 W- |$ O$ c4 ^/ O/ d
end' P9 p4 w4 w' _% r& B$ \+ X; C

该用户从未签到

8#
 楼主| 发表于 2012-3-29 11:40:51 | 显示全部楼层
旅途愉快 发表于 2012-3-28 23:23 7 U1 F* L" [8 Z& @* s
这段代码是重新复制粘贴到hello.do里面的?

; G4 |5 a- S6 L4 O) v# V; _6 s% p对的,就是hello里面的那个

该用户从未签到

9#
 楼主| 发表于 2013-2-5 14:40:59 | 显示全部楼层
maodeng 发表于 2013-1-28 13:13 9 a; G5 ]1 o( U: ?- N# l
. hello 300236$ R& k0 c! W( @# |
statement out of context
. c8 H0 Y; A6 w5 g9 S1 q- s  v0 ir(119);

3 {; v9 E; R/ x/ Q5 H( Y抱歉,最近太忙了
  g  F  q+ I5 f+ B( @% O0 [/ L+ W) L
300236 我用下面的程序试过,没问题: W7 D6 n! F+ g& P5 N
$ P5 j3 M+ C$ B6 C
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试$ [. c8 |( n4 m& U

8 x, H9 D6 S/ ycapture program drop hello+ m: r; H3 O- _% ~/ B2 f/ \

5 {0 R( L/ T6 ^program hello. m' M/ E% R5 X% ?

7 Q# ^" V$ p1 v$ w+ L* i quietly {
) N% J8 }2 V. Y, ]2 o1 g4 S
6 F) k2 `) j+ G2 n* f; Cclear
9 e; W& m% W, I+ H9 `$ D2 y' Y8 g7 G  P& u6 \: j
cd D:\stock\test\source% x* s( a2 k- h) b' i  R# F
1 X! H5 r& ~6 _5 ~( S) N
insheet using `1'.txt
5 C( c1 ]1 Y& c# V) j4 j1 r2 S8 d
! i- w' B+ P+ D4 M8 t7 e$ Q0 \   keep if v5>0
8 `2 c* a# a, o2 M8 z5 a. L8 ~   
/ p/ h) {+ C  O/ Y; Q, K0 \2 [( @   gen vt=_n
" ]/ Y& C1 X1 w9 X) I5 S   , L8 B) |+ A+ o
   tsset vt
% R+ e0 C7 q" ?# h# z, e- T' n4 ~& T4 x$ r: @: H
   gen zf=D1.v52 Y. ]: P3 X1 e5 l% L+ c

% w" O4 ^0 t/ C: y   gsort -v1  T% p. M1 A, H2 Z' Q, p
2 i! b+ b! A4 z3 _( K6 o
   gen avol=v7/v5, [& N& `  M& h# E
   
, ]( p% |, Y0 h2 @4 `  Q   keep if avol>0) `  k5 M0 c( E; M
   ; X. v6 l, l; S, m* `
   drop vt) \$ Q+ L8 p+ e1 C- A8 `: A
  
! k" r- a* s* i) {" O   gen vt=_n! g/ [/ s0 w# h# D" U
   % E9 Q9 X5 u1 S4 M* U
   tsset vt
# T, q1 [9 r# F' I" X   2 `9 A% @- X9 h  J. q$ i4 V
    sum v5 [aw =avol]
& @* d( }! _. }( P
, Q) h, F) [8 K; y2 R   gen amean=r(mean) in 1
7 O, ?* i, w  W- A5 [" g   
: p9 }- L: K: R7 d6 r3 [   * 总加权平均值 amean6 L% _) w# B3 `+ w& ]9 J
   1 @9 R9 _. j: {
   
8 ]& l" n" @# f, e   keep in 1/240
9 {* X( G0 t# N# t- o4 C& V' x+ l3 a5 h( S3 K; O
   sum v5 [aw =avol]
7 A( _) T5 v& U5 v0 t5 i7 _9 i$ [4 E
8 |4 E: r6 b4 t4 k- I/ A   gen mean240=r(mean) in 16 [0 M7 V7 S0 N$ y+ l- q
   , T( B0 }3 s/ E
   *240加权平均值 mean240
& U. M  |/ T+ }! @8 T, t   
8 k1 p- j! F2 \4 F6 B   set obs 500
3 M0 s0 L2 ^! h0 ]$ O  W* }/ U   $ [  `  |7 ?, ~  A! }0 v. D
   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
% L& @% o  o+ I' d, W   6 I/ X2 m3 t/ }1 O2 {! `
   *240 kdensity(dx240 dy240)' T& d+ S  S9 }
   , ^# O/ ?6 I" G9 r' `, k! T
   sum dy240
" c/ f2 D0 I2 x0 _   
/ O0 n+ m0 a9 d4 b8 o   gen yxis=r(max) in 1
0 e0 V! d9 s% {/ X" U   
+ b" ^' }1 X' u" Z( ?   gen yxis2=yxis/2
' k, t' R' P; a- ?3 E   
/ ^6 Q5 O: K6 m' H* F! R7 }  J   *yxis
/ Z# e2 O; _' ^3 c   
- y- X* w+ |. ?   gen dy240max=r(max)3 K- O5 s* S8 y* I5 H/ Y+ b2 g
   8 w' \2 @  T: \* c: T
   gen dy240minp=r(min)
$ c8 s0 k0 r9 V+ h# ?
& m" `1 t9 g3 Y% D2 E' j    gen vtt=_n
! _& \  i) n0 d. n; n$ n& W$ U; Z( g! e- Q( e$ K
    tsset vtt
+ N% \+ U  ^2 @& Y/ l
9 O$ f+ @4 k! v# K   gen ddy240=D1.dy240/D1.dx240
; d6 a+ {) r) f: R   
" O6 N% j: y2 T+ g" `. V   sum ddy240& K( D, m: y+ J
   ; D: `" w# }' o7 I
   gen ddy240max=r(max). k4 b( q1 M# _) T) i
   6 [: O8 k3 k- a
   gen ddy240min=r(min)4 X7 g9 F1 O- a6 y' _; a
     
# h9 M9 D1 A  a   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
. R1 z$ r( F. P& f6 L   3 o9 c6 k' L$ ]1 L
   sum ddy240g$ X( c% X+ }; u6 v5 P, Q0 R$ t
   
. z9 B- w1 n) U   gen yxis3=r(min) in 1
( S  a2 X- B: m- y3 H   % l9 E# q" s( P' Q% u; C" V8 K
   gen yxis4=0 in 1
* f6 R2 U* E# {2 m1 I- q  - w2 I. r9 i! N; o! j" h- g3 H
  *ddy240g
! s8 i- I8 D* F* I+ z8 Q" f( {   
1 Z4 ~/ h0 u4 O) y# B5 y5 f   
% ]5 ?* V2 g. w" j$ u( \9 [  preserve " K# R% {3 f4 o
  
$ _+ @3 c: f2 J& G. y  sum v5 [aw =avol]4 \0 T0 L  |& d0 ^
  : m( R. L$ `* U/ t  E6 g
  keep if dx240<r(mean)
  e7 Q& J9 o" D  8 |* q0 N4 z: S6 a- w6 V* r
  sum ddy240" \8 p8 T6 G& k7 L, H( Q/ C- ~
  - U8 ]& R" b$ e1 R! b
  if r(min)<0 {
! s: K4 W' e" H        
& K: q2 |; X' M                keep if ddy240<=0: j) g  X: _2 V, m+ X% v
                * N% m! `- P3 y
                count
7 T- K/ ~- X) c; C1 o9 Z, v3 H7 \' I                0 o4 F. A' R! w) f8 H2 q
                if r(N)>2 {
. ?, g0 ]& J% Q                 
1 ?! n+ q  K) u: B5 g. l                 pkexamine dx240 dy2400 O- @. O; F. V/ o7 h, A7 k2 a5 {' V
                7 ]) \: k9 Y7 j
                local tempminp=r(tomc)
  S1 y$ P# j/ d$ P# q                restore
. {* E* o+ `7 F5 D* `8 J8 F! ?                 }: p3 n6 l. Y- {+ X0 N
                 
2 u/ W* _- ]" d; M- k        else {6 b2 }* c0 E, C8 `6 I
                8 Q) j7 Y8 o5 {/ j' r" j
                 di "cannot find minp"8 A: u/ c' _3 q7 U2 V
                 / g+ h  l7 e. c7 a& M
                restore 1 F0 p+ I: s- f2 P' n  M) p; f$ j4 r
                 sum dx2406 u0 G# Y; [5 D
                 local tempminp=r(mean)  h6 y# f( u8 h7 V( u9 Q2 J
                 - t& z+ X1 i; z  e  T2 H
                 }
. o8 E' @1 P( j6 h" C  c                }
8 |! {8 l+ l7 b   else {
- G; ~3 U: \( @& ?9 W" E# K6 x) g+ {* i                 
8 D7 ]' A8 t- k- t" t6 j( ]9 N                 keep if ddy240<=r(min)
" r8 ^( q' `+ ]2 }                 2 ?9 r9 n( o5 x* E9 b
                 sum dx2400 U+ K9 j; k# {3 B- ?  V& n8 S
                 
$ f/ y6 \, `0 ?; L. b  t                 local tempminp=r(min)( O- y3 K! r8 q% Y0 ~2 G2 l
                 restore + C' _6 H2 s8 k4 w, v
                 }
) D# O! S& A7 ^7 Y0 c; G, T% G
/ r6 m" ~& W: ~( {8 _) F; Q
) j1 i# Y* m; [/ G/ w. M
9 |4 T/ }; B5 l3 \6 L2 n. L! I' N   gen minp=`tempminp' in 1
- `; p; r$ l3 K; Q' @   *240 minp
- l( k$ R1 `- B1 U" |
7 c! f* g; G9 m, U6 X3 R2 [, u- r2 {$ |
   
1 ~0 u7 o* W, }/ i; B% v  n0 W   preserve 4 ]8 L9 \+ F( K% p8 g
   
3 V# b  }: a5 v, j   sum v5 [aw =avol]
$ Z9 ?7 c6 |4 t; r/ r   2 o  }) N; Q/ b1 O5 i1 I
   keep if dx240>r(mean)
6 ~. n! y3 F+ U   
: y  {1 [) w8 k& m; {/ X! w   sum ddy2406 J2 ~0 n$ ]1 t, [; \
   
4 l" C8 x1 Y/ l0 m  l3 h9 |3 ~: t3 t   if r(max)>0 {5 Q7 H4 `6 g9 o1 J
                5 {$ d1 x# F1 t
                keep if ddy240>=07 V( w1 }" y" \7 e0 ~
               
( a' ~# Q% a" j2 W8 }0 W' H7 Z1 O                count
1 h) r& h% U1 O: n# Y  h                # W" l+ S- t4 `+ \, E) }4 S  A' Q
                if r(N)>2 {
- K/ d+ D2 _: `; G$ J% X                 
) ?- r4 b  r. f5 y3 i  y5 ]                 pkexamine dx240 dy2402 B, `& q) O* r
               
: |. a' k1 `8 Z( n" k2 O                local tempmaxp=r(tomc)
4 b5 B$ \; K2 S* o- v                restore , v2 E$ o. Z; V  i+ l1 s! A. k
                 }
, r+ U0 W4 R0 H+ L, J                 
7 s- y  b9 R, z) L/ P4 t* J& G8 B6 L, ]                 
1 R. x" Y1 H5 r        else {
# G7 [% i: L9 I$ u                restore 9 `6 `8 V) Q+ W. w# }5 \
                 di "cannot find maxp"# T& q: j. `5 r7 D: X. ?$ @
               
% E) u, O9 z- J& ~$ d9 z2 `7 n               
- q+ q% B; |# u6 |! D4 d. O+ F                 sum dx240! ?/ Z/ h  b/ c- U" g
                 local tempmaxp=r(mean)0 b' |# R1 F  Z& v' w- C: ~
                 2 S1 O6 l8 @4 \
                 }
( n8 |4 h" i+ z3 U7 U                 
) o$ T4 Y1 d$ f6 |4 C: f+ H' _7 n3 [                 }2 |; P6 l9 B. b+ j
                 
' p6 U0 N, k# p  A: v) S# Y    else {
+ ?8 P) v! W% @  ]# j1 i; |0 M5 Q8 c        " M# ]7 Z  w: [+ O8 f! L
           keep if ddy240>=r(max)
4 g1 W' I, L- [  t( q& j           , ]; M9 {4 Z# Y) F# a
           sum dx2409 K" e, `8 Y( N) n. T( d: X6 n2 w
          
& L  ?& C3 p" t% A; L           local tempmaxp=r(max) , P% E+ D4 K5 v9 t
           restore
* u- @; @' {. d* ?- [           }
, k% Z/ }2 d$ O        6 n. L, K+ m9 l! q& x5 a% n8 ~' a
- }$ D& K4 a  G
  
* X2 r) A) l6 |5 P
5 Z, [0 Z% _! W) {5 }7 ?% d   gen maxp=`tempmaxp' in 1
4 c4 y+ z- Q" t/ y+ U6 J  H9 o: H   
7 n  R1 j% g5 b( l/ `: l% T4 y   *240maxp) ]! ?" u- M' c3 ^. D1 P
   5 d1 @$ z# s3 K9 K1 c( {
   
5 @! f7 a. ?8 F  @5 r   *-------------ddy240pminp左侧高峰值-----5 B9 A! w6 X! A4 K, y- m# `6 l2 w
   
- D7 r* G$ `* }# h9 Q+ I    preserve 8 ]' _: V3 M6 L6 k6 c
   
( v+ Z5 @" k  d8 D; E9 i  E9 Y% z   keep if dx240<`tempminp'* ]5 N7 F/ p7 o% E$ i5 h! M
   
! i$ ^$ O0 K8 V! e* C, U# m   keep if ddy240>0* Y0 [5 f% Y: Y' u* B
   # b4 w$ }% Z: Z6 W- C' b
   count* T8 R. o" V6 P7 q3 t
                2 Y0 f: }+ z$ e5 C6 [8 O  F
                if r(N)>2 {
4 i1 V6 k1 t- f. T# d- x                 6 d: Z4 i4 w' h2 A
                pkexamine dx240 ddy240
% T0 j; ]2 ]% k               
) q- a# O' B: C/ X2 r& T                local tempminphddy240=r(tomc)
0 r! B# F5 A7 M3 @. u- Z  m                restore
) ]6 l. }! Q- Z% M& y* R1 w                 }* C. }8 b4 `. Q
                 
# v+ e  ?# D5 K- F/ y8 o        else {
" u$ J; u0 c- p  h2 A0 e                restore
: f5 B5 L( B4 ?% n: L2 g' ~' G( x                 di "cannot find pminphddy240"
8 G5 O! b8 r0 h# k  c) R                 
0 i- L7 e7 q% g. x% q3 {) M7 Y  i0 s7 P                ; N) ?! B6 K, ?: l! I
                 sum dx240
3 M9 K1 p; ^9 D+ m! k' f                 local tempminphddy240=r(mean) ; ~) X' Z/ B0 O
               
' C$ L) l+ T/ m8 b                 $ ~8 t  U) Y8 |3 M2 F
                 }
0 R* l$ R* u3 `8 M: H2 _0 W                 # ?( H/ y9 ~2 d+ `0 I! \$ E$ @; v
   
* X0 g# l, ^7 Z5 \   
1 ~( {! X6 M; A' S( A: S! W   2 f6 ]- ?% e  W
   6 Z3 j! ~- v. Q8 p1 e
   
' p+ E3 K# p  s. H        gen pminphddy240=`tempminphddy240' in 1
6 @& \" P2 U# i) k9 b4 [; s" A       
4 v6 J) H; j$ U       
9 J& @# A% [2 K        *-------------ddy240pminp右侧低峰值 -----------------
  D! j, z2 U  F0 \+ z" j" ?1 F6 ]    preserve
% l) S, Z; u& |
/ s( R) e9 ~4 [( g' w6 q   keep if dx240>`tempminp'
# M2 _) \! Z/ u+ T1 Q   
0 w& M0 U! ^, R' [' [* B   keep if dx240<`tempmaxp'
- Z, m' p' {1 [2 i# F/ x   ; I' J& r% b7 B8 \2 F& k1 n
   keep if ddy240<0
# v6 ^- L3 D% Z* t2 J0 P+ @   $ v- i7 k5 Q3 a! D  @
   gen temddy240=-ddy240
+ Z) g  N: n: j& v   
' T1 Z7 }* `$ B% Y* U$ j& p    count% _1 q; u" U, h
               
  P6 l- F" ^& R! q                if r(N)>2 {
0 N6 C3 \# L. [5 k4 {2 ~                 
& u2 o+ q: Q6 ?) A: S! U                 pkexamine dx240 temddy240
/ k1 A& a/ R+ P8 U! S   
( v( v  R; c. X1 p) a( T( _  local tempminplddy240=r(tomc)
5 k# y# @1 M9 I( M1 @7 c, e                restore
" Z* l7 A4 a8 a+ E/ E                 }
1 j* V8 l5 m9 g4 N% N                 ! k# r5 y. l% Q, u
        else {
( Z- S% J! O! Q5 q                6 |, K& P1 ~) I7 F8 F# @
                 di "cannot find pminplddy240"' a! t  I! G# F% }& w# K
                restore( J' t) S% ]1 u4 Z( K: s
                 
# B6 ^/ H' y. a$ S                  sum dx240/ T! T7 g1 C, N; b& v' s9 W3 L
                 local tempminplddy240=r(mean)' ~8 \& a* j  [' W9 v
                 ' ]: E0 P- h( t8 y5 k4 i- h
                 $ c$ [1 t) Z3 I5 _1 V1 D, b! r
                 }3 {8 ^- ~; r. D5 H5 e+ h
   ' G; E+ ]7 B' \. Y
    ! u8 ?4 ]0 \5 U/ b% \# f2 x1 u
   
$ C* l. n$ L8 }  {. C   
1 x2 T. _. A3 Y% m* L3 L' T   
* O5 b+ a1 [( b8 s0 p' N# ], P8 N        gen pminplddy240=`tempminplddy240' in 1
, h7 v- {" B# g  E( f       
. M* f1 P0 J5 p( _        *-------------ddy240pmaxp左侧高峰值 -------------------
2 b! @$ t- D' s/ m) D4 }" k  x        - V* \, ?# s# P+ t
         preserve
6 ~* D) ^7 D( P6 N2 a' j% G   
1 H  w0 S) K& ]+ r* S   keep if dx240>`tempminp'* [1 s& a) s0 k' h. z2 {6 B7 f
   ' R9 K9 C- n/ W2 o" t8 O4 I5 F& B
   keep if dx240<`tempmaxp', _; v' h" d' G4 i+ s' ]+ a! q% n% S2 T
   
9 K) l/ _/ `: Z  O. |' C. @   keep if ddy240>0( H) G$ \. X3 N/ r% {
   count
  \; V5 P2 B2 p3 V* i                5 X9 {3 i0 U7 q, u
                if r(N)>2 {
1 V7 _* Y+ v: b5 b                 7 `; G3 z) J/ E7 Q- q+ r
                 pkexamine dx240 ddy240+ o# h* D0 Z0 E# v' @) i4 Z
   6 c  ]& C) r8 l1 }) ?
   local tempmaxphddy240=r(tomc)
7 r' e" A: A5 @$ _1 h   " B+ F, v. {; @: r! P
   restore2 ~% [, X0 Q9 J& ]0 g9 T
                 }
" u$ @( j" f3 x7 u# d7 U! a                 ( h0 R; B% B& t# h) b$ d9 e
        else {
/ i9 ~+ H- t& S0 d6 J  r  o                5 Q6 G$ K5 @6 I7 T6 v' A; K* Z
                 di "cannot find pmaxphddy240"  V9 |/ R% E3 w$ l! o
                 restore
8 ~' F- m7 \' \8 R# \  d- f& _                $ Z+ Q) Y! \# m9 T5 _2 M8 H
                 sum dx240
8 j. i( o3 H6 l. q/ C6 y1 m  o; U                 local tempmaxphddy240=r(mean)
/ \) H% v3 \* e* ^3 R& k" K                 
* |5 x/ }8 q# a4 V' {                 
# f! V6 t9 [5 A2 s                 }( k$ e" D3 H* V
   8 z& k% K2 ^, ~" z  c
   ' D, H* B3 N! r* z
   
- _+ u* O+ v7 Q; W  p; u' s' s   
8 j- ~9 v  _5 q3 Z% \2 C" W   
- ^  ~8 B7 G5 g# X   + `4 T2 j3 J1 v0 f
        gen pmaxphddy240=`tempmaxphddy240' in 1
- b( w' n, R2 A       
4 f) L& h0 e" s* M# y% y7 o0 k        6 t4 e! g9 a& ]) e. E  N9 y" X& T% N. `
        *-------------ddy240pmaxp右侧低峰值 -------------------3 R, V2 X4 P. I+ A& y7 m# z
        ( _* [+ C' |, e; J
         preserve 2 m. i3 r# }8 \- L
  . _$ P& f- f3 {% k& m
   keep if dx240>`tempmaxp'. V/ q7 p+ B0 F
   
9 g+ t# `7 i$ H: R1 \0 t   gen temddy240=-ddy240; F; H+ }/ h3 r8 i  p0 i
   
7 g$ @1 g# Y5 c' X. B6 q( H2 ]   keep if temddy240>0
; J& n  K  F" _   % f7 ?% |! X  p9 u3 D& Y% X0 I
   count  x- q5 ]( p2 C% G8 d' g
                / x% u" k1 v7 P: z
                if r(N)>2 {
+ j0 P0 h/ m- {: E! O" h                 . a, M% _& p$ y) F0 z; ~; G
                pkexamine dx240 temddy240! V3 z% Z. Q% r9 {
   0 ?2 j8 a9 y2 T* D; d
   local tempmaxplddy240=r(tomc) / T/ Q* J* W  o
   restore
0 V2 N: |# u- q+ A2 e                 }8 a- K2 P# @3 {
                 
! u9 r2 m7 |; C6 h        else {
3 f2 E; g" Y# L                restore! s* p, M4 p/ J. `3 l
                 di "cannot find pmaxlhddy240"& l  D# T6 L, s$ }$ n2 _5 h
                 9 O2 s0 p; r0 M& V8 h0 K
                4 Y/ {! w7 i) g5 c$ P3 m" [
                           sum dx240
4 L* u7 d& C' Q& f/ y                 local tempmaxplddy240=r(mean) in 1
* q4 W  F/ g% O3 W+ ^# q               
- {- q" n4 L; A5 ~) J                 3 Y& v0 {: `- t- H2 o- d; a# h1 }3 w
                 }+ ^# Z+ I" p3 l5 m
   ' u) k0 t7 ^3 g/ W" h! Z
   3 R& J0 B) I& r, ]  ~
   
9 e2 R4 X1 `' l! ]9 w' y& e   
, ~  u- G: [; O8 {   
% f7 r  @0 l: w2 W2 D. j8 S' s* N   * q. j+ S8 V2 i  Y+ |$ F
        gen pmaxplddy240=`tempmaxphddy240' in 1
* n7 b" z4 c; Z        ( S& M+ W$ b" x* L  R0 l# `) b3 e
        *-------------------------------------
2 C( z% C. |4 r0 }5 ]6 t   
1 O) h' ^6 o; X& y& X" E   gen price5d=v5 in 1/20
4 }- K$ B; T9 D      3 a( \& o: x2 H/ C
   gen price5yy=_n in 1/20
$ g2 j8 Y9 ~0 v1 y+ P   1 g9 }1 I+ w' c& F7 O8 M2 J" E& n
   gen price5y=price5yy*(dy240max-dy240min)/206 ?1 v2 N# W- u% G  \1 ?: M
   # \0 r! |8 ?- B6 H8 a" _
   *price5y &price5d
5 N2 C5 F5 l% Y4 Z   
, E) B* ^, k3 G& h. l1 p4 b   gen priceny=price5y in 1
* x1 O  f8 e$ W. F) s  @5 a* J   : m; A' H/ d- p0 N7 N6 ]# C+ q2 s
   gen pricen=v5 in 1
7 e$ J/ g0 D7 _. G6 _
0 Z5 S0 c# X- Q$ e  K# L* s     
6 j% q) v2 s6 ?$ Q   *priceny &pricen* f* V# G, N$ r8 j' a7 K
   
  k  U& m1 m: }   
2 u" H9 Q  c" p3 p( {1 f   *-------------------------graph------------------
7 _1 @: O. ?+ W! s( z  " L7 F$ m, t) H+ L! I7 r3 l0 E4 W' M
  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)  d6 k. s" W' U+ \( q/ A
+ _' r0 v% O; ~$ D: A6 l4 m! ~
* ---------可选项目----------------------
; {) r' P$ R9 x; V& @*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
- h) j) m  U, m$ N/ U3 i4 {* b8 o$ S}
8 U" R. h& a8 @0 R: P" Fend- L0 N+ o  D& F, f7 g

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

GMT+8, 2025-2-19 06:33 , Processed in 0.051099 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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