|
|
maodeng 发表于 2013-1-28 13:13 * |2 ~/ E, R# a+ j5 m+ ?
. hello 300236
5 q# x3 Y* N H- k- rstatement out of context/ n/ s6 o) x& ]" j3 U7 X
r(119); + S1 s9 @% {" P0 _1 X7 |) _ H6 p3 @
抱歉,最近太忙了
' H# f. i5 _+ L( Q$ f7 V1 {2 Z- x e' g+ f2 n
300236 我用下面的程序试过,没问题( g2 f1 ^* B$ {6 T1 a& g% W: h( t
* Y! @0 K" l- S4 N8 L/ G你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
; w' w% [0 p4 N3 E/ [& O9 \/ t( F
capture program drop hello
$ P @2 f8 E2 h, ^* ?5 l) P5 l: L& x8 [8 L) d9 M9 Q7 i" m) k& W' O- b, _
program hello9 ^- Y+ d5 V8 J- X/ h0 j
: w& \/ M3 U0 ^+ w4 y quietly {
1 y/ z8 B2 T2 G8 E o7 V" X
, W6 P$ P7 M; X' [clear
% Y; O L) i# E' |, P" x. k$ q6 n3 a" L9 \6 K3 e
cd D:\stock\test\source
/ J3 V1 Y1 [0 q' C( }- }. O/ X& y- u+ |9 t4 J, G
insheet using `1'.txt
8 a. L7 y* ` @9 u! Y. i) A- D/ e6 F* r2 n6 c8 k( R2 O' t ?2 v: U
keep if v5>0
$ k" S }9 e6 i $ n- t( M$ r" {8 |3 X
gen vt=_n
& \. {. E1 J: B* }) ]2 ] 4 t2 V! t! N3 A/ g
tsset vt/ T/ E" o, G3 L9 {: {" g
- `3 ?. W3 C% R) Z% Q5 }
gen zf=D1.v5& ]1 `: N/ T( m7 A
1 L9 \4 ]0 w& X( Z) F* d2 g# V3 \
gsort -v1
3 o, }7 m; `$ K3 k- C4 {9 U% t( S2 U8 v* c
gen avol=v7/v5
# r/ [, e9 ?9 E) J
+ D+ s9 m! `6 p4 m6 D" l+ X7 J keep if avol>0
; W& ?4 ]3 ~# t
; O2 e( f( |3 o, P6 X) b Z drop vt4 h% F; e. n" d! x! [
8 p) }4 r1 v' q$ y' y8 V( r gen vt=_n& L. E* s! U, N
" F+ q- T" o- o% m/ K( }# `: E tsset vt3 X4 H3 `3 ^ e. F8 G6 R$ l4 s+ `* W- n
3 \ o y9 f& _- e; n sum v5 [aw =avol]* G/ R% Q. s( L" t
, h& W, c& G0 G5 j
gen amean=r(mean) in 1; i5 |' A& q7 U5 q3 Y
0 e( i, p% ]* O s' N6 ] * 总加权平均值 amean. K! f* Z; P1 @! q) q D
! \) v: y+ A) l& [$ e' L/ J 1 [3 b; z& s% s! j# M
keep in 1/240
, E2 \9 x/ Y7 @, R g( Z4 j# v& s# z2 X
sum v5 [aw =avol]
* O) e" f+ o# h2 q
" J# A- @. I9 }5 b" j, _ gen mean240=r(mean) in 1
6 ~& }" t3 `& L$ Q
) E# O2 N6 F5 }! n *240加权平均值 mean240
% S& m7 O# Y7 T$ Y$ x K$ z& l! O* u* z
set obs 500
3 Y6 L: Q+ W" j8 H, _ 5 d% \: R/ |$ h; V2 _3 f
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
5 I T: _ p2 I. m0 L" a
7 j- {% [3 o' C0 t3 f" Z+ { *240 kdensity(dx240 dy240)
2 H" j: ?7 L2 }; k
* }# |: d( S3 A' o& t, p) F sum dy240
) a2 b% m/ T! G! r5 ]. O G e; N3 Z: j: i) l; C" s( B4 R9 \
gen yxis=r(max) in 1, j- V( C* q4 K- w) q$ N5 W
* o# N N& K7 c* W. {5 T- f+ g; y
gen yxis2=yxis/2) h; z3 o# @* ~; d
$ H* z" {% q: G; U. i+ I+ D4 d *yxis
! r% T0 w0 F. w+ O4 w; F( { " x) `; _; N" ?8 ^) D6 g: K: a' n* d
gen dy240max=r(max)
. N* g& ]) ~* l
" s& B( k# I7 m" W. c gen dy240minp=r(min)- l* }: w2 { i3 h! |9 E j% {# g
4 W& d- |/ \9 D$ R* D+ Y2 l
gen vtt=_n
; l. M. h% c8 s# d' c1 s, ^- x0 q: ~7 F! v. U
tsset vtt# [! D2 b' M# d
T* d% N' d7 R5 ?# o
gen ddy240=D1.dy240/D1.dx2408 U7 z+ O3 x- o; H
* [' c$ l1 ~% R- f sum ddy2400 v4 ?; |3 |$ f) ~. S
8 f, f5 m5 E* e7 g1 N: V6 F
gen ddy240max=r(max)+ R( F" C o$ S, S# l
$ `! e7 p/ E: W
gen ddy240min=r(min)8 W3 L5 K9 g$ S7 D, k' @# T. f) r
) Y" G1 ^6 ^. B1 [; ~
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)$ Y" s X2 F0 l0 S$ b& Q4 W1 R
9 L/ g# o+ g) |0 s7 ]9 O+ I sum ddy240g& D6 L9 a9 N/ A& R/ ~% p h: p
3 U& F8 P) A a7 }$ b( B: @
gen yxis3=r(min) in 1
}# |0 a" H0 n l5 l* E1 h' J( B5 p9 I* S
gen yxis4=0 in 1
; n J% b, N6 h2 A b% a1 ~9 M( U/ W; h
*ddy240g 4 h( ~- y8 I; ?5 e( G0 C. b
h/ X( A; Q$ r6 d' l" i
! b* V+ C- R, L preserve ( k( r) y% ^5 M/ T" R
8 n3 |2 f& }: I/ Y
sum v5 [aw =avol]
: Y. M2 B5 p, j
: B; n' @; [7 e5 p keep if dx240<r(mean)3 ^6 ]1 o' ?4 Z6 z E6 o
2 Q Q- {. E" y- k1 D, Z
sum ddy2404 w# u4 O M' Q) U* j
* Y; B( i8 M: d5 ]8 R0 \ if r(min)<0 {& w+ Z' J4 F3 P6 c$ g
) y- M) {1 H3 a4 `/ H a4 h
keep if ddy240<=0: s0 M& _0 @7 K
; Q' O! q) X6 ` count3 ~$ y2 X( z% W. q& p' M% \2 w
' ^7 E# g) Z3 f9 O( H+ @. [& O: c if r(N)>2 {
: i9 m6 Y4 C Q4 t1 g+ \ U: k
k- O+ A7 p2 D5 |/ l pkexamine dx240 dy240# m' a2 W' _, N- p" D3 w
! j1 X" y, e2 ^! S6 h* ` local tempminp=r(tomc)5 j" L, z1 }1 }$ b% w
restore 1 X+ A, D+ q1 U' }# L4 \/ ]
}
) U3 ~; ^3 u4 V" J( w
+ W- ^& t/ O4 d0 p else {: a7 C) V: U" E' c+ g! e
6 I% _' H, ^6 C; ^1 A4 z di "cannot find minp"
: T* |+ w1 X1 | d2 X0 T , Q' k1 A8 L/ |, A, H- ?. O# }
restore 5 n+ o! |; V8 A4 ~
sum dx240( p- k( q% W' @: ~3 q) C
local tempminp=r(mean)
4 j* e' A4 q2 s- V n1 {5 c # c: Q4 K9 N6 I% E) g
}
) l/ u5 J" }* U/ O) v }
8 }2 T) W6 J; `" V else {
' c5 `' G [1 k + [5 Q2 M0 t. C1 `
keep if ddy240<=r(min)
# i5 b' f; m/ ~8 n! `- g. Z# P# N& M ; i. t2 M. ~: R' X# T2 _6 x
sum dx240
3 @. Q( a0 s% Z" Y5 m# h A* O% |7 ]) O ]
local tempminp=r(min)8 A8 d" T0 u d0 \9 W3 A# Y+ y$ H, z. E
restore % C& [5 ~1 ^' x- d8 ^
}
, Z+ T% k' B1 Q" H$ p0 d' g
5 A! C* R/ M+ l- h) {) N% F" |/ o; j7 t' H; b# F2 f
4 j4 D7 \ i4 I$ D1 K
gen minp=`tempminp' in 12 h8 ~6 N/ {/ h! O8 ^$ c
*240 minp
9 r; F3 |% Y: y+ P1 K# w( p' s: b7 T
+ r7 N/ u P3 ?6 Q; e6 h: g$ x2 ` ; t. e- p+ G" w- ` E
preserve
! I+ m( y; L9 @9 a4 W, a3 e9 Y , M. p. `' V( @: Y) ~* u' x5 _2 l
sum v5 [aw =avol]& a# {, o! _( {$ c/ s% F
9 G7 e$ N8 u# H
keep if dx240>r(mean)
7 ^; C# t, _. @) I* g& A: J ; I% X6 s: ^7 M8 x4 m
sum ddy240! Z2 K6 w- z" Z6 {/ z
2 l0 |/ h; }! \# h if r(max)>0 {( D# n& V6 d8 U2 Z! ~3 [
& X0 d; [( w/ ?
keep if ddy240>=09 ?: k! I+ i5 U. h: d% M$ S% w9 Y
7 _" f. p( k) D count
. _; B- R% m% O- ?- M: V
8 T$ A8 J, v! W6 G9 V if r(N)>2 {( Y+ s* Z1 v9 o2 F
* |; }% a) J: n; \# X4 V+ x pkexamine dx240 dy240, k1 T. z# O2 i6 z
) m; H: c) C7 A4 J U8 v( }. ^" t local tempmaxp=r(tomc) 8 M. k F$ F9 h% }% o3 a+ P- ]# p$ a% F
restore
% p* i9 |6 `5 d6 ?2 R& i4 Q }
$ p5 l0 x/ F% ~# |- d 1 y- _2 o, P! r: j. e. V( ?7 e
! D7 ]+ ?+ [' ]; M
else {7 Y/ d8 ^" l5 b- k3 }9 ]0 j3 p. Y
restore
3 ^& e! l, g8 B' p# C+ f4 t4 v di "cannot find maxp"
3 B( k8 h( k+ E' T' W8 g; m
( {" B7 g8 `- D. E* z 7 e; D7 Y, R0 X' Z0 N
sum dx240
5 W9 ~3 T& c: [ local tempmaxp=r(mean)9 y c( o/ R( c ]8 c
. |+ L& V6 h& l
}
3 a1 p- F3 N3 p. L+ X7 v ) d8 y j1 Z- p* z
}. ^( q- K* b o1 _4 w! d
+ i9 T+ e! ]1 A; J$ J else {
/ _+ o# x& \9 w , n+ _1 g+ \* S5 I7 j. c
keep if ddy240>=r(max)
" W4 s, m. y" F, R6 Z+ a. Q9 S0 n' D ) l( `4 U- _+ t6 a$ l
sum dx240( ?9 X/ \) V, q: l/ ~
) x/ k6 i8 S0 L1 b' ` local tempmaxp=r(max)
$ K$ w8 m6 Q) M" X4 W restore
: g- \) g9 w$ J* w }
" |. D8 s! p9 f3 X4 E* Z C0 V" c; s
. q$ R6 E0 x1 G$ S, p# M4 b
. W( D6 t" }& w# B$ I4 D % I; T. i2 d0 G- v/ w) y+ W
) j1 d* @* L1 Q/ B" ]9 y: U
gen maxp=`tempmaxp' in 1% _. s" _9 g" l9 x, p1 D8 l# ~
$ O+ Q# s o- K7 D6 o- S *240maxp7 C$ u8 A+ F. j8 [% e
9 r0 L. |3 p6 [) I' J
' E, e3 q6 ^$ q' v+ t) G: G! R *-------------ddy240pminp左侧高峰值-----
" G; C# D, ?. v0 \3 j1 c
6 m0 |( I. C4 ^9 G: Q* F preserve
/ `1 A/ \ N# Y: {/ t: ]5 I % S$ E/ e" H( |
keep if dx240<`tempminp'
* ^: C! E1 I0 b, L3 i
8 H) T7 s. Z" D3 E% g) U keep if ddy240>0$ W2 i: R- g1 w! j8 k: A
7 m" \4 O7 y; d& \1 i' F& D( h: {* q; i
count& Q2 E6 [4 I1 r( t& p
; |7 y( x6 n4 J9 y
if r(N)>2 {3 B- B. G) D4 c, H8 i1 J
/ b. P1 [: i; C9 }1 Q& | pkexamine dx240 ddy240& ~' i8 E: q& Z# X1 R
/ s) G4 q- f: T9 V; W5 O
local tempminphddy240=r(tomc)
7 @2 V/ V# @$ s0 ?, {- C6 x restore
+ s9 Y; Z& S+ B2 ?( w0 |, i0 u }6 e2 A! W1 w0 _5 A
$ i+ y( \' I9 U$ G! u# I
else {3 ^8 p- R/ r3 S) [/ u0 T
restore
: E2 v8 W9 @7 B; a di "cannot find pminphddy240"& ^+ ^$ [1 [2 G, w/ K, b
3 I- v/ G4 F9 F# S: P3 |
7 g1 L' ^7 A8 O% y2 B4 D sum dx240
: E0 n5 I" J7 j" u- [# H8 z. d- o local tempminphddy240=r(mean) & P# P; i1 |7 Y
) Q5 G% D4 |& s% a2 @2 M
8 j! I: ?4 g9 L: e }3 u3 W* p- }5 _* }$ n
J: z" c* M, |+ H% Q9 R+ n
7 g2 q- g: T7 V3 J) s ) ~, q' R' B$ e& a- h
' i% A+ N! ^! {8 s) S/ ^& G# b$ P
* s) ~; t: H0 w/ A
+ T# F0 L' V2 A5 {8 s F$ { gen pminphddy240=`tempminphddy240' in 1
/ ^ Z& v5 l; a - S) f& o* G" w- n" q/ U0 c
0 T* J! w4 j. U' J6 K9 _
*-------------ddy240pminp右侧低峰值 -----------------7 |7 v3 X$ u8 T, e/ R
preserve . B! P6 m( k; U/ \
; C/ Q( D m5 n9 y: T' U5 p) L keep if dx240>`tempminp', e# V$ \% {+ i4 p1 Z+ t
' R, B i% } W3 V9 W' ]
keep if dx240<`tempmaxp'2 r6 B% ]: c2 G: o
) w; m9 \! O" e keep if ddy240<0
9 ], }7 f7 Z/ T* [+ Z" |! F* p+ ? ) n$ x4 [, Z6 a* h
gen temddy240=-ddy240
' V$ G/ y2 X+ }5 \" K
& I: G5 ?" d0 @) U count4 l- I! L* Z8 a% m% s! q
1 P. V% ]( n; y if r(N)>2 {
}3 b+ H Y0 P# R8 @8 K 4 r5 \" ^. ]1 u# @' W
pkexamine dx240 temddy240
. s, Q7 ?2 ~3 { : `" H( }+ R: K
local tempminplddy240=r(tomc)5 N' M8 c; t/ k7 \/ M
restore8 y5 E+ d- q4 f; H$ y; f& {
}* K# v' H4 }, Z2 `) z* F
- K+ U" ]/ }, X, n. i8 w& x
else {
: T \4 G( V6 S) K$ ~) f C9 B
2 K G4 E' L, \: N& Q) M9 V di "cannot find pminplddy240"
: e7 g& F% Y/ f9 c- T7 q restore; E' q3 ?9 c Z0 E$ F {8 ?# E! `
$ L: I. N: {( y+ k# N/ K. P; B/ h
sum dx2403 Y1 s5 k* Z% H8 T }4 }
local tempminplddy240=r(mean) l% L& ^) v7 P _
; h6 Y, Y% k' k3 v6 P+ a( c
- ?/ X- f7 e* }# Y2 B0 b- v# Z! M* Y }! E& l9 ]; E* j3 I# ?
8 {2 `! A/ w, h
2 M6 I9 x; \! t/ m, D' L ! a: v& V; f2 ^7 U( q, N
" s' q) s, I7 o7 h) J {/ `
7 t0 l- S2 D, T
gen pminplddy240=`tempminplddy240' in 1% H& c' _" U5 ?/ O/ v" m8 A
7 f. N7 J. g/ e# A: b8 B# r
*-------------ddy240pmaxp左侧高峰值 -------------------/ _3 y1 j; h. N3 i8 \0 {& v& }
% x# E1 Z8 g6 Z/ m* Y* q$ U$ J
preserve
/ N. m4 h7 q" y( e) B+ Y$ S( C ( i- ?, E# E; \- D
keep if dx240>`tempminp'7 a4 n( K& e( S- H0 D
6 I2 k5 F: b+ b" P2 l, T
keep if dx240<`tempmaxp'0 y1 r/ y2 Q- f0 v3 O) \
) ~! U" O3 ^* D( P# q keep if ddy240>0$ ~/ v( H% }' W0 w3 N
count
" u% Z% G' X) _4 a
) }* O4 i8 x5 L+ ~ if r(N)>2 {% {& {( n9 E4 c9 Q |0 k
* F: f: ]/ o, r% z' j; L4 T; c pkexamine dx240 ddy240
0 t8 x" u3 l( C9 c
" S4 z. c K9 t5 A' h) j3 u0 B local tempmaxphddy240=r(tomc) . t/ j, s: h/ S* `( W6 a3 j! b7 I
" M: ?- h, u8 V8 t+ |( e- v: k7 V restore
- @4 i: u& w" N }4 u+ {2 }3 Z$ A: q9 \5 b2 c, R" J
z0 W5 P+ ]0 w
else {
5 w2 n: p3 Y9 H7 ^
' i$ C: R3 u5 k! [! t di "cannot find pmaxphddy240"4 Y5 M1 s5 [5 y6 k7 [+ L/ X( z+ J
restore% l, }' \5 q* O
$ m8 }% D3 q: ^* j4 S, _2 _& l
sum dx240/ D- _' o7 F, d
local tempmaxphddy240=r(mean)
" v& R% k+ r7 { ; h0 X4 I- l* E H
6 S+ v: d4 W" p/ U2 T }, i9 Q3 P+ T* A, ~6 N' B! i6 D
9 I- }1 g! }! A2 u' @0 s! c) T( v
; n" |6 p. h0 w+ j2 y
! I( X: h1 x0 U
. }# H- I4 w+ W" j j6 R. S 3 l$ l& ], }5 V
* M! x) h* I( o& [# z! h" ~6 [ gen pmaxphddy240=`tempmaxphddy240' in 1" }! j$ W* s- x8 g Q# O
# J! ^- g, k8 @9 M: j5 n 4 P9 q0 B( y- b0 N( y- Q& _
*-------------ddy240pmaxp右侧低峰值 -------------------2 y: A% P5 _/ _' @+ d1 J# B# O
, N& r5 Q) ~9 ]4 \! j
preserve
. `7 q% L _$ P4 o+ T
. U0 h, ?/ d$ ]5 D2 N5 z6 I keep if dx240>`tempmaxp'
( D: i; B5 X) A1 Z; f
A. O9 `$ b+ p. p5 H2 s" Z; K gen temddy240=-ddy240; H: q' P _2 z$ s5 q
3 a7 i" a" K1 G+ R
keep if temddy240>0" _! A2 \* y# I P7 J5 Z
4 v4 \. ?, g, \* j" R count6 r( r2 \* A6 {# L
1 _0 r0 @+ Y }* } if r(N)>2 {8 d2 N& Y5 A2 d& P) ?
% ^9 Q" V4 M' c) k' q! F) K( g6 [% B
pkexamine dx240 temddy240
, O/ {3 N) f& I' I+ Y2 p& A 1 _: U8 p- h( K% Z! W( c0 L
local tempmaxplddy240=r(tomc)
' ] h0 u( k* U% Q restore
: }9 Z1 r c2 M# \# Q7 [4 } }
1 G5 t9 z6 d4 p, V 8 ~; H" Q0 F4 \1 X& V- g
else {
2 l$ {6 N- ^/ [# e restore6 C% q: R+ A% w, @- P: C, S& N3 {4 L
di "cannot find pmaxlhddy240"
$ }3 G7 m3 V: m" }6 ]+ S6 c; H j j; B
: c8 x- m# k& N+ v
5 P+ Y$ G" O8 x; l; @$ N. P sum dx240' R6 t) P4 _1 ?! U t
local tempmaxplddy240=r(mean) in 1# n5 a$ |1 {1 D. p, o6 X
9 H# I0 a S! z3 O
5 T! L1 W2 s i. F- T }
, A \+ {( ]5 U$ _ 2 f4 P5 m, \9 \% J1 `
, H3 \* x7 \3 a, r; |, A, Y
3 {' \) x9 [$ X/ r5 O# A
% q( L5 j$ T5 A; U' b 9 r' v$ F7 }" n. s2 d* \* \8 {
5 u: G7 @) P) ]( R
gen pmaxplddy240=`tempmaxphddy240' in 1 r; ^) C( s$ r; s
/ T$ j$ L. z2 Z3 Z
*-------------------------------------* t+ o0 ]& z, y% [4 q/ ^
1 j* {8 m7 Y% S( Z2 V' b
gen price5d=v5 in 1/20
) _, q" T/ o( } V, z& p( D7 d3 l 8 w8 U$ C# Y2 {3 d" a, S/ o( {
gen price5yy=_n in 1/20
! J9 L) R: \8 M7 F( s6 X
% Y9 E( F! q6 a9 h6 e gen price5y=price5yy*(dy240max-dy240min)/203 z# e/ i( T) s& b) B
6 @; l* X4 v$ b *price5y &price5d# E' y% m3 y# Y3 {+ t
# m4 I/ ~8 N. V, c: r3 W gen priceny=price5y in 17 j3 [* E% C) L3 F6 D3 l
) L4 B7 ]5 N+ k; B- i. d$ Z
gen pricen=v5 in 1
. N' C' P6 l2 J, X) o$ U
- g& v4 S5 ^; ?9 z3 ?
5 c0 M' |3 r! _* T/ W& H *priceny &pricen# e! m! F8 O u3 H% c; p2 ?
% }* q e! B4 P: B9 E, p7 a
% g9 G1 D" u: [$ G* n *-------------------------graph------------------
* L' |7 O0 `8 c3 E % X7 {3 q' N7 `/ G" X3 u8 T3 R
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); W3 @# T0 g$ _7 T
* x$ R* R4 Y0 T
* ---------可选项目----------------------
" |% R1 X# z2 q7 J& w0 n; E/ g8 T" h*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
1 Q8 ?+ _3 A7 K5 Y+ \2 ]+ [: t! A}
9 h3 P. n: G, `' m) M' tend- c& b; v7 t6 T% [
|
|