|
|
改了一下,这次运算应该没啥问题了
& [9 D( l6 X# z. G- P" w! F9 D x( N4 b! ], Y! V& {$ Z
( t. a0 s @1 z+ c h
capture program drop hello
' j. [. o) _( J! |: q* A4 d6 b
( l+ s7 I' {$ S6 \3 [' dprogram hello G- N7 J: X" D" _. }
b4 S+ L4 A. i1 |$ g0 [
quietly {
# u" F" c7 o( T/ [
, q% h$ Q6 C) `# f( M& lclear9 G5 j( x9 I; w7 i$ ~& [
( b' j$ }* D4 _; P7 [! [2 z! K" Bcd e:\finance\stock\20110101\source' c" y9 A4 |% O8 D3 x2 x+ H
; H% K q3 D0 ]( cinsheet using `1'.txt# w6 Y& F& r! t Y2 X, {" ~) ], `
5 d2 {, a+ `. {4 U
keep if v5>0( {5 R2 ]# b S( y. B7 N
* _" r! U- i9 ?; N9 Z7 @. }3 K
gen vt=_n
@$ g- P3 t; |* ^+ G/ d 0 }( W/ D' v' y1 i4 j+ v$ M
tsset vt
; \8 N6 A5 U9 m; t$ S0 R" p& D' i7 r( f; j; d
gen zf=D1.v5
" l& D' ^+ ?3 K1 h. h
# s: z1 {7 N6 S7 W: y gsort -v18 w7 A* O" Y1 ]- j
& I6 m2 @, t" r$ \# [2 G6 R2 ?
gen avol=v7/v5
_ Y' ?; B$ Q4 N# L0 _' J/ a/ Z
+ i+ q- f' T) q keep if avol>0# @6 v6 h& j0 A5 b
' g8 A+ m8 {) I9 m drop vt7 T# h& _: m1 k d3 X
$ W/ S5 Q, f4 X. n! P
gen vt=_n( A* `: c2 X8 o# L1 H* Y
3 v) Z2 p. W J; l
tsset vt
2 ~7 t0 t; t" s% W2 z $ ^8 ]0 x. h3 L( G& O5 a
sum v5 [aw =avol], Z, p$ e+ V: ], L- _' _) Q9 l
D. }1 R9 g, Z- t
gen amean=r(mean) in 1
3 i' T. r [! k' G1 K
* k7 l1 _* {, i0 t2 B o$ k6 c * 总加权平均值 amean) k& v% A8 m! {" ?( {% y9 z
( o6 X2 j+ \- {; X F - J# y7 K( |4 _; p" f4 Q
keep in 1/240: y2 e2 \' }1 [& d- y& \5 p
% \+ w& h4 q2 a; l( \. m% A8 t
sum v5 [aw =avol]
2 n; S2 A( n5 O
) d: a) w- T( g1 A' s6 o gen mean240=r(mean) in 1# P' v/ D3 z$ l& C
& z8 c; C5 }- A0 v; R% P, w# V/ t1 F *240加权平均值 mean240$ q: P4 |- ^+ n* X/ |
# G$ b% N- K p+ p
set obs 500
+ u- h. f) N) w0 K% F) p ) ^% f N3 I$ V7 T, h2 d3 N
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
. R0 m. @. E) k5 r, Z& V/ m 4 e$ H, p) y2 ~; ]! y( h
*240 kdensity(dx240 dy240)
3 X& W# j, c# a5 z 4 x( o8 H7 t( _5 [, j# n o
sum dy240
/ W: a8 ^! k0 _+ ` [- K
/ _+ r6 O) @1 `1 }6 q+ A% h$ T9 w gen yxis=r(max) in 1
9 b5 ]+ X* S' L# z( A! A. {& e ) G1 \& j6 C& F7 p. h$ }
gen yxis2=yxis/2, Q5 y( s; U9 S1 ?3 r
# g4 c: x" |3 C6 D' ^
*yxis
1 u3 Q" ^% E1 ~& r; T3 |" i 3 o: q) f! q, ~7 c0 M$ B$ {
gen dy240max=r(max)5 y5 t Y, p; q* Z! b' N& `, J
& `/ P8 d# g! A* m, n- P4 G0 X gen dy240minp=r(min)5 s3 `% W+ I1 c, k( H
% T' ^& @* U' x; c
gen vtt=_n; d1 B) l3 \7 x0 [' A
( @! g% k2 `' X; ]/ M% K tsset vtt
$ [- X* ]/ n4 B
5 O3 O- S* p1 k) F0 z8 [, l gen ddy240=D1.dy240/D1.dx2401 i& S; F+ B; X& G
. I- k! I5 M- Q7 b9 I. @/ W" P( g" ] sum ddy240
7 y8 f; I- z0 s1 ]9 k+ F+ H . V. F& G9 b3 O: h3 U
gen ddy240max=r(max)
* p( x+ ?- K- E3 T
, x7 w' C3 f* ]1 W( }3 ?0 E gen ddy240min=r(min)
4 U3 B, P% q' E% `4 C : g4 x) E% O4 Y \" d7 \- `' u p
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
% u4 Y$ j4 H# ~' o; ^, I: ?+ H
/ z3 q* y! m' i3 u sum ddy240g% A1 ]6 [9 N( ]+ }' N) K
: m0 M% C i" n/ P+ F( h" q gen yxis3=r(min) in 1
w6 {* U" @- _6 R4 d 2 N( k$ E2 s% ]1 M
gen yxis4=0 in 1 E8 Y, H( j% z o' X
6 b$ _8 {# |( ^2 V, r3 V *ddy240g + w$ N- H! A/ d# M) a* V
1 _$ l. S5 g8 r* N7 h! Q: v7 a: v
0 ^4 K! t: i3 z0 W1 R preserve
. K+ k7 N/ Y; M$ z: q+ x
/ [1 P2 X4 c/ g6 X4 Y$ U sum v5 [aw =avol]
' H+ |0 u' d5 W/ r6 L0 N4 S
* @ c6 Q/ J: @) V/ l keep if dx240<r(mean)
3 m5 b0 T% g9 @+ i
4 A3 \9 P9 U% K sum ddy240
' @( A* |) G- G: @ " J3 O2 C/ M; R7 t, K% j
if r(min)<0 {
* ~2 `% x, x( B( v/ S
, u Z/ s( B2 \4 t U3 Q keep if ddy240<=0
8 i' T2 u' u! p3 } / T& \4 o% r% |$ K; }/ |" o6 a
count& e: X i$ G+ P1 ?! O3 z1 ]6 {
/ V. |9 E& i* K) D2 [; Q$ J3 _
if r(N)>2 {+ k6 U& T2 c/ l# c' s7 }) S
' B) I$ l z3 Q' x7 k4 M, F" z pkexamine dx240 dy240* g/ ~6 l( N5 `( h/ K$ r" i
2 Y; |' |4 j9 u$ b* p) S" m local tempminp=r(tomc)
. P8 W2 g# W, j' _ restore X* j5 Q: r! C7 ]
}# I9 X# F' \, x; M5 N' q; A/ K
8 }; c8 I- J, [- c" [" W
else {
$ w& t5 _9 S& l% A; O : b0 }3 q+ }$ z$ H- n9 e
di "cannot find minp"
- \9 D1 S8 }% l) X" N% y; M ( Z$ J( Z& y/ Q" q, B- u& J
restore * G( W' a" I: j+ V
sum dx240
+ o% b" S3 f) T- |. Q local tempminp=r(mean) Y* X# z s- q7 S s! D
, {, a. \0 G7 F. s4 }$ K }' a4 G- a2 a, X1 X& M' I- g
}2 ?# E# q1 q4 p
else {
# a, V/ i& V. A; r4 B
; N* c# ^( x. \4 R& a keep if ddy240<=r(min)) R5 o0 q+ h" F/ b5 S: n6 p+ I
' ~( H. t3 I. y- l sum dx240
" E. L6 B k2 \' v, K; V0 ?
& V9 @# M+ \4 l2 a7 H local tempminp=r(min)
8 S: B6 M e' Z0 d& _. `3 D restore
: D6 U/ x9 y$ ?3 |" S. I }- d$ v9 `1 [0 Y! j6 o
) G; Q6 K* R; n5 ?; C5 ?/ p7 z$ F' V1 w
9 z& N6 | J, {8 | gen minp=`tempminp' in 1
& z' P( _$ z% R9 \) _ *240 minp; F) L1 U# O7 S9 L" M/ g5 r, O# l! n0 f& v
% d( J% P% e) R3 @/ p
0 ?* O! T% e- u* A 0 a- h6 y* G& w0 `* F2 f
preserve ) g- f" W$ d: F6 ~2 t+ z8 c/ {
. j9 n2 x( o8 F
sum v5 [aw =avol]
5 M' ]0 W# M, w: V
# C' L* [. i3 H1 ? keep if dx240>r(mean)
: J1 [5 Y+ {1 e( R& F" U# y+ g+ i3 P 4 D- P: n [5 q! f
sum ddy2403 @! n& l( `; |! t; Q5 e4 i
; i! |" W% ?. a9 M o* H1 y1 m if r(max)>0 {
2 p/ C& s- @& d! U1 t* h ! h+ E. \: s: o* d' ?8 J
keep if ddy240>=08 Q- U: z9 ]( _. p8 {
) g/ r: f, f) L/ G8 X
count
4 z5 k' w+ ?! O; v4 O9 j9 ]5 ~ 3 C- `# |, d5 H2 B
if r(N)>2 {7 s ?. E) Y: ?5 i
# t& g7 t* ^, U# w/ F pkexamine dx240 dy240
9 [8 _5 M! z* T; e ' s/ k- V& t0 D* r0 y) Y; w
local tempmaxp=r(tomc) ; M' D5 Q+ E% M' F6 W/ f
restore ' I0 R, C. y/ p# {$ S; @
}5 K: Q- L0 C) P; h0 ^; ]% h
) p: h/ w' v# r" p; j6 _
1 ]3 y) i* E" i( ^) L/ k7 M% D else {
( O+ e9 q: q$ E- @+ x restore , N/ F* j, \, E% l J7 H7 W
di "cannot find maxp", C0 G# ?% Q* K3 l6 f8 Y
' K4 n' F' `4 P$ ~: ]: l' E. I# G z
# A u/ V$ |" m; z$ q5 ` sum dx2409 N2 S/ D$ e1 N' d5 T
local tempmaxp=r(mean)
: U* w' @* @ j7 `+ W; X6 S& [ V 1 G7 d9 F1 y l. V
}
2 @- K8 k5 Z' d8 \ 8 U* ~: \! l: X" i1 k7 A. v
}
1 o# g7 w* j1 f0 g7 e
/ P& [( L; |! D else {. X2 ~; S4 b# H
0 s$ y9 T9 _& R0 T; K0 c
keep if ddy240>=r(max)$ Z7 m% M3 E6 V7 K* D. q
0 ~! D9 P g0 g sum dx240
) c6 d/ p+ S3 i% v6 h+ s4 ~
* d, g2 }8 c: X6 M& Z8 c) ~5 {6 c local tempmaxp=r(max)
0 z- Q7 |2 w7 r" j. r restore
! O4 ^- Z9 W: r+ Y }) Y* H3 X1 X) y" ]5 E7 N- d
: x: N, G" i! C1 t' {
" t6 W5 L3 v9 v
. h( H! b3 y0 ?9 {* A/ Q2 ]8 G
0 H( `# v( b+ j
gen maxp=`tempmaxp' in 1' }0 W+ N0 Q7 ~( Y- t* u7 P
: O c* S6 N; a2 \: a( C* B *240maxp* k0 y i- O4 M1 t/ A+ K0 S! c# n
$ R) V* R5 o5 W6 t3 p4 S- x$ b
0 e5 p D5 L+ B4 f& d *-------------ddy240pminp左侧高峰值-----. F" n, z# ?( K+ K' C; M2 K) y
9 v5 _4 P( w( g* `
preserve $ E4 y/ s7 s* a$ b9 x% c, o
6 I2 J2 l- r$ q' r! I) p keep if dx240<`tempminp'
# h. k1 ^* _6 v) \/ F 9 ]2 R" U) D6 R' K+ C
keep if ddy240>0
' i) L2 v8 y7 n) ?- v , Z( F; w5 D0 q
count' I5 K; B! N( P% @6 c7 r
8 I, `/ h; z% o+ F5 T if r(N)>2 {
4 e: u3 J m( r- ?/ w v b# V
0 C; h! o. J' N) n$ L pkexamine dx240 ddy2407 g D" A' q7 V0 t1 N- X
# J/ O& ^, H) ?2 c- C local tempminphddy240=r(tomc) ) N2 j! n- f' u; ?$ W4 @
restore
# C! n4 x" u0 [) H& X' E }
& N: E: _& c! F/ [" k2 G1 H
: F. ~# O/ j, z, X9 C, ]4 t) z( { else {
5 k) N5 \3 T3 S0 m restore
6 S6 Y# z- V* A' W M5 { di "cannot find pminphddy240"# I* U* K& d* b7 v8 ?% O- q7 C" I' d1 C
# u$ T' u% S& x) m" B7 X& i+ ~
9 L/ D1 \3 u9 w5 b- c6 F" F sum dx240$ [, c4 R+ @* |) n S
local tempminphddy240=r(mean)
( i# x$ l" ]! ^4 e- y : D: U; V% C% q c; }
2 _+ A! P( @7 O8 G9 z8 z3 E! F3 Z6 t: Q0 F
}( @) {; `3 S6 `1 y' r) m0 K% w3 w
8 s* ~: V0 K) Z- E. S. [5 p& s; B# M 3 t; B K! n M
3 W; H g# f* }2 [! h! x 2 e" `8 q$ s, A/ ~) P2 Q+ f
* {$ D0 n# e7 y" i 0 d: C9 K& t$ H# g
gen pminphddy240=`tempminphddy240' in 1+ `' K/ c$ x% t2 U1 V& H5 {8 q
$ y! m$ \' I2 a4 D" _8 w7 f+ L9 i* p
; D5 A5 b8 M2 ^4 W5 K( Z/ Q, B *-------------ddy240pminp右侧低峰值 -----------------
- U0 H# o8 I3 f preserve
5 X3 N: X7 Y+ `. l3 k- G8 I 8 b0 @3 O0 D6 m" ]7 ~3 \& ]
keep if dx240>`tempminp' i" z; t( K5 [* ?
8 ~3 T! Y$ g9 y+ J- T
keep if dx240<`tempmaxp'5 V$ X$ [3 Z' n5 t' B
5 |, W4 ]- V$ s keep if ddy240<0
0 h0 y {0 h Z( {3 v9 Y
+ F. D1 d N0 K8 _( @ gen temddy240=-ddy240
1 E% n. Z9 y$ c5 F1 N( | 3 e$ F2 k5 y5 r" o# J6 m
count1 e8 i0 R, A9 K
+ S( U6 S( X+ [4 x if r(N)>2 {& d8 o2 \- T$ S, D4 C4 O# J$ g
& i& Z# P, `6 P# g% _+ ^3 \ pkexamine dx240 temddy240& l# q6 j5 S+ c4 }" @
2 o# Y% P/ o) g* ^/ F* p
local tempminplddy240=r(tomc)
' H7 R( ~& y% ?2 } restore- T5 B% ^% a7 Q* t
}# r: p8 [0 Q% I( ?) z- w
, A) v/ D3 `% L5 C5 v8 F9 \8 t else {/ Q0 ^5 v+ @) q" W- c9 C
/ x2 V0 N# i) [
di "cannot find pminplddy240"6 O( I. i/ U P9 j. v# P
restore' j" K% l+ }% c% k0 g
6 c) i4 i. a$ x: o: q$ ~( x' }
sum dx2405 ]$ H" X, {* Q6 J! _8 f+ N& A9 L# V
local tempminplddy240=r(mean)
. D: j ~; ^& o% b
$ G+ k- J$ O( A0 _/ ]! h : I U1 G+ c# z2 C/ u
}+ n$ c0 ^( Q2 `* [+ O
6 C5 u3 ` i8 o6 \5 N9 s6 n4 [
/ \6 i& o: l" K$ Z 8 S* O2 [* _0 e# Z/ S' D
6 q, ]8 L+ h: I* D : m7 w8 M8 c2 c
gen pminplddy240=`tempminplddy240' in 1
3 }& ~ U% I l# ]8 s F5 w3 I8 ?5 q9 T0 i6 ?
*-------------ddy240pmaxp左侧高峰值 -------------------
* C- S7 b9 p' ?- d" r, u
/ }* I+ `! k8 g preserve ' ]5 n X! G0 O3 S0 R
$ ~0 s( p/ r* t ^ keep if dx240>`tempminp'
* |* ?$ q; G8 W) S 3 @1 J) u. S& G1 o& u) j1 C
keep if dx240<`tempmaxp'
G* a$ J+ Z1 z# F
+ r, h, S" k* {/ U/ p7 E+ d keep if ddy240>0
6 }, Y( D! [/ v; H* x0 y count: I* o, t( @6 z% J2 p5 K3 E: x/ i
7 l) b- f- j, r& i: y. f3 B if r(N)>2 {
. o% `% f: M4 l: D0 h ( q3 @5 e7 R" I! L! n5 i
pkexamine dx240 ddy2403 K M7 Y8 Y6 X) R
1 c8 @7 Y( P7 ?/ y local tempmaxphddy240=r(tomc)
+ J, C+ u# @; s8 {; v0 `8 I' r8 \! O / ~/ d6 I8 |% f! X
restore* j6 j2 T! M' U6 z
}
2 Y, f- q. t ~) X/ F6 p
- \; r8 L1 z+ I* ^7 o else {: M% D$ e; M4 s% {) t* s! Y/ h
1 E2 @* l0 T. c1 g) m; q
di "cannot find pmaxphddy240"3 r2 x! A4 @% O. B) `
restore
; V# C- Y8 k. O9 G% z& P/ A; j
o4 J# J! Q) T8 U5 ^$ t0 g( _3 l sum dx240( ~8 x( z' a3 C0 V2 V6 z7 z
local tempmaxphddy240=r(mean)
9 J V5 t% y* ~/ f
. D7 z. G1 O# w, f% z 9 r; V+ d7 I2 u0 `: w' h3 P& a
}
$ X) ?% R9 v4 I5 I 9 d" c4 W' v+ x7 S
' o' t$ s- R U/ B( [/ G( U8 S8 t
- F" U/ ?* o! X
p) q4 z i7 ^: k) I6 K% Y) f
' `6 e- ]8 c" z: y( r$ g. l
1 V r ~2 d7 E" z$ N gen pmaxphddy240=`tempmaxphddy240' in 1+ q, h( b$ J) q
0 u) K0 N7 _ E# b6 P4 \: {8 m
* D/ @: H: F7 n
*-------------ddy240pmaxp右侧低峰值 ------------------- N3 n8 _) M0 K5 B! _3 B6 [$ _
2 t( T7 i2 D9 I: `9 o6 i
preserve
" y, A* B. h; j; C+ N3 H2 V
, C6 u4 b% z" ?! n2 d$ ~ keep if dx240>`tempmaxp') N2 Z- L0 s1 T# o: Q6 C
4 T! E9 [8 j8 z' Q! B
gen temddy240=-ddy2405 C$ h6 F3 [" c( S" x
& V ^0 b! P) z. F
keep if temddy240>0
. w$ V }; Y: N+ w: j7 z9 M 7 C3 l; e- @ J. { E
count
( m( o O) w5 {6 W" |% R3 I+ A
. B6 k# N+ z* a2 V1 R- Y% ]7 |! g if r(N)>2 {2 X& J5 b, M# c$ h
+ V! n9 A0 c) Q2 f( W2 e: T9 F1 }
pkexamine dx240 temddy240% Q: b* r+ \2 R6 d( L3 w
/ |3 i- A& I/ G7 C, N5 ]5 b/ x+ [$ l
local tempmaxplddy240=r(tomc) ' e3 I" L& } N
restore
- U" o2 I( t/ S6 y; [6 ~1 J' e }& p* R" C9 H" h
: T- a; P9 u t" W5 y6 G8 H else {2 {$ W7 q. m/ V0 H* `1 d
restore6 `1 e, g: [# q' q% N* @
di "cannot find pmaxlhddy240"
9 ?$ ? m6 y8 D9 [ $ n s: W) J1 v! N% n( ~
7 o+ Y' \" ~. J& f$ j% C5 K sum dx240
) t9 Q4 x z; e9 ? q1 h local tempmaxplddy240=r(mean) in 1! S8 ^" X" U; y4 a5 K+ d
! J1 O+ i. [$ p6 c0 ?1 |; T/ g
) G2 k( [! }- _4 Q
}& K$ U/ F7 x# R0 x8 x% F
1 e+ ?/ M/ M( Q0 v/ @" Q
. H. t% ^, I& ]* i% t8 e9 `: ]
0 N' W1 M4 e% d' F S& B
) {8 \ y: N. l# G% @: ] 4 V" ~0 [. U: n7 c- [+ _* P
4 ?# q6 \8 Z# F! R* R+ B
gen pmaxplddy240=`tempmaxphddy240' in 1
7 ]8 d% B" s/ w" u
1 b5 T7 A3 p* _+ b4 G, q0 _ *-------------------------------------
" z8 k5 Z& ]1 e" m
/ a9 P7 \ S. x! K) P" i) s1 W gen price5d=v5 in 1/20
2 p% M* o$ l7 {3 \7 O' _% y* s 7 }) k1 s) a# O
gen price5yy=_n in 1/20 z1 A1 t( \& J8 f4 l7 ?- |
2 r/ o' `; x7 ]- _8 `1 G gen price5y=price5yy*(dy240max-dy240min)/206 |0 Z8 q6 |& w2 \" b7 P
5 T, U# B, M2 E$ x! b
*price5y &price5d3 w. m7 Z7 q1 C
; z) U3 W7 ^5 b2 Y8 @9 G3 x gen priceny=price5y in 1
! c$ d& ~7 G2 c5 Z
9 p0 h5 T$ I( `; W gen pricen=v5 in 1
7 s* d. s1 W: G N( n. B! J; m% D0 j
) r G V& v. a3 L *priceny &pricen5 w) x2 H( R- t+ g
$ L( q# \* ]! f- ^! k
' T' {1 i5 p( ?7 h1 ^; B4 L
*-------------------------graph------------------6 N2 L$ J9 L- l5 Z+ s% {0 R
# I7 ]& y; K9 l
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)% e! E0 p ^( r: W, ?
( N$ W6 `+ z2 `- h# {4 C* ---------可选项目----------------------# S/ H: s* o. n4 T- p
3 D9 k5 i' ?4 E [( d0 W. Y}
4 A% _6 J4 u! c3 B9 kend
4 Y) b; K9 e W! c1 { |
|