|
|
改了一下,这次运算应该没啥问题了
7 a( P( h: }; t; e: r! @8 l2 f! m& [8 D% X5 I$ I& \
6 z; q' k( {0 H+ |( B/ |5 s# H
capture program drop hello- @6 N' N& T# m, h% K9 J, w" n
# H( i! ?+ j. U4 u1 bprogram hello$ `! K% p. Q, d. L- d4 m# e
8 e8 |1 R r) l' e! a# c# L3 n
quietly {
5 U9 b( |* P6 g( X7 R, d
9 |7 b! g$ n: w& o8 vclear
! `7 f" X$ F: k% t$ w3 C, Z% d6 { x5 ]9 J+ `7 |7 Z
cd e:\finance\stock\20110101\source
$ ]7 _( f: P1 I3 O: Z
7 ?3 @& m- f* X& ?) iinsheet using `1'.txt
; e! A" [) Y: @
4 o4 x& b5 U- C/ F3 W keep if v5>0: H, _2 l; v8 u) V0 R+ P9 V H
/ X7 O8 ]8 g1 z4 I8 g ~ gen vt=_n# I- P& c0 [) S A
/ s& W& e' K3 Z' A+ _6 G7 I" a/ D, G tsset vt1 J6 ?5 h" _% g& J& r6 s* h
' C# c3 ]0 `1 `1 S- P, Z% p
gen zf=D1.v5
/ A {0 f- | [) Q0 @- P5 d, J2 {& a7 |* | ] F
gsort -v1
) {) [9 O. G2 G: U8 j& S( Z' e4 F8 d$ J8 K1 S; \' g3 h: e. h& U
gen avol=v7/v5
$ n: Y; Q7 }. N" X' u3 W
% D w, @# c U& H% {- i keep if avol>08 a& m+ a8 _ d& s% g7 N2 `
3 R& [5 O; v, B' V# @8 } drop vt
{! s0 k( x4 E$ P+ L6 i
4 M' X k) N7 [" A gen vt=_n4 q; u) k" z Q) V$ g; k
2 k$ {5 F& ~7 r. ~5 H tsset vt4 Q7 E# j8 n8 T* E
1 i, U [6 g! V4 v
sum v5 [aw =avol]
* J' _. F d1 ~1 U3 M* Z# O7 x$ F) p; r! m
gen amean=r(mean) in 1: u! {: t. v {; x/ |
' F* ~# _& q2 z. m6 ` * 总加权平均值 amean0 A! T0 D4 V0 T
- c* e. m; F+ ^/ X
8 {+ Z3 E/ m# ?- n1 ^4 E keep in 1/240
" ~+ j' ^2 k* V p7 `) e, |8 [! [* X$ u9 ^
sum v5 [aw =avol]
# h T0 M8 T {& b5 m0 J; j \$ B; m& S/ F% E# h5 D& Q) ^
gen mean240=r(mean) in 1
R, ^/ s/ l2 ?* T8 w0 U5 A
/ i6 s6 \- o% V& B4 e *240加权平均值 mean240
) k0 q% h) J. C+ C3 ~ " s$ R O$ {8 D$ b% \% i
set obs 500 # d+ q `+ D B2 N
2 K) @) R$ ^+ r0 d( i% _: V
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
% p0 X& @5 f, H2 B2 Y
. ~" S3 a3 Y& a' k0 ?5 G2 @ *240 kdensity(dx240 dy240)
: Z$ \2 k* R$ q# O1 c & Y) Y) x/ j/ o: w
sum dy240
" c* {1 V& ]. V3 \ ]
/ @1 l3 Q& u% W! G9 J# }/ w gen yxis=r(max) in 1$ b- W' H3 S P; [+ ]
. [ q, y9 M* t: z* o( _+ L gen yxis2=yxis/2' r% \" ^. ^' J4 g4 [* b+ i+ Z
0 ^7 Q: T, M4 K: E% L J+ |! a/ Y *yxis8 L5 W* Z# z/ P) S9 t: e# {: B
$ M% j0 [1 C, B. @ gen dy240max=r(max)
& g0 J0 o7 X5 U U' ]9 W + g# F9 Z" B6 m; l
gen dy240minp=r(min)
7 f0 c, a. v: Y0 s% _ " T; C+ d3 E2 Q5 u' [
gen vtt=_n
! Q/ E4 |# x5 y1 J# R9 U. d: D1 ?6 U
tsset vtt) ]2 `" L' b2 L4 Q, j
- p `* A6 F. c0 D% n
gen ddy240=D1.dy240/D1.dx240; X0 d* j# O% ?4 G# P# W
) d+ y( U3 G! l% J
sum ddy240
6 D% J7 Q, F e7 {: f, B* G
5 |% K) F/ Y8 |% i' u gen ddy240max=r(max)4 H* z- Z! z$ F/ @
/ {' W9 C' B! P7 W gen ddy240min=r(min)
0 D4 T3 h4 I3 ]9 `- Y 2 z& I, v# S6 Z% c5 H: q
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
4 w5 Z- Z! o2 n S' u+ ? 5 u- ?1 F4 L0 L) `8 \* t' P6 g
sum ddy240g
4 p9 V$ o1 s1 {' s * ~9 d" Z/ }' _
gen yxis3=r(min) in 1
7 ?4 Y; R/ R& o+ A* p% D" n
, V% i, s! i9 D# F gen yxis4=0 in 1
8 [$ M$ M t' ]! B) d
& E: Z* ?2 [8 b- _! _5 s% K- S *ddy240g P, x# B/ Q! n6 i; q; d" |
$ u5 L' ]$ c- u+ `' \ 6 W Z2 F" L( x
preserve
# ?% q6 ^+ S6 v( W# b" V" T" n
2 N6 ^3 l, e- i sum v5 [aw =avol]2 g0 |& f( N6 z! c% `
& j# U+ \% A9 t% L9 O* v9 G
keep if dx240<r(mean)
; U+ x( P) _7 x) y: z' x9 Z/ |
# I' {& B- z- g* q sum ddy2402 ]( `% t( \" A/ }) _/ L7 V
2 m1 _. j% L: `- z8 T" j7 P, f if r(min)<0 {% `- ]0 P( F# J6 {
" k1 E$ G) a# F" @, F1 l* U keep if ddy240<=0
w" U1 N5 a. f& U* h B1 e8 h. r' M0 `+ ]2 a
count
% P \: g7 {3 p, [1 X8 I 2 \9 i5 `8 {4 A n9 w5 U
if r(N)>2 {' B2 |: L5 X$ G; v |
5 ~0 h6 Q3 v1 |; B7 I pkexamine dx240 dy240
4 I- E- \" d+ z
* u! Y9 T4 J) ~. i% G local tempminp=r(tomc)8 u3 \& Q ?- W# R
restore
5 F; ?% S7 S3 Z! Z& ~5 i+ z }
+ O) E2 D% E# r5 U
* d) \$ @. B+ w/ j. X$ h: t; z2 X% R else {% j* m7 V- W! R
, x' g, L. i, Q1 W2 K
di "cannot find minp"7 D; R/ G2 t8 ?9 w C
! b7 C" @- c% ^8 C' H @2 j9 C' ^
restore / ^" ~! |5 T" g5 z i* c) n
sum dx240# v: t W8 K: g9 n, B4 f, `; u- k5 H0 J
local tempminp=r(mean)
2 t, v5 l8 J# w+ _$ _ O- U
2 L7 r8 x1 Q9 v s }. m% N" j, ^; f' c+ r
}7 g$ J6 c( Q& c z; x
else {% D9 E( t; [, c2 z; X( I
6 S: \( Z$ I u7 X, \ E" T. a keep if ddy240<=r(min)
8 P$ x1 I' @ ]
7 J* I0 B+ g) e6 o sum dx240/ W* E2 P8 [4 |+ P* Y: O
, E0 U; o5 r& U7 k d
local tempminp=r(min)
% v# K4 e4 _0 l9 F( U restore
1 R7 c: n3 ^5 w* u0 { }
7 s D* \) S( g/ C9 |
, Z1 v3 R) d3 D% \" }
: r0 D; }) A1 b4 e# z6 }
7 _8 _, n- V& M# V" F5 W gen minp=`tempminp' in 19 ?+ B4 o# b, `/ \! @/ u2 W H
*240 minp" T6 L, Q6 P3 ~) t' U& I! L( K1 X" J# W
6 k( Q' q J" I# k I! ~+ e/ s5 M
" S* ~7 e+ P! \6 |' I7 K . U+ N' }: \) j; p
preserve
9 m s" \. ^& g7 ?1 A9 h$ ]& y
! X& R: I$ X4 K! g6 Q+ V7 p( U# O# k sum v5 [aw =avol]
3 x3 g/ M9 R1 U8 ?) b5 @# O
# Q: g: `, K2 D w2 C; K1 b/ k7 _ keep if dx240>r(mean)
% h0 S6 d; ~3 B. w; p- h ! I0 [7 o& \9 O' \" _8 x6 T7 V
sum ddy240 ~! H0 P5 {+ j
3 z9 Q1 s8 g( f9 Q( Z if r(max)>0 {
) R- ~; D0 W+ b* s* w % z2 z- X, O2 D; o* K# f& o
keep if ddy240>=0) m5 K1 V: w n8 o
% X6 l* T" i) _- L4 U count
7 j+ T$ Q0 b& O2 B& u
0 c3 {2 Q5 F9 ^8 J* ^: Z8 f3 C if r(N)>2 {
. E! T0 F. K) G - e) |7 Z% Q5 C1 b5 n
pkexamine dx240 dy240
" _2 q& d/ u! @6 ^& a' M- U% ?7 { 4 D9 K G U5 \+ `" X3 b- f x
local tempmaxp=r(tomc) " y+ S; g3 _2 h. [ ^% m( V' W1 r
restore
9 T6 T- i ]& b9 Q! O4 @ }. g+ M, z* a7 y7 d
: ~8 o1 z* y! Q! h) x- _
4 L% |# g& j! B6 w* V/ ]! o
else {
$ Q/ k7 p, I0 }+ a4 H5 d2 | restore
* F0 `" l' ^; f- r/ i di "cannot find maxp", w& b- w s' k! t" i9 O0 y
1 V0 ~* r/ M+ _' k6 {
, U* X: H' @+ F( q
sum dx240
. S6 ]6 N- ~" B8 t- J" _( @ local tempmaxp=r(mean) m: q, J8 e8 [
5 y' a, ?/ W2 d# t# }5 E& v
}
" M$ ~6 A ~/ _* ^6 e! P, I
% u- _* N. l2 z3 |; S1 ]4 ]5 H+ z }
. h3 A5 R' W9 X0 L$ U. N9 J; p6 t N S( v2 d4 c: b8 }$ f
else {
# s2 V8 p& z, _ / [) P0 s7 `" A9 B
keep if ddy240>=r(max) o4 w+ R1 g& a; ~
$ t$ B; C6 p# `! Y sum dx240
2 S7 I$ R3 {% X' n. J5 d
: P: m; V; E3 F local tempmaxp=r(max) & V0 B. C! Y$ Z0 ?
restore
/ u7 n4 o5 s8 J4 W }
. \+ a+ ^; }1 U$ m$ R X, q5 A- z* J + z0 l/ P2 m2 ^* z4 i
/ s5 E# w" }1 p: B) L. c/ }# r
; a' L9 {+ H9 G+ R
5 d7 ?4 @# n' Y) w3 ` B9 |4 } gen maxp=`tempmaxp' in 1
3 y6 [/ e( v' M( V: s" h 2 B3 d- Z% A4 g
*240maxp: a# x8 ^3 }# n* v L
8 b( A% L& |9 g/ S* E4 k5 e" A$ } 1 q' Z1 h k1 ?8 t& p1 U
*-------------ddy240pminp左侧高峰值-----8 t5 Q/ V- V6 w% C
1 G0 _, s! e Q( k5 l
preserve
2 ?$ |# |; P4 G+ L. m7 m
5 `! y, t G# \$ v9 U% E keep if dx240<`tempminp'
: P/ Q$ U/ D1 H* W7 R- h1 Q/ K4 L
3 h( n3 N U4 m& O keep if ddy240>0& c/ r! Z2 H! R3 I' {
. f4 h7 _& {; I. d
count
: ?* F7 s* x; F5 {, p- U) N
5 |; C$ j" M# J: L+ o6 R if r(N)>2 {
% L6 b8 I+ b1 n6 _& } 3 I! T: O v! W1 M! J
pkexamine dx240 ddy2403 B8 A$ G$ X) j# f" J( Z
3 j) O+ V3 h( }! b0 l, s' X0 U/ g
local tempminphddy240=r(tomc)
# S2 a. q8 k) l restore* @* p! {" D: ]' ~$ }
}- C, O% A2 d' B0 r7 s
0 B+ s7 U" X: Y; w/ ]& f6 t else {
5 m$ `, ], T$ Q* } h restore
5 G5 p: ^* t* {" E5 L6 ]8 _5 j di "cannot find pminphddy240" g' Y( l3 T% h2 ~) M
0 X" u% K( e" w0 m; `" B
- o: K: X. ?- ~6 @ sum dx240
+ t- G9 z6 \. a k local tempminphddy240=r(mean)
0 U8 o' _; B- f z9 [ & L. k7 N/ x0 O. A
) |0 B/ ?2 Z" D) x8 F7 S# r/ M4 p }+ J% Q& w3 ]+ m9 G4 s; z
" C0 h' [) R7 |0 V
0 c+ _% R9 O& W5 r b$ B, r
3 f, Q( A; [6 W( ? + Z- J+ n( ^! k9 [ {; w
8 ?4 V' [+ h \# N( O) l f
! p4 x9 P* ]& f( v/ k& T gen pminphddy240=`tempminphddy240' in 1
* X2 a# t4 H+ g % R7 p5 v0 H2 u8 H, S% v5 c% e
+ U$ ^2 B7 ]8 t3 g1 M7 ~
*-------------ddy240pminp右侧低峰值 -----------------
2 e! {6 x# c+ C7 {7 S7 G' @! t preserve
0 i0 P! g& }0 d T7 |' ]; u* `$ l / U( M3 a; P+ B( t. D
keep if dx240>`tempminp'5 H4 `/ `/ r0 k( }, \/ ^
0 g( P( g0 ]$ g9 V3 C$ C
keep if dx240<`tempmaxp'1 }5 ?+ u3 P" z9 g. _# T$ K! |1 s
0 u, s' |2 @2 E0 ?! w0 F
keep if ddy240<0' o1 {5 E( t- z: ?+ {
8 g; t7 A" H) a8 p
gen temddy240=-ddy240* S8 ~+ b; e+ Q6 K" Z9 i7 J$ S
6 Z& ]" `: k* T3 p8 n1 m' g t+ s
count% D4 Y$ B/ @9 E- c* Z5 y
" u# o" R& E! k; n; {4 m u k if r(N)>2 {
1 p' ^! ^3 N% W6 @7 x
0 E) u; H# z" j" T9 ^6 h# e1 a9 u pkexamine dx240 temddy240
) C$ X) Q& |1 p; [# v# L. ?! I
9 _! n: q6 X* t% s+ ^ local tempminplddy240=r(tomc)6 [4 ~+ @" k! n5 v; w1 o7 s% Y
restore8 G3 j! C2 K; D1 y5 a) h) @
}: `; b, F' Y( b! Y2 W; A" _
; P2 M* j/ U7 |1 ?4 H4 ]* ` else {
# X- } u' {! o" I 5 g. j1 J- L0 x% j
di "cannot find pminplddy240"& x7 a$ S' J" r9 l+ u3 x# `& q) O! k
restore
# K* y8 A% {5 ]5 N! n2 k+ ?
( ^) S1 @( h- Q* ~8 f/ V* O# T sum dx2401 e6 q0 B, I0 T( c q9 ~! p
local tempminplddy240=r(mean)
/ l5 ^% A) }7 l( N7 ^
( F9 d7 H, ?% c9 {
* g" f' P8 l+ H& V }) s9 S3 q! L/ R3 l# {- N
2 ?+ z4 z6 Y2 t6 a
/ X1 }" K6 W0 T" y( \, j( ? ; L# r2 S! p% V" s' w
k! s' l; R- O+ x5 f6 n
: d ^! z0 W- D; l* @ gen pminplddy240=`tempminplddy240' in 1
- `5 l* j9 h' N1 E% {
+ e& S1 F) }' S" I/ M *-------------ddy240pmaxp左侧高峰值 -------------------0 R; m6 ]% @" y8 {8 r
+ N8 A3 \- S1 P5 x1 {) d7 c( V
preserve
: X0 Y: ] I* j
* y b! P. W! n, v5 P keep if dx240>`tempminp'
8 V) A% Y3 ?1 w$ i( ^
- {) H1 a) {% x9 r( V keep if dx240<`tempmaxp'
2 c3 X' }0 D' g4 I. c . P3 W3 Y6 I( X- D' V
keep if ddy240>0- I& s3 T0 o9 s. v% y$ l% n
count
% T7 z+ J% L! W- s2 c# w. ] 2 p/ \( {+ r; K" Y% h% x2 v
if r(N)>2 {* X+ h' @* r: u$ P+ I
+ g/ p2 V& l8 u
pkexamine dx240 ddy240
4 j( _: ~. l/ ?! t
! C$ O* p' u4 r- k local tempmaxphddy240=r(tomc) 2 s) |7 L6 z. i
; |5 M* |; V) Z restore/ X; u- u6 L9 [- S0 R( z& L
}
6 q( a. |( G& ^( H; l9 b
) v. Q1 p# d1 ] else {( A+ C( v7 F* G0 G# X
( H, t* l4 c5 U' _- K
di "cannot find pmaxphddy240"' k6 B |0 x5 A+ m1 y' v$ E
restore6 S( l) o' n# [5 I, V
9 |! ]( W ]0 _3 q* K sum dx240' ~9 x a( }* T3 r Z# } K3 p
local tempmaxphddy240=r(mean)
. t; C# w! a0 U. L5 j0 Q
, S$ a* T# D7 j! W1 U 9 f; M+ [ ^, @. h5 A7 K' E0 r9 d
}3 m' O/ X+ _3 q' L3 I. |1 j$ w: Y# i
4 \) E4 u" g5 f5 P# g% C& T' S; v: u
/ l4 g5 S+ T. t1 ]9 ^ 8 Y2 m- I6 I1 p+ ^3 N8 a4 s5 z. s
- d/ I6 N" w) f
8 \( P( K) i6 J$ v
m6 k# U4 P3 O- a% y, w gen pmaxphddy240=`tempmaxphddy240' in 1, z0 J7 q% T2 B% q: G' S: p; a' v, \
?% l$ a/ o) N- C" x$ l
, A; P2 v/ s! {+ ^. D2 p$ o' F
*-------------ddy240pmaxp右侧低峰值 -------------------
+ P$ F6 P$ V5 f% G Y* i 7 \3 U& _3 T9 ^; e- ]& W a0 c( |
preserve
2 r: Z1 J$ _3 g/ x, v . Y; l" c& _% f
keep if dx240>`tempmaxp'
* Y- y2 _% N O$ v1 {2 k9 x8 R2 n
- J) }7 P4 B* X# n! V0 I4 D5 X/ Z3 I0 N gen temddy240=-ddy240; u9 u+ O* X8 C+ S/ T0 j
* c' f1 j! h3 Y& W8 c1 j8 p keep if temddy240>0
! y! N) C# ?( \& {( m, j; w, z2 G
5 w _) N& t1 q& T count5 R8 A8 |5 S( U7 \ p4 c! ^3 I! t: C
+ ~9 k9 O- M i) q: Z5 R
if r(N)>2 {, x9 C. m9 ]8 Y/ y) f9 H
. k, ]& V7 c, k% l2 R% ^1 Z, i
pkexamine dx240 temddy2404 e# N; Z4 G5 u, Z
4 I- h$ n7 B! r f local tempmaxplddy240=r(tomc)
2 J( Q1 ~' U, U restore3 `4 ~! K; R0 T' M
}
$ e& `& i2 E( g/ j; @" c
5 X$ n# O5 A. h# k3 J( t y else {
) y& S6 c, n2 g restore
6 b& a( {* w! _/ C di "cannot find pmaxlhddy240"
& R& d% T5 ^1 }: X. b+ \/ U1 d 6 k0 u0 p) P, a3 `; U2 v* L% b
; s7 H. a7 V* v. I! S2 W
sum dx240! ~8 R/ s, f. K t: }' _! P
local tempmaxplddy240=r(mean) in 1
& I {) R: ]9 I" Z; w# b/ d ( [2 ]/ T3 @) m( r4 ?
9 K5 U, |. E0 o; W; \2 T }
. [8 r- ?4 n2 R) i5 y, }% Q
% o8 L) \# W0 Q& N
r- k. J5 C1 A8 n. r ) [: ~( [5 s! P4 e# ^
' M; R0 i& h; _$ U
) P; ]( r# h2 `* X4 B$ |. T
/ r# u) _! t( z$ |1 H9 L0 d gen pmaxplddy240=`tempmaxphddy240' in 1
5 s5 v4 C+ U# n. O3 } . S" @. ]1 g4 `0 N8 B, a3 C+ }
*-------------------------------------3 H' h: Q6 ^( M$ Z" F9 ~
& _# d3 n! M! S& H; V( K- Y/ l gen price5d=v5 in 1/20
6 L+ G# r1 S b. H" l7 V" u+ o
- _* p1 ?; M9 _6 f1 L% j4 V gen price5yy=_n in 1/20
! Q2 Q; i* P: W 9 o$ B, z4 p- E1 @
gen price5y=price5yy*(dy240max-dy240min)/20
8 v0 @# a3 ~: }7 K/ N
" z4 u* [. F- P *price5y &price5d& ^( f6 K+ \8 B, V
) M6 c" [4 o, c4 \ v
gen priceny=price5y in 1! s z7 A) C3 }+ H2 W0 z
* K4 F% C+ B* F6 E; i* y gen pricen=v5 in 1" E! j( h. Z5 a
2 A+ A* [5 p; H+ \9 _
& T/ m9 t# \+ Y5 Y, g" Z0 C *priceny &pricen/ n! ?, P8 ^2 b" ?* c
( ?0 {2 Z9 f$ O( m/ ^4 C : b0 n! c$ j7 Q$ T R4 u7 m2 K1 q
*-------------------------graph------------------; s! e) l9 p( c3 E: ~0 W
) v. ~9 T% g0 P5 E& B; v2 Q* c% U
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): ?1 E6 K! L) W U
! ^" U! L2 b2 N% o3 ^* ---------可选项目----------------------
( o8 S! p0 d3 O, e/ a6 K+ q
0 k6 O% h2 }0 Q! w% G+ B4 n' A}
; j2 [5 z+ f7 oend
0 }; }; ^1 c9 ^ |
|