|
|
改了一下,这次运算应该没啥问题了
( u& U: ]- d7 b9 X5 B; d2 B9 E, U( C* I
' l w5 |" U) k6 k
capture program drop hello
& V. ]8 u8 Q0 h6 \! L% o8 X
$ w4 |& n; v3 o2 N2 bprogram hello
0 y- m5 b( e+ ^. Q! F# ?9 }( t: D" F+ F9 i
quietly {
6 b2 P+ {3 r9 C* W4 h- \' H( J3 h4 Z! M3 s
clear
# A6 \$ B1 ^: s- j" L1 Y
1 v' t6 j) Y2 O+ [/ q* s& jcd e:\finance\stock\20110101\source6 B! i7 f8 r2 B
1 O! g& C# m8 o- C4 \- a
insheet using `1'.txt
) H7 @* r8 Z9 W2 l9 k' J. H: C1 ~, G9 K6 e7 D- V
keep if v5>0
2 }! R0 O3 M$ O
& F0 L2 B5 Q( H; S5 W0 Q0 |$ o gen vt=_n. X" R$ Z+ f! h. [+ M& z7 R
% w! U$ B4 K, ^$ ~; a8 O: } tsset vt; Y* W- P) \8 w/ L
- P# S3 _ }$ S# R# k8 A) w
gen zf=D1.v55 z% m8 L4 V7 ]. o0 H7 m7 s
# f; o" `* m$ D8 }9 v" c
gsort -v18 d0 L0 k/ Z; n) z
" @+ X& } X3 r% l7 }! c: u
gen avol=v7/v5& @+ N, W& w6 ^+ b
+ v2 R4 P* A( W, @' ], g keep if avol>0
7 R& ^9 a7 |; ^8 ?9 k+ h9 f - d' J/ l9 d0 V
drop vt" _3 X/ a1 _! B& Q, a
8 a6 o, z; v( F9 x" f* b" ^0 U3 h: ] gen vt=_n# ^$ Y* C0 f2 W: @0 t; ? C" v
/ t: \/ {. E. s6 | tsset vt
/ v' z; v1 p; L! Y# Q. ^ 6 p% D3 t) u3 Z) u5 m
sum v5 [aw =avol]
7 O# @1 ~# Z( g% A4 Q" e- X: S& B& m
. t! h# b& A- U7 A3 y( _: s gen amean=r(mean) in 19 r( s3 I% z) J
) Y- z) J1 D- k- N0 k( q | * 总加权平均值 amean5 y; l( l2 L7 W0 _/ C5 G
4 ~+ v6 b& E# `7 g( U
' J t& A0 d+ @/ }, d keep in 1/240
7 b) w0 ~, f ]6 O
# C2 M6 @% X4 _* U sum v5 [aw =avol]8 Y, p) j6 L2 p5 A" |- z
# n+ z D* w7 ?" s
gen mean240=r(mean) in 17 i' N& e. x& a
C0 U3 h1 j4 J+ K
*240加权平均值 mean240
! ^2 u& r% _& R5 p5 g
! ~# \5 g9 Z5 } I) C2 } set obs 500 6 H8 }9 Q+ u- k$ @ }
8 N2 l2 M5 e, ~4 A! N! ^$ P; J
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph6 H$ Q. w. H8 ?. j7 P4 Y
6 o) V; N# X% {2 y4 P3 S. S0 _ *240 kdensity(dx240 dy240)
% } c9 u9 c# F" X( Y' V 7 x! ?) V8 D6 r8 n$ U9 x8 V
sum dy240( N. C8 B. A- E
& c. ]3 ?5 L1 Y9 i/ f: y+ e
gen yxis=r(max) in 1
: G7 F! ]! y2 ~
; d6 j/ u# X9 x& [ gen yxis2=yxis/2
# I' u. j5 { ?9 k X a5 n% g. A ' D8 f& L- r4 _3 S
*yxis/ K* I' c- L1 S, r, k9 \! t2 D! y
' H& h9 j% }1 o7 z8 I$ \7 K" k
gen dy240max=r(max)
* `# w! k6 r+ A3 a n$ z2 X
) J' ~/ {; Y4 n2 v8 p; d: H gen dy240minp=r(min)1 M: l5 P- C' {# Z8 L
- j5 S0 A. Z7 Z9 v6 t gen vtt=_n
- j# x) ]. X2 X7 E: l5 X" h0 a2 G8 {" H, D; U' d' v4 _+ G1 e
tsset vtt
2 ~9 X& f# z) b5 I7 x; k! I! ]) d" s5 P) e7 Z) l q3 V+ L
gen ddy240=D1.dy240/D1.dx240
5 j: N( M9 ?3 x# C) [! `* a" j ! H4 L- ` s# \! n2 M
sum ddy240
3 v4 Y2 q( b& T4 ~
$ i! k2 K( B' O' e' d gen ddy240max=r(max); M4 i- O1 w5 ~9 m( U" C% E
: L& t: r+ K3 G9 _6 c8 k gen ddy240min=r(min)
3 r/ C. t4 z. v9 I2 \
! i! [2 I( G7 P ]. Z3 y4 V gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
8 }. o5 ]0 V N J. M
d! ~& A% V8 b, X; Y" h0 q% F" W sum ddy240g7 Z% [' s# v" n4 }. c
: a# f/ T' H& G9 b7 j0 C
gen yxis3=r(min) in 1, j& Z+ V8 @2 C
9 i/ E+ \* ~) D
gen yxis4=0 in 12 S: R) _, `; e$ [0 E9 N
% V; U3 W; B0 N- {/ a7 P+ Q2 f
*ddy240g
- m7 K H6 W5 e# [* ?- u
$ u S' E m4 t4 o, C; \! n
4 m L/ K2 d$ w) ]% m+ E. X preserve
. A: P: ^7 Q- O4 b: I
; `7 X: M8 A) ]% M4 Z sum v5 [aw =avol]' F7 w( q! I7 x6 y5 V5 N8 ~0 \1 h. B
/ D! t& ?3 Y4 u! b+ O) c/ C9 i keep if dx240<r(mean)
- T/ Q+ l+ o7 J
6 U/ R; q W2 j0 m) U+ B. C4 L sum ddy240- H8 P& t+ p7 A3 t! x( ~, y' w: B
4 q o% G2 i Y3 o
if r(min)<0 {; N, q v, B- M) W1 G! Z7 p
" P2 i4 |: p7 c- T keep if ddy240<=0
. V0 Y9 i( u5 o, a- c e* J4 o 5 T8 f5 e6 }+ z% y9 D) q
count
; t J% @3 r! |* d9 q. V6 D& V2 ?0 m" c $ P# [# H. ?" | }. M" l4 `9 Z9 w- t
if r(N)>2 {
2 u- f& O9 `$ U8 P : q+ a& A% K- T" a& j' _, g8 J
pkexamine dx240 dy240) L( d6 E$ [4 _5 {( I' }( G2 W8 s
+ I% n7 c9 q3 L0 A5 u local tempminp=r(tomc)
, s' p% F2 ^" b# Q& g8 n restore ! b7 [% C1 M- u
}- L- S& e* P' O2 g$ j9 ~6 E
0 Z" \1 I& U) \
else {
# m5 k$ f6 ?# y& w
5 f! g. n2 N' V8 c" c+ ]' X5 e di "cannot find minp"4 u& R% k" Q: |5 B( |2 {
+ F8 A" J3 B* u6 y! l7 U; ^/ N
restore
( Q9 Q! }) V7 s; R sum dx240- M% H9 ?. @6 ]5 Z# }1 t h) r
local tempminp=r(mean)
) h4 p) O4 P' P: U7 B: c2 u& B $ Z( S' ?% U/ t: Y6 ^7 h ?
}" L, S) ^4 h& r; E. d
}, Z0 P2 C2 n9 a4 A
else {: ], Q) s! z3 S% Q! r& W; W- L
. l/ s5 V, y# I; h) H4 b: z
keep if ddy240<=r(min)
$ `" D/ r, J4 Q6 {- L; R+ t
; w4 Y7 M, }% Y sum dx2409 h5 ]/ F, G8 r! @; S5 c8 K' b
! J( C+ b; p+ |
local tempminp=r(min)
2 O w$ y# n3 I8 K& V% v( } restore
1 d, N! q* d1 z* h }
$ b4 P0 ]7 i% ]1 i8 O0 V; w1 V
' @, D8 U a# M1 P6 X) E. Z3 W5 n+ ~, y: k
# l1 n& K+ W c3 F: `( d$ ~ gen minp=`tempminp' in 1% G6 A7 g- a! B- i2 ?! E+ d7 Z% ~- h
*240 minp Q$ j* x8 h& f E8 N" A
+ Y- r0 z' U" ]5 B/ C
4 i$ ?: [# |1 k 9 P [! C. K+ k! J" E" E
preserve
/ |2 u G# Q' n$ B 2 v- k5 e+ h) ^7 }, h+ }# [
sum v5 [aw =avol]5 [' U: E2 C+ X" l! D" @6 v. ^
1 t+ v- J, K( i
keep if dx240>r(mean)
|3 w" w: j$ i3 T, d: ]1 W
5 B( {2 d9 u# A$ h4 T _& T sum ddy240
2 Q. q2 c, l: p* V+ [% v/ f2 N
6 Q0 E* g2 V0 T+ [9 W: X' \) s) L if r(max)>0 {# \' `, ]9 B# k. v5 _9 n1 R
8 c" D( M$ ~! W8 ^9 B5 B
keep if ddy240>=0
* Y- X0 r. x8 a/ V* t, f, t6 S ' s- R4 r) g* F: k. U
count
3 k+ t. E \: Z3 f' z* m # b) @) E) E# [9 c3 }; @* b
if r(N)>2 {/ O5 P, e( R h5 v
( p5 {8 ?; T( r pkexamine dx240 dy240
1 @( a5 r' c2 Q6 t- S
) v' A. E+ t9 x7 T local tempmaxp=r(tomc)
6 i4 W, `+ J! C' W* G3 }( w restore
) H+ [# Q8 K3 ]7 U. b1 D }
* R8 Q3 P8 U4 _2 v6 f" I; ^" z" S . |0 ^- U. d0 J, {) F
5 e2 Z* E6 j4 r4 m' ? else { w q& m/ q+ v+ h% {5 P) b# J
restore ) r2 O. u5 q( e# {
di "cannot find maxp"
. b! `( } R% D9 X ' K; u) L; W# G) A% U" u3 K
. X# n7 v3 Q! t& ~4 {
sum dx240
3 F6 D" t) o( i local tempmaxp=r(mean)
% T0 j+ z- O- Q& ]' L0 A1 }7 s1 K
. h+ K! c B+ W( @ }
^& F" B# {: n7 c* e; D, d
6 l3 T: _" l' N! e ^ }
8 m( F# O( U* [1 F
& T: }& ?. {7 i# x s4 _* t2 l else {( ~+ {5 M) @+ d3 ?& ? L
0 U( i. ]* P6 \ ]2 D keep if ddy240>=r(max)
S! v# C6 X1 ]0 N- l/ v
8 r C; t/ j4 ]6 }* i3 s sum dx240* ]0 M# j* H5 m* l' C3 h- k z
3 E( f2 w1 H6 _$ e
local tempmaxp=r(max)
- D6 z3 H8 j* O1 k" m restore ( P0 r6 ?, k4 ]2 D
}
: A2 U$ ` Y- X. I! q7 {$ t
/ Y+ J2 U# Z8 [# l; a0 h
& U5 {/ Y, p6 n% a" f
1 E# O$ s- B+ k% B7 G% M) z+ b
C+ s0 E8 m- _: |7 u& i2 ^. w( |" ` gen maxp=`tempmaxp' in 1& F! P; @3 l" \+ i9 o2 ^
% ]; }& t* {' @/ F
*240maxp" y( I6 Q! j; \+ o' `* m
4 ?( ?5 W) S* D0 C, O $ Y8 M7 x* O6 Z0 Y* g6 a, B
*-------------ddy240pminp左侧高峰值-----+ `- J m. ?9 p( k
2 O; v* o; O# j) ~! `
preserve . W. j6 v- j8 m X1 l; ]
; o, t0 N7 }6 |/ W
keep if dx240<`tempminp'% A! o# z3 ]: C: q8 } ~) p
0 u" N2 M- w& {0 W0 c% } keep if ddy240>0
7 V1 Z* H; N2 v2 B+ ?) A % R# p9 n% V; V$ s: j! P# E
count2 z. p: d9 Y0 O7 F( s* i9 I* a
8 j& B* j9 z3 ?
if r(N)>2 {6 B5 U1 [, l' N& g
; [# `# U1 v& p* C R# {4 V& x pkexamine dx240 ddy240
; j! F7 v0 h* J $ _9 Q' \3 m! d* f
local tempminphddy240=r(tomc)
# a& n8 ~! i/ n# j* d1 G7 x I' H restore
2 b5 I" _+ k$ B- i9 B7 p6 G }9 T7 X( B/ i, z9 R
- C1 @5 D n7 c# i7 ]" {: B
else {
' V' ]) E$ c3 U restore . \, a4 S, m7 T* X. C1 J
di "cannot find pminphddy240"% H1 q2 X1 G! r/ p- [9 w8 ]# {
$ f" W9 ^. Z: d$ D# l* V ; b2 ]# w. l6 Y* ~! }
sum dx240! L" l- i+ |8 Y5 ~0 P
local tempminphddy240=r(mean)
5 i \: p5 n" W& }# p
9 c( B, S# F; U: y6 j3 h' E A
' f, k* Q7 w# N$ z* q }# x: F8 x9 v" `5 y# q1 I+ o
) L l( P0 X" g9 G. U
/ o" o4 C. r3 d+ N. B- v: C
- N3 k. E d4 ~0 O
: e8 P7 i- }0 X0 c) v3 N
$ k( Y) G8 R1 a1 O( z c& q8 r9 {
5 ~: J5 ]( Z9 G2 A9 E& L1 `4 ? gen pminphddy240=`tempminphddy240' in 10 H' I$ S o; k1 Z: y2 A: f$ b
2 h4 z4 x! M2 |3 t
2 Z/ s6 B1 b: ^ n2 { *-------------ddy240pminp右侧低峰值 -----------------
) J+ ?% n+ K& R9 J1 d preserve
( P4 y- O$ O7 @/ l& A+ P6 ?4 Z6 k 6 W& }+ z; P5 ], e, K
keep if dx240>`tempminp'
; ?$ A. i: ~/ j* w4 l , ~* C" E9 q- @ g2 U8 j# }
keep if dx240<`tempmaxp'% ]0 o$ g$ r0 W( c0 b* @% B
/ t) O* n% K A: u! E keep if ddy240<0/ @% w3 f: i% ]6 g5 T0 A1 K
5 u" X, S7 I" @5 \) K
gen temddy240=-ddy240
+ c, Z. |, g! ?7 W* A4 n' V7 w* ^ 6 a1 w- P# p; ?( P
count5 F& r( ]6 E* {( B4 r7 J6 B
$ O$ O" R# T: L* p9 a3 g, H! u if r(N)>2 {+ o7 |8 _- P( R3 N. {
8 @1 x' X& V) R pkexamine dx240 temddy240
! j3 z% e0 r/ P+ J1 a! S% y4 H" R
, t2 p/ q7 n6 W7 O) K K1 \ local tempminplddy240=r(tomc)
. K; v+ F9 ^! Y4 x7 I [- Y2 ` restore8 E$ J1 H' j' E0 }
}
" c& W+ }6 @, g
# A7 F: L q9 g. ^8 O7 b6 [ else {- y: C) e& \+ S- c$ N g8 u
6 i/ v( r# |- [ U. \0 T4 a4 B/ D
di "cannot find pminplddy240"
9 y. j6 i' `4 n1 l9 [. Q restore
" i$ ?5 N6 r# n9 `
0 l7 s0 L& R- U% f% ~ sum dx240
! v2 [! k6 t4 e$ w local tempminplddy240=r(mean)
$ ?" [: Y$ y1 N; Y3 F0 B( h, u
* _( Z9 w" L }& m/ Z. V 7 G+ l n3 p. J) S
}8 [' g6 U& N6 p9 a
/ k7 X( c( v' [4 M J* a' ?" _ h $ s A/ U2 D+ H+ V# ?) f; d
8 I b1 f: y" \
- O7 T# f9 y" T+ ?% j
# J9 |* c) l5 Z# s% u& K- v- \8 C) \
gen pminplddy240=`tempminplddy240' in 1
6 v- y1 D+ s; y% d. p2 m+ H% @
& x. w7 O" V$ a0 a *-------------ddy240pmaxp左侧高峰值 -------------------( D' {3 v0 T) n
- \2 m( N- s( g* Y4 P: { preserve
% f: J) N! p- U* S# z* h
1 _- C6 h9 ^" Z6 U+ c) s" Q5 r7 g3 L keep if dx240>`tempminp'
& f( i' u0 ^" ^9 G8 I- L5 H
( M# l- G8 O* `5 R& ^+ R1 c: m! ` keep if dx240<`tempmaxp'& b- J' l6 {0 P5 J$ e7 X
. S' y# ~0 w; b) ]- S keep if ddy240>0
3 _" ^0 J2 V8 T( A/ w count
! Z; O/ k. A1 ]: v& P0 ^ # @+ o) ?' u/ Z; c
if r(N)>2 {1 w2 f& k: ]# L4 ~
: ?* Z. Y8 z* ]. `5 |# f3 H
pkexamine dx240 ddy2405 t2 K* {: H& y: W& l
1 s" J) g6 h+ V/ ~$ D
local tempmaxphddy240=r(tomc) $ I$ c) |0 V) q+ R: j+ D6 _# F* t1 D
9 ^! j! @; t4 p7 P' w restore
3 O |9 T) A0 x4 [2 E& w }- J6 H+ l, }+ l; A
, |5 I; l* U* I' ]
else {2 ~) h/ E/ L! [4 P: E( b
' R* i4 G4 a9 q; v0 l
di "cannot find pmaxphddy240"! O' Q% X2 Z6 Q) |4 ]
restore
* Q0 a7 N) }% _( E! G 4 u& G7 s- G3 s0 ]
sum dx2409 C4 A: d: x; g$ f5 f+ f5 M
local tempmaxphddy240=r(mean)
# T' D1 O+ |- x- i: o
( T4 b4 |8 f+ ]2 s
9 ^" a% a T2 t3 _6 f l% K0 [ }
- E" V. c. ^, }: _; m7 w0 W9 G. ] % d; d1 o$ D3 K! T. v5 a6 s
8 x; Y% m$ Z2 Q( o6 f. P) c3 g
7 g2 }7 M9 B+ Z
5 h2 x( }5 R1 E1 C3 \( Q& X% n 3 y/ e3 l, X. G8 Y* e% x$ ~
0 B* ?9 _# e5 k: K; P- g gen pmaxphddy240=`tempmaxphddy240' in 1
' Q7 x0 V; x3 O' g5 F: a1 n
3 U+ U5 d1 z( u: ^6 \ s6 H0 Z% J* M0 P) l& V
*-------------ddy240pmaxp右侧低峰值 -------------------8 H8 r% s0 g+ f
5 k! j x+ y( i4 x4 E6 }; j
preserve
; r- }2 @2 i3 n' H" t $ I% y$ c" B+ j( o
keep if dx240>`tempmaxp'
+ d% A0 y2 \0 Y; _9 T2 a
) R+ [$ c% K. F! e! u gen temddy240=-ddy240
* Q8 z( U1 r8 f- R5 ]% e: ^: k& ^ . m% O/ G9 j1 [! R2 x* r
keep if temddy240>0
" M% @- h5 k1 @8 K7 o- Z
: r5 e. ^2 D, ]) I: \4 y j+ j count! N* r$ y, X: `; f! e
; h M; F* b" P) ]0 P% _ if r(N)>2 {
2 F0 D( O* u2 ~0 L9 }; p $ y1 g# L/ S1 f! o+ W }$ k
pkexamine dx240 temddy2406 s* `- m# e7 C1 r' t" ^2 m
, n) k8 g9 {* V0 n local tempmaxplddy240=r(tomc) ' |9 D y' ^1 y
restore, j" `- W+ Q( d, _5 d" m
}
& I; p J' }; _2 L$ H, f
% X' J0 l* g* w- z& U8 U else {9 A' h" O) [! u! b5 N& l% x
restore
3 w' p# v2 `! Z( K2 T. L6 t" s di "cannot find pmaxlhddy240"% {! ]" ~+ a# q
o% N6 T- G* {; ?- x / |7 f) M* [- |1 }
sum dx240' W% k% E( m V; F4 A
local tempmaxplddy240=r(mean) in 1, b. k3 I: k% \" |4 N- O* ^0 v; m
, u! B/ E- G4 ?; u' s7 Z
; D$ B/ C6 r- y }' F9 ~- c) [/ j
4 V- Y) a) g- \" d a. M ) T! O; i8 _3 W9 B" N3 g2 f
( w% N Y6 z e , b H q8 x4 I& L9 G% x
' }4 [% A. p& c5 N
8 U0 [8 H0 ^! S# C( o, W- S$ M% E
gen pmaxplddy240=`tempmaxphddy240' in 1
; ?2 g' d h3 G8 k: D8 Z' ]8 L0 @2 C 3 n3 n p- p8 B$ W7 G$ [
*-------------------------------------
4 u' q: p% A# a( p, l- P
: e1 F. b$ t w- Q( x gen price5d=v5 in 1/20
. G: H5 w" z; ~1 d4 u" O3 K
- ^1 u& @9 A5 j c4 a8 j3 f gen price5yy=_n in 1/20
) z0 g# z b7 P- W' Q/ Z% z
9 |# W; m/ N1 c# A5 u% X6 ? gen price5y=price5yy*(dy240max-dy240min)/20
1 H' H0 W9 { W* O; n; X$ z, d & U7 _) B8 G. ?4 K) g/ }- c. i
*price5y &price5d0 i0 a4 |; i- T
8 e* o- R' F2 X( d; U. z
gen priceny=price5y in 1
6 X8 R; U0 f+ j6 n ! T0 U/ K z r
gen pricen=v5 in 15 j9 c9 M) x* `: o9 j
$ c& H, \9 L8 I
0 J8 r" l; P$ b3 l *priceny &pricen
% T# u, N8 \# q
3 l2 z3 `5 S2 Y9 @' r
: c2 g1 o1 x$ e& ~" J. H/ c5 S; z *-------------------------graph------------------
' S+ d: g# L3 r% W! Y6 b 0 X* Z$ c. [, K7 j3 ^
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)
o: P) ~6 {& r8 S8 R& x) f3 }4 i. r, f% L
* ---------可选项目----------------------) z4 J+ c# u/ |* e. r
2 S& I: c& ~9 Z1 S7 g% C}) l D3 w) U0 i$ l1 |; ~; r9 z
end
P7 g. b4 X- i# j |
|