|
|
改了一下,这次运算应该没啥问题了
5 c" D* ?. n3 B. R4 ~4 n$ c+ A* H6 s4 @* {
S4 f+ ?1 M% i6 q- ^0 a
capture program drop hello
0 g' x) N9 D, q4 h
3 Z# L; T; G* o) R5 H" u2 eprogram hello9 d d7 } ]& [+ u
: M% @- Y2 L* v* K! a$ S quietly {
" ^' b+ L* |( u7 I+ X
1 O a7 z& c8 _- ^clear
. u1 k$ g7 r" \% v) d
- s. {* y, L \$ f# ncd e:\finance\stock\20110101\source- i9 s/ ?8 |3 Q+ o
! q; P8 H% v$ d" B, B6 U5 H2 minsheet using `1'.txt8 H6 y! f+ H: k2 N! t# B
- _& `3 y1 L6 q9 ]. E keep if v5>0
+ Z+ K, r& m2 O$ x8 E + L4 l/ R; i# V1 Q6 c" L0 i7 E" z2 t
gen vt=_n3 N: @, i+ ?* Y" y# ]7 c9 K8 B
0 C( P# l" C2 P tsset vt
8 q: ^+ \5 S; i' V+ y6 K5 \2 h+ d& b: @$ X6 {9 E: [- x' E/ I
gen zf=D1.v5
/ _5 e- v c0 K& ]% @: u* L! W
$ H3 ~9 B- @. \1 Y$ T/ D- ~ gsort -v1
/ H1 q; {4 J' G- O q9 j( B6 D8 C9 z/ X
gen avol=v7/v56 J, d0 |. i9 e# |& G' l5 T
8 V: m7 y' H' M# o keep if avol>06 H+ d# g9 |$ `
; _5 O5 @6 i4 j1 S5 w3 F
drop vt
6 O7 D, [1 |9 l) ~( Z1 D
6 |1 X4 C+ l6 B8 R5 p gen vt=_n
5 s& U2 c: g7 h# q# ?: D
* t9 @6 c2 V$ N& C" P- g) U tsset vt
0 {( d( W3 F" H4 o5 g) A/ E 3 V; m9 x! v3 W0 y) o; N
sum v5 [aw =avol]
' X# T# j, m- p1 w1 F6 c
) ^$ K% w9 @ \5 ^) g gen amean=r(mean) in 1
, a g5 y8 n; D O
8 J6 J3 l& ]4 n# W0 V9 c9 n9 R * 总加权平均值 amean8 c/ a" U- m% K* d
1 o$ J. M2 w3 k. Q3 i' E
: b. k" t* B. [0 z; I2 F: z0 U( D keep in 1/240
$ Q4 Z' k& n% S0 I/ d7 }+ Z1 M% _' m. j9 `
sum v5 [aw =avol]
& A" w6 ?6 C' ?, g
0 i1 a% v' v$ g! S9 P gen mean240=r(mean) in 1/ T7 ?, I- R& ?: c
& z, S$ f, ^/ q. n
*240加权平均值 mean240
' i9 v7 e. N% q7 L: U' y
# v. ~& k! v w2 l* l set obs 500 4 v9 M8 j# I$ G. J- [9 w7 ?
: v& r% x% I: n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
8 X3 R5 ?4 C" w( F$ S: R$ |( I$ L ]
2 X4 L. t+ V: E( M: y8 \" I5 i. v *240 kdensity(dx240 dy240)" V2 x2 I" e9 O, a
6 `) ~5 T( c3 F! r# @ sum dy2403 u" s* V* e/ p/ @) d
. B" E6 `2 ^' y2 ^( U
gen yxis=r(max) in 1+ \9 S w4 W! z/ B2 v& w% {
8 T3 S+ U; V+ o% r
gen yxis2=yxis/2" p ~: X }2 e# K5 P
# ^5 \0 |4 z9 _1 o+ T5 N
*yxis
$ U5 @7 \2 z% B% L/ }
( ~! @/ c2 H) _9 A, O gen dy240max=r(max)
9 L2 ] Z. ?7 X3 E
# P/ m$ P) v, g. Z) ?) f0 o2 { gen dy240minp=r(min)& z4 e* B9 i1 e* p& [
+ f% v6 y5 B" @0 N+ m; H
gen vtt=_n
8 d5 |+ ], J+ s! b$ Y1 G
; D- g) ~- p% a, P" l% \& e& e tsset vtt
; X2 Z4 z+ L& Q* l: l9 r" _* e) w. Y& b
gen ddy240=D1.dy240/D1.dx240" n3 f# J9 Q: _% [
1 ?! \, |$ W% W& V# u9 x9 j- q+ h3 z
sum ddy240- H, m. s9 l; J( M4 Y0 `" E' o
/ L" _" y, L1 F! a) X& A, j
gen ddy240max=r(max)
5 Q" N' X+ j$ [, O3 p
7 C Q( W; t. @+ {, Q gen ddy240min=r(min)
% o" O% h' c+ {" V G0 m
6 j7 x/ m2 G" U; \ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min) _9 n- P% u$ C& E
" y: J6 M$ R5 T' O4 B+ J
sum ddy240g
4 E8 ~* v0 w% ~- L( y( n$ v ' v' }1 d$ ?% b4 i6 [; i* t
gen yxis3=r(min) in 1
$ @$ u0 \* Y7 [5 Y" E$ w: P
# @( t" W; V v. @6 c# ^ gen yxis4=0 in 12 w, U; G2 Q( P# _2 X/ t
& K0 z! B5 @; M3 E. a0 X
*ddy240g 2 [3 p( I" u$ Z# Q
& E/ y4 J. E9 a3 T" T l( S8 S
1 j# M7 U! x! L8 U4 t2 Z) |* H
preserve 0 {7 L# G% g$ c8 F
4 M# G- \) c9 A sum v5 [aw =avol]3 G7 Y" n" o2 t+ e0 ]
! _5 o9 x2 K U! Z9 @# i
keep if dx240<r(mean)
4 e& F' ?# Q8 t. X: c$ Q8 t. }
0 Z1 F; |; y7 w& k sum ddy240
4 Y4 q, K" ^( E6 o. j. W y
, O5 @0 {: {( R- Q if r(min)<0 {3 R" h! v" J6 [$ g: K7 v
' y; Z4 |7 k$ _& [, v% i" b+ u
keep if ddy240<=07 H! `; U: k" K9 E2 _9 W6 ?3 }. I
) I2 N* W# |9 ~4 d count" E4 B/ C& p5 J3 Y Y; g
! K& g0 A: f, Z1 l% Q$ }
if r(N)>2 {
/ l( x) b$ ^" H
7 U, t1 q$ I( s8 L# a pkexamine dx240 dy240- H9 i3 L- E! M5 }" p
$ E9 V& ]/ t0 _0 W4 Y; c, c" W5 E! v, ` local tempminp=r(tomc)
: k+ N* P$ I7 ]( {) x0 J4 ^3 K restore : ]. E& t5 {: C: l' i, T$ n7 q3 F
}/ @. ?$ n) [* z6 k
+ i5 d/ {- g h. N3 F* f# |+ D9 Y
else {- }1 R1 b2 \; [
+ R: _; u8 | u0 {3 `# G
di "cannot find minp"# |: }4 O0 r! K: D# y1 J* U
. n+ j- x4 S- Y
restore $ E0 m6 b7 c, b" \) O$ k+ `
sum dx2406 r! b1 t+ X5 m, R( N
local tempminp=r(mean)
b- O1 \+ T* K/ I& ?) F5 N. `
$ X1 u* T- g! e1 q$ L& B( m! B" i }5 T# X9 N7 H4 S/ T
}. c8 p5 W$ E0 |& q% b! J( O/ k: h
else {# V* A0 i q$ c$ X& h) p! X
' E0 ]( z* `, J( i. } keep if ddy240<=r(min)
+ C w4 D4 L7 ?
% d* `, _: e* a, |5 a sum dx240
) e0 l; i; u( n$ Z% U c) l# j/ r / X i# ? B4 K, t
local tempminp=r(min)2 u5 f' W: b4 u E/ X% H6 i
restore
/ ]+ Q7 ^. ^$ q( |( X( z }- ~8 `4 ?& ^' g8 D
' ?* W. R: D7 g) {
/ Y, d$ e" t G! e5 |: e
5 d) g5 l' j7 d7 d gen minp=`tempminp' in 1! z, s; }5 Z1 x" {" ? x
*240 minp* U& M# g* z0 A& M& F
6 I4 g1 [% b6 Y& P5 e( I
+ N, C k8 l6 r2 h3 R: E' I; R
8 i% c7 T0 i0 g' v preserve Z, o3 \$ L/ q: q7 L
9 }! ]# |: \" T9 V7 w( \. @
sum v5 [aw =avol]
; w% }/ O& T( n
* s, b/ C7 q2 V) j keep if dx240>r(mean)4 _3 I3 d, Q5 F3 } ?3 x3 b( Y
1 ~; w- u- X( F
sum ddy240
- f. g- T: e) S9 t: ?. O
: i- f" s5 s! x ?5 k9 r if r(max)>0 {
7 g0 w! K2 a" [7 b* V" Y # d: H7 \3 L7 w2 H1 v+ A2 A
keep if ddy240>=0 M0 e+ J9 D I' N) B
3 z: W) T6 w* @" s' o/ ?! T! S; r count3 Z" B. l- p/ V% ?2 u5 `" o
9 `2 s! b. W9 a- b
if r(N)>2 {; a6 e. m8 `, _% a! t5 |# D% u) Z
0 d/ q; c+ [* | a7 B# {2 D- P
pkexamine dx240 dy240' U; _( W( M# s( _. m M
% R* k! m( K3 Z" f local tempmaxp=r(tomc) 1 {$ o7 o X- [# s8 ]8 b' _3 Y4 ^. Z% F
restore h2 J4 |+ P L S, e" ]$ W0 A
}, {! S3 X, h3 b4 r' q6 |
% I. i& g% p: K# X" H: c1 O- F
! ~: S! R; @6 ?% ^; J else {
2 N" a# g- X. F5 e restore ' {) i& D1 Z$ ~, x) N
di "cannot find maxp"/ P7 A, i# D0 \, Y9 o9 A! k; Z% B3 Z
. I0 Y% w' F: g: u- ?4 x3 ], O
$ [- f% G& ?* q) l sum dx2409 \$ q! t! n9 g# T7 h7 d; X
local tempmaxp=r(mean)
5 Y. c0 D% X( C0 X ; \( L: O6 [% J/ I+ l+ a3 ]
}0 r+ f" |2 r5 C+ t2 h4 c0 ]+ J
% z5 H: q) i5 O5 G4 z# H6 X& [" C }
) h5 ~. V" t8 w3 a& o' g% h; W; B " P1 \ t7 k1 A6 t: D, [
else {
% I$ H" y& y3 G; c
/ L$ D$ A/ ^6 Y9 { keep if ddy240>=r(max)" r* T& b6 q0 n+ c0 A
4 @& T4 T1 J9 |! e9 I" y sum dx240
+ H6 }4 p) z) \# @ % l g& ?3 c. }9 q. c# `" W
local tempmaxp=r(max) 2 x) H0 I7 I/ U& A& X
restore " X, B7 G0 H% s5 y3 V
}
4 q. ]1 b ~0 k9 M 5 B; G# L" L) ~, Z
* ~! `, I$ N/ h I9 \9 B/ \# X
' r5 o! B# p$ S9 V) g. m
# E3 j u* l9 o
gen maxp=`tempmaxp' in 19 E% v& ]. O) b! x
! ? Y& J. m+ C8 |
*240maxp( R! P/ }- T; k
; g5 |, G; s# v) S8 x( e
4 J9 B- }# I" D9 A3 j# y) K# N *-------------ddy240pminp左侧高峰值-----/ c3 k$ X- I- x; d- n) k6 V
8 o1 P K, k$ c$ X2 m' W" O
preserve 5 W \* T2 x- N. w; p- @* k
, p/ e/ v1 J' [; b; D0 P
keep if dx240<`tempminp': a& K6 C0 p( b
8 c) w' J, O9 ^2 u. O# M" J: G keep if ddy240>0
+ M* F8 Y4 M5 D# |, B$ g4 w3 k% V
$ t/ v* p& C" n! A) E" m count
, M. L5 M6 `2 p% I$ ? Q7 W9 P
1 l n9 e: k7 l o6 f if r(N)>2 {
# }7 I, q1 t, m k& M 6 P# Z" \ S* {7 o
pkexamine dx240 ddy2400 L/ z1 A# l+ I, I% K
( n1 O5 q2 v/ s8 _2 e$ Y
local tempminphddy240=r(tomc)
0 L4 T2 B& |4 }, |' [0 p restore
7 X7 J, ]7 o: z3 @) |2 j }
- E) }* g% m! ~/ N$ i 3 e# A5 Q7 E0 w; ] k$ T
else {1 I& \1 ?3 @% c
restore ) L; C% i; |6 b# S6 w0 K
di "cannot find pminphddy240"
6 t% \& U% Q8 \
$ ] f' h! x/ g) _* r
- ~& N* i6 F6 |. s/ D sum dx240
' m" Y! B. |0 S local tempminphddy240=r(mean)
. B# n, d: @9 P+ [3 [8 j2 o& q
, ]% w5 m/ a5 }5 d$ o . `% k2 g/ i8 O8 P
}3 d2 c2 @6 Y$ t& O" U4 n
/ g" a3 t9 a ?+ O7 `
- n! e$ F# }, D
- O/ w+ o7 ^! z, C
2 B2 s9 K$ T9 E- g$ G, P* ^: i2 C
- r1 \* @: ]6 x) v$ f" t0 ` 0 f7 p0 n0 l0 H7 l) `! M
gen pminphddy240=`tempminphddy240' in 1
1 y& Y7 j/ e! `* _4 [( v7 h
: R( q4 D' g* R( S ) a3 M& B4 W; ?
*-------------ddy240pminp右侧低峰值 -----------------
7 s) a2 O: ]% a% y6 M$ m preserve 6 h5 ?; m" d$ [% O# z8 ~9 G
, ?7 f0 M7 u, ~! [' ] keep if dx240>`tempminp'
6 y6 _8 K) X, ~/ W
5 c7 z2 P4 X- s; [) i6 @6 x( z keep if dx240<`tempmaxp'
- H8 G) V2 E: _& a
; I# I7 N* N& Z6 E1 g; j# Q5 V( T keep if ddy240<0) x0 l0 j5 `9 c
& B) f+ c; {6 Y$ j# t- w2 J gen temddy240=-ddy240, `; @( e" r) q: ?
! o' z+ p0 ]7 v8 O count
6 [* ?: V' @3 C+ z# X) ~8 } ! y7 l9 t& V7 v- _7 _. f
if r(N)>2 {
1 E% r3 ?/ M* R, T) W
3 j" K; T' B. n' H4 Q3 m pkexamine dx240 temddy240- i _+ }2 u( s- O9 g7 A
+ C. L# N! w h" Q7 X local tempminplddy240=r(tomc)2 D9 s! n. C7 W% F
restore6 A4 c9 [9 x) r1 |9 J
}
2 n9 H- u: N6 f( D) C- u3 I 7 A5 b% R2 o. b: P: H4 c9 z3 \
else {
' n* X: n7 D9 x, M + G' R8 X2 n# _1 _# ^( p
di "cannot find pminplddy240"
, w5 T, u- n, q" ~ restore
0 S. h+ X: n) k" y 2 s1 B' \- \; ^9 \7 l: R' g' L* `8 o
sum dx240
9 D) w4 G& r" |+ ^$ C7 ~# ` local tempminplddy240=r(mean)
% k: \; h/ w) j6 u
2 E9 n5 J {. \$ | 1 j" Z: `- K2 n8 ?
}7 Y U$ n( p" D' v4 a- L
/ E0 J' S4 w& X2 I, p% z* n; `
' F1 c: P& U9 m6 H3 J% n 7 A" g8 @: y% c
0 W5 e: k4 q0 i. i3 g
0 E: P6 m8 D2 {0 e8 t gen pminplddy240=`tempminplddy240' in 1& H0 P$ l1 @% k
% J- q- q: I/ F6 h# |+ p a' ] *-------------ddy240pmaxp左侧高峰值 -------------------
) }1 U' T P" m b% ^1 F " b& M) H* ~( p
preserve
: q/ W$ R# \) }& g# _7 s7 \$ | 5 a) `1 v! t) }6 `
keep if dx240>`tempminp'
+ p6 {3 R- v9 I, f2 Y # D8 G$ \! C; L4 d7 R! G
keep if dx240<`tempmaxp'
4 G1 n7 B4 v* h l" U7 G# x: q6 x$ M 2 F/ B# L o0 m
keep if ddy240>00 X6 Q3 Z9 r& G4 t
count1 _# ]! h3 U6 n0 b" c* Z+ K+ F2 \4 G
% j% E1 M! Y" {& |' r if r(N)>2 {
- I3 W. V; ]4 s+ \ r7 o8 ~
5 S8 x6 R- H6 W# { pkexamine dx240 ddy2405 X2 e% W! C& l3 L8 j1 X! f
3 [8 n I2 s2 Y8 F local tempmaxphddy240=r(tomc)
" u! s9 x4 v6 K6 d- T
, @5 R2 V! A9 V restore
9 U6 n0 p0 f$ n$ H9 t' d }5 H' F$ |' e8 P7 D
$ ~4 V' q6 k( R' ?& p& G else {
$ c2 ~7 i1 P- Y H c/ o) T* ^' R
di "cannot find pmaxphddy240"$ `# C* V% S% g' ^# q" U
restore( b+ |# V6 |- a: F$ P( M$ e
o0 I, n( W! N: S: T: g
sum dx2405 o0 m5 [2 O' p- Q, x
local tempmaxphddy240=r(mean) 6 ` Z% A0 e, w
& T! Q8 L6 W+ g0 N% \4 m c9 ?8 h + P1 O8 v/ T: U1 T3 S1 U
}
% }0 ~. o3 R5 G, ]! N. p
' f' Z2 j9 c1 p" y5 I4 i " D6 E2 E: y" Q' N9 C/ B
3 K/ S1 f" M& l; f
; x- r J' K9 \7 i 0 g' J5 N$ l' m- F6 X/ i/ Z- b
: x/ S. O4 w g! g5 S' X% u
gen pmaxphddy240=`tempmaxphddy240' in 1
" C" _/ R3 ~. Z; q6 p4 z2 E+ I ! T; G+ A+ ^: \( L& L9 Z; t
9 C& r- j3 \% @, p/ V
*-------------ddy240pmaxp右侧低峰值 -------------------# J" Z. M: ~, {' B V/ ^/ d
3 h4 ~' D7 P) i- x9 G* a
preserve
3 P- u6 S! O+ U+ v1 [5 S5 [. ^ 2 H7 h; {. k. | l! P* a. S
keep if dx240>`tempmaxp'
4 V- V* `9 Y# Q( p3 ^( u/ r / `( C( t7 b8 w
gen temddy240=-ddy240
) H/ ?5 w0 \5 Z0 d( a4 b' g# R( N% e 3 W% r& u6 U% F% H5 `) ^) i" h0 h( m
keep if temddy240>0( u4 ~9 R; V9 c1 b
% P" ^" z% R2 J& D/ F) Z+ h
count
3 s5 V5 f# r* \7 V U. _ 8 E+ u9 i$ e0 T6 K% M
if r(N)>2 {# Q p' f9 r7 o# C" z( F' D
2 S5 k, u" S6 t h pkexamine dx240 temddy240
" ^. y3 i6 E+ u+ T! H& c/ p5 B v
. x2 t5 `( w ^% y [ local tempmaxplddy240=r(tomc)
* v' t6 P5 }# U& ^! r2 H/ q restore
. U( a+ T2 u0 |7 _! I& @, x% P( O }" q2 ~# B9 [& N, ]6 q
* t( H# {' K) k& O$ T7 d, D h/ L$ p2 w
else {
6 T. O6 s/ N0 z0 y2 \/ @1 ` restore
) s6 k% H7 z1 a di "cannot find pmaxlhddy240". {6 }" ?# P+ _! P% I
9 B% I7 I1 l K1 ?* y0 |# X 6 x# ~6 P) @- J
sum dx240! W8 y. f% {6 ^" o, x: q
local tempmaxplddy240=r(mean) in 1
0 t6 X" e0 D& Z : T; R& S S3 v; p" e A) Y& x3 f
1 p) m3 ^+ w8 m6 z L' a% V }4 ]; a* z% N V7 t7 f
$ ^2 U+ K' ]4 O3 P* D; i& S- T) D ( W8 ]1 |9 F7 k
5 z+ ?8 H$ d5 D7 T7 e
9 l- l |1 X9 o( @, u2 e
7 W0 C( U( o G! n
" H3 Q3 u, d g! e1 F) Z& W
gen pmaxplddy240=`tempmaxphddy240' in 15 y+ |: @6 ^6 T1 l; l! A
: s2 G. Y) X7 T
*-------------------------------------
( R$ V& y/ `' i l: s( { 4 m: X; x9 k" @9 Z: m$ _
gen price5d=v5 in 1/202 d0 @" i$ A0 o5 a) o/ R* I
0 l8 y( L$ b) R }* p1 M8 D" L( t4 z
gen price5yy=_n in 1/20
M0 f J0 O) Y: F
1 C9 U$ j/ h* @+ P3 s! A5 r5 P' { gen price5y=price5yy*(dy240max-dy240min)/20
$ B3 T8 }7 Q, ]6 R$ b3 A- y: @
^- k; {* M( w+ x+ N *price5y &price5d
- V0 ^. u/ N' V, ]5 y4 g! {8 i 4 B) a5 g7 m' ~% k- L' D5 p5 D
gen priceny=price5y in 1
1 ~ |$ Y2 x* q , k' E4 P1 C" r# O) w" L8 j0 V
gen pricen=v5 in 1) V; v( W: u/ x- r& @; m( e( g& \
# a8 D0 G+ p# u7 @# U" }
8 W- N7 m5 S4 @7 s *priceny &pricen$ U$ o/ S/ Y6 U8 G. T( v1 k
. P; e$ E/ `2 V* a! M+ T
- c+ k8 B* \# { *-------------------------graph------------------, w7 N# @% F$ |. z
& ]( I. J9 ]% s
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)6 }# v( ?4 |3 B
1 U0 T% I9 ~ o! t* ---------可选项目----------------------
* B( _% m% H% F: X) m5 P
- e9 l3 _% `# p- n8 [}( [" y- q; k& v# O% n
end3 U3 s' L% W# b! M
|
|