|
|
改了一下,这次运算应该没啥问题了 d9 s- ?! M9 c$ X# B$ z6 S3 J' V
9 ]+ G* h% ]6 o$ [6 E" Q2 `. U8 |1 p2 o3 I4 _! P5 t; m3 K, G
capture program drop hello g) F0 u7 B9 u9 v: @, A
/ J0 Y0 |! ?' A$ W" @6 t% J* dprogram hello/ |+ T1 H/ u+ O, m3 g
8 U" n, U( {8 |' s, Q" |2 W quietly {* b8 Q2 C9 n! t7 N- \" J
& N4 @3 V3 B m0 M- p: Cclear7 P9 t& `" p8 I
" _ x5 R. K* B" W" T
cd e:\finance\stock\20110101\source: c7 p! U' I) m6 E7 p3 D
! E1 \7 }5 M. Z' o& o
insheet using `1'.txt
5 c3 [" z1 R5 w x7 L5 b) n l3 |# F+ I, ^, `, b
keep if v5>08 o) Z9 h V/ u. I6 m
) C+ R3 X( H; k9 t gen vt=_n$ B0 f% K/ T. w
5 \2 c+ C- o& d+ t
tsset vt
0 a; n- O- v$ m: ^' C3 ]! [, h% Q
gen zf=D1.v5
7 W+ ~/ x: Z: h. R, {( X" u- J0 i9 B- d2 }5 W
gsort -v1
' W o8 N8 X( ]0 p/ a2 V5 G
+ @/ t: \- r- C2 i$ x; Y6 z gen avol=v7/v5# w7 L5 _( z: s
: h. L3 ~9 ^" h4 S9 p# }# }4 D
keep if avol>0
% w4 V, v0 Y. G7 c
; i4 Q0 D) J% v9 p; ^, M. A drop vt% C3 l" E5 E3 X, _5 ^5 ^
* t( T6 D* N- Q9 z% f9 f# X gen vt=_n
' I6 o$ B* D5 Z; S1 H8 B
% ^0 [- O( q. Q( M0 p' w tsset vt5 H& C3 T3 U. n
o5 `+ N0 h5 d3 q sum v5 [aw =avol]
4 v9 ]7 N# `* \0 _/ h- s. }) T
3 ?; e% g5 X9 m, K9 Z4 ]* z6 O6 { gen amean=r(mean) in 1
M y0 I+ K4 m6 u % F! z5 p; X# e
* 总加权平均值 amean' F- F3 k' ^0 k2 h( c
+ M7 I. @1 b- F8 O0 y 7 B, C2 \& }3 X4 y$ z5 Z/ h& V
keep in 1/2400 f* m: t9 o& }& p, d
1 p% `4 W( c" v) Z2 H4 ~. ?
sum v5 [aw =avol]
3 @" c' h9 V! }! h, ^- t! x3 f' G1 S' ]- j, |& {$ C
gen mean240=r(mean) in 1
% O4 m7 k$ v$ m9 J
$ I/ A- l5 B c8 v+ l *240加权平均值 mean240) t/ V7 @% E* \ M
1 K) ? C" D9 X$ U) O; n) V
set obs 500 0 g; x; O6 `- ~* y/ i: o( b$ r
; n, g0 y# l1 @! t kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph% J/ {/ I8 z3 c) P( g7 @3 W) ]* W' j
' A% ]7 y! p0 s5 ^0 l$ e0 v2 x5 _
*240 kdensity(dx240 dy240)
0 \) R7 g2 L1 W% G & @1 X+ c2 p& _3 Y. z) Y4 l2 a
sum dy240
, [5 I1 Z$ A* z6 k) X% z" w
+ j7 n% w# I1 H0 i: R0 { gen yxis=r(max) in 1
5 y% _- |2 ]: d' L
3 f! E8 j5 W/ W5 m' B3 K O gen yxis2=yxis/22 a: U+ J# F0 y
9 T: p2 w* l4 S& V' D7 B' J *yxis3 k3 A: t& ?( W' t0 F8 K4 W
/ _3 }% y2 m* x A
gen dy240max=r(max) h3 k0 H3 I5 Y Z
( P- U- W" d* b% t' I, S& m
gen dy240minp=r(min)! d- W, Z, h$ V( J) T1 w; @
$ Y) e; b0 D' S6 Y Q. u gen vtt=_n
. J$ ]2 D/ x4 X, U( f, c6 p8 z1 ^: E4 d, e# J- R2 L5 a
tsset vtt" D$ p% i. W8 `' x; X: k! ~. t& u3 i
$ H+ L4 f( A+ S
gen ddy240=D1.dy240/D1.dx240
7 Z" R/ g$ f" n) U0 O
* ?& q" j; G5 ~8 H/ w sum ddy240
M7 I8 E2 j3 s- x
, U: ~/ i8 J) X2 p9 V% O gen ddy240max=r(max)
$ R5 V% s3 A& Y# ]5 f- R k " j& a! o0 J: o0 P
gen ddy240min=r(min)
5 M; I" M9 i: C# m3 w3 d: O * V; n7 K6 U7 N5 m& d( w0 F! ^" s* u
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)& n! d+ C. H7 @/ Z9 w% M1 `/ D
: w1 v3 B+ E# N1 |8 K+ ]2 ]! Q. u# k sum ddy240g
( `8 p/ A) q$ d1 w) ]
0 |( [9 S! N: Z6 D( u gen yxis3=r(min) in 1
) I" @7 p; S% I ' J+ D: W, ]7 _: k% o* ^2 x
gen yxis4=0 in 1
f3 i2 A2 C5 y: l$ x: B) Q0 W# p
4 }6 q5 n$ q- r5 u! q0 \8 D2 ^ *ddy240g
4 D6 G6 d' s) ?: p- Q3 @1 B1 R, v& @ 1 i- E/ ]1 u) @6 O3 g
- E( [8 E5 D! n5 w8 z% P preserve
% @# { m! F4 P$ x & B. P; m# Y4 R) Y0 K
sum v5 [aw =avol]) W1 U6 h/ P- H
* \' I( Y0 b H2 @
keep if dx240<r(mean)/ c8 f0 n9 B; A$ `
% M! j4 L2 h4 _; G6 J% b | sum ddy240) Y, F) O$ B* g
; _: v6 C" c- n9 T1 ]7 F6 b; S if r(min)<0 {
2 ?8 C/ g x) |. A
5 ^# F1 \1 n: K/ a7 y. o" ^ keep if ddy240<=0
' t$ f8 y) v( g; g" o, F$ p! n2 P ) [8 x. d8 x0 m& t
count
( ]2 ?) Z. m$ Q9 b P8 M, G) K3 h0 l
if r(N)>2 {
# U9 f6 v- i3 |. N4 X3 W
. z. r" h( O/ f4 n+ m0 j! M pkexamine dx240 dy240' w* k' g" m' p# K
# g/ ?4 N+ r2 |5 r* x: g8 h
local tempminp=r(tomc)
' O6 {) B5 i) D0 G) B5 g9 U& q restore
* M7 `- r+ _3 o- h+ ` }
1 s- H+ X( W9 s1 U7 p
1 X1 @: m) u% X4 m8 B4 F8 l else {* C3 B* U8 w3 m6 h4 n
% P+ T" _4 s' E) _% u8 R0 ? di "cannot find minp"$ A8 F) H9 Y$ K, [1 V2 N3 ^: X
8 a! w; r, a# L- O+ |( \
restore
0 y# v8 s+ M" l# B$ P sum dx240, r2 h$ ]; W5 u
local tempminp=r(mean)% I$ h2 d$ C$ m, D7 x( s8 z
7 c* q' Z2 u3 |' E3 j
}
# z' b8 ]3 U2 M! q" d }# y% `9 h9 H" H3 I2 o4 C' _
else {
( x; k- q+ ]2 x# e/ m
1 } n2 J) J. I keep if ddy240<=r(min)
( _! D# P! l7 H; x3 j : l4 _- r' R. q+ d- J- `- w0 n t8 L
sum dx240 n6 ~, ]* i h, h. n% ]
. G" v5 p! S9 H1 l4 s6 o. t
local tempminp=r(min)
% _5 P5 ~( W5 k2 Y+ R x. k$ w+ i restore # {' N/ i; i8 _0 R+ e+ G, p
}
% c, {4 p1 U4 }3 u) L
7 f# \& P7 n+ C. E
: I$ t' {- z0 H# v& E8 g: a j/ r- J
gen minp=`tempminp' in 1
2 w& i' S g( n( B E/ g& r *240 minp
, ~- @+ J; C \; n) Q4 f% b
D0 r; n" [6 d& E1 ? g& X1 Q1 V: w" t% ]* B
" D8 P% x8 N+ f0 X* k1 c, I" V preserve
$ V. ~% s! d' i: Q
. [0 H9 P" s0 Y8 r( @) t sum v5 [aw =avol]
: G- R7 w5 A' J, ~0 h3 r& E5 Q; o
8 W/ W, _" _! G8 X f5 e8 w( V: h7 F keep if dx240>r(mean)& Q/ }7 A: M" B* A R
1 V" Z6 a' C$ C7 O# _$ ~ sum ddy2402 S2 q' M/ Q& x$ v+ A l) b
* B! n7 p+ t+ [! p: b9 ^ if r(max)>0 {3 j# Z+ E. P! j+ y5 k* _
3 j0 ~4 A2 x$ k( Z8 G
keep if ddy240>=0
. ?/ l- B2 x" [4 u 6 j- N2 x$ V& ]* w5 n. t+ E
count
: G8 q4 ^, x2 T5 w* }" [( G9 k : e; I1 |) o0 @
if r(N)>2 {
! u! k0 r1 h: G' v5 ]
$ q1 H$ m8 L2 q" F( g% X3 h pkexamine dx240 dy2402 O4 p; N' ~$ R4 Z( r
8 p- I* e+ D* E/ x
local tempmaxp=r(tomc) 4 I! A7 U3 t B1 Q" @
restore
( ]" U$ r- C4 f- i; s* T }
6 c$ S7 k0 C+ H ; w# d4 n$ z' ?5 \$ R0 }8 y
: \$ o9 {4 y( C' _& o, h: W# j: @) g else {& C w' O K8 V u) ^' V8 N
restore 2 u, \. t6 `6 }8 I' H, V
di "cannot find maxp"7 L) {. N% |" L
* Z; B; o# }$ `5 `
% u8 J1 q7 M) P0 J: h6 j! t: R! T sum dx240
4 H6 e2 M8 B' i# {5 \( r local tempmaxp=r(mean)
' Q" |0 Q/ s& n+ ?6 ?5 S1 k/ I , c X ^' h: m; D. j
} F7 c9 n% P& o& K! ]+ }
8 |/ Z) D, s8 Z P+ k
}
# A# `6 @+ T# t+ K/ c& e ; N" `/ i" V: _. D/ Z
else {
8 V) J4 i7 e& U3 o r
4 {( ]+ c* s- A$ J) v keep if ddy240>=r(max)7 A% Q4 w7 w7 u) I# p0 W1 b
- v0 H& p# p+ D9 Q5 E0 s sum dx2405 w/ m2 [% m' p9 K a
* [! u5 [# U# G
local tempmaxp=r(max) # p$ }6 p3 }3 E
restore % Q5 H) M5 E' |9 P: H [8 V
}7 g! W( v& j" ]% S0 I& l8 y X3 {
# x ^3 |$ `8 o+ ^7 D8 n* d; G
' U, \8 \1 @) i# G3 _6 d ) m, l4 _# j1 J. S
- }, I, F; ^+ |: _8 l8 A2 P
gen maxp=`tempmaxp' in 1
1 s0 O/ G; b/ y
8 h$ R& j$ c, e6 k6 Z/ \$ | *240maxp
% H' s; h9 A- Y6 y& ~ J8 m3 T1 T C# n, p D L; O0 F4 h6 T4 j
$ H$ r6 W+ G! ?3 C# [: l6 |- g9 i
*-------------ddy240pminp左侧高峰值-----
7 C- X$ `- ]" x. A) T9 ]2 Z" L 0 Q* L% T3 L( \% {' R. w
preserve K8 Q/ R) {, Y
5 z' b" g5 A7 @' u keep if dx240<`tempminp'
+ ?/ z1 d) T+ ]. T" ~) _
8 ^8 o3 b: o1 x& O5 w! } p keep if ddy240>0
. {" E4 R/ |; D: X 0 o$ t7 ^' X4 O; D C8 c/ A$ b
count
u) w8 v6 B& Z3 b
% f7 B# A7 C* U if r(N)>2 {
$ U# }5 j& ~9 k: s0 i, b- I g8 B$ p7 O0 w0 G6 V0 P
pkexamine dx240 ddy240+ ?0 Q+ V& X y" n5 F T0 |
, }6 m3 o g% J& M4 ~ local tempminphddy240=r(tomc)
4 t4 }1 S- {( w/ X$ w. i restore
# A+ D8 A0 a5 H' T }; S- m" M/ r9 F2 u' o. a7 Y
! ?+ Z3 J% H$ U" X4 h' e p& C
else {
8 w! F) f |- f+ |- {! u# B restore ( L% K5 ^1 A& y, t4 X6 m
di "cannot find pminphddy240"+ J9 K! F/ m' w1 V0 P( E. `
$ x2 F) Y6 m5 u( J6 n$ l6 j6 h
6 S) X% ^0 s5 O V( c7 e2 H sum dx240
5 ^, }9 |' _/ e* l! w b; Q2 x0 Z local tempminphddy240=r(mean) ; M6 G7 o8 e( ~
) _9 B9 k. w1 }& q3 c
7 Y% S, s0 t' \, Y( q. c
}$ X) B) V$ g# n" Y3 P" q
' ~! W6 u J+ o1 P0 j6 m
8 z6 @9 X% C0 Y* b
% w( i8 m m; I% V, \2 ?& n, t
' d! g9 q# B- `6 s3 H
" P$ s0 M) d5 w* q/ _ ) e: G- ?7 J0 v, P4 f
gen pminphddy240=`tempminphddy240' in 1
! ^" k1 \4 G% C! h
1 d% L; M; y4 ?" Q1 p' r , @6 N4 o! y V
*-------------ddy240pminp右侧低峰值 -----------------: l7 u7 p+ S$ \' K+ E
preserve 3 Q1 r6 [" F( P3 z' q2 ?( }
q% p' d/ [# a: H keep if dx240>`tempminp'
% x9 {. B# [& T9 Z; Y7 V% I7 O9 L : L/ G# }: T/ w& Y* c0 B1 ]
keep if dx240<`tempmaxp'
0 x) s1 [# s$ h7 @! X
5 [) s- e7 }% P6 {' E- ]3 M2 @ keep if ddy240<0
& X; b1 W( u8 `- I+ g& k7 p5 q, U
) K) m* l/ i1 \& r gen temddy240=-ddy240
+ E( r- a) q( h" {( W! p $ B t7 w! B1 k' S2 g+ Y* @/ F
count
4 G: Z; k! E |7 V7 Z
! m5 Y* ?3 h9 T- X if r(N)>2 {: h) ~1 r7 s) z# p* n
' G! u( Q6 ] O+ l. o( [8 ^6 r pkexamine dx240 temddy240
_; O- A8 g& w% S9 t
0 q7 U9 F2 Q: M+ y. N ` local tempminplddy240=r(tomc)
% y% F- S4 y# |; M e3 X! U7 Q restore4 i3 `3 i" y% \
}
8 C& l# g; m/ S& n5 M) K# v# K 1 U8 \9 m; O9 D
else {
E, N$ p: M" r1 {* K g * U) F1 L! W1 o& T l8 ~
di "cannot find pminplddy240") a2 w' Y4 n+ ~
restore
6 P# l& h( o: D8 B$ b
: G/ S# _$ T, x7 v- X sum dx240
0 } ?8 K Z5 v8 U3 `9 b& h m, [3 G local tempminplddy240=r(mean)9 K5 @% x2 L( Q1 @5 D% o
% \" J; M8 H2 c
9 W4 q: t3 G1 |! f* ^
}5 W9 [3 p* z1 \! m; A$ x
% i! h: C) X* w' L9 ^5 g ! A8 E6 ]$ F! d
( \* t; [' R8 M
3 x- K; \% T; t/ b, l j # d7 f+ Z0 W1 [8 Y4 I1 ^
gen pminplddy240=`tempminplddy240' in 1
/ Y0 {2 u4 Y1 V3 J/ p+ @8 J3 c+ N
3 d" i( T- r* h4 F5 c: g *-------------ddy240pmaxp左侧高峰值 -------------------( T3 h1 i( ?! v' f% }. f) }0 I
( j) Y5 s0 E, h' a Z+ n; l
preserve ( ^5 T, c, z7 ~9 c3 Q4 M
! v; l* y( ^: x" x3 L5 @7 L keep if dx240>`tempminp'. d- l0 C0 w2 R
5 a3 n* \4 X! y) r keep if dx240<`tempmaxp'. t3 B4 k! \# \
( j3 t+ Y' a# Z5 o keep if ddy240>0
) }( |. g D7 M3 n N) Y count6 Y/ ~+ P/ g: o* J! u5 X7 T
" W0 G7 g- l4 R9 z
if r(N)>2 {
! W$ v# v" b# Z4 g& i9 y4 h 3 |1 d5 J8 `! ]/ L4 H. b2 u" u
pkexamine dx240 ddy2401 x. @7 E! w$ l2 v% {+ c K
. t/ `2 j% U: c, B) H
local tempmaxphddy240=r(tomc)
9 F' @! Q3 p% p4 {" U4 g# `" } 7 C* T& R' Y3 {2 P, m" l
restore
5 M6 D* R2 m7 ` }
$ b$ m8 J1 X1 H6 _
9 R" M& x7 t& j: X7 x" r$ I else {/ Y# v% ? N) I% J8 a
2 q3 W/ G" O, V+ K) Z* ^, F; G
di "cannot find pmaxphddy240"$ D3 u- S" m* p1 l" ]
restore
0 p' k1 Z0 {) n+ V Y# [1 h
# c- k% c% a5 g( n: m/ x sum dx240( u4 R% z/ |1 Q! \4 f( {
local tempmaxphddy240=r(mean) * m5 l1 R9 p5 a& p: B
1 O" {4 {5 ^1 Z& E/ K0 i8 q9 B+ I
+ L, |% U( {. ], Y s }
/ ^- U" U1 O3 x( j' p
4 f& O3 l/ ^* v
5 {) U( P/ T n9 U: L' t( S $ @- g ^' }% f* h/ z) e ^
+ ]: ]+ h0 I; q j
3 K* q8 f9 j& R 7 T3 o0 h1 K; o
gen pmaxphddy240=`tempmaxphddy240' in 17 ~- J+ X3 |* t- X% F
0 U2 w, \6 j5 K1 c( _
$ X4 t" Q; O. L. J" @. Q$ S *-------------ddy240pmaxp右侧低峰值 -------------------4 k% r- M: A0 d @3 A
2 z( l: T1 n2 e0 W% N
preserve " W# _. ?+ H) u
3 G' r5 B7 e; O6 T( J; H keep if dx240>`tempmaxp'
4 t/ q& T0 ]3 v" W: |3 T 8 Z% R9 m9 I1 }
gen temddy240=-ddy2408 @+ X; B, G; L8 ?* y3 H
9 c& ^" @* ` v1 `& T% Q) x
keep if temddy240>0
9 @/ ]0 G# ?- T% E1 u( M2 q0 ?; R ( Y2 @ d! ?1 y" d# r. J
count0 Q$ E* t4 K: {# H) A
$ y4 g& r1 b) z6 r3 O* j l" c
if r(N)>2 {7 H! _% a X; u3 O4 Y
( V `; f% U# Y pkexamine dx240 temddy240, L" l3 G6 P& T& c, O" o
4 [/ f! y1 c. I, j local tempmaxplddy240=r(tomc)
% O; s5 @" D+ t8 F% z n9 r5 I restore
* f- I, I" j. \ }
3 n' \+ d' ~& g* a. | 3 y( m5 k" C/ T [5 H- q
else {2 W2 g/ k: Q' S& i1 Y) h- f8 `6 \
restore. e2 P" W$ E( l) N
di "cannot find pmaxlhddy240"( ~2 L* Z$ h* i
# \# a [' X: W- O$ V9 C8 y6 U
* ? h8 O6 F4 j; W( n1 T
sum dx240: O" q; u ^0 n9 C. W+ }* X
local tempmaxplddy240=r(mean) in 1
9 a3 m9 N4 Z; t* O# o* a # X1 A& K5 o4 T" I" R; s
% f/ z9 D$ H$ M: { }5 j5 Y- F7 S7 W% A$ m* F0 ]2 v
& O7 W, W, g4 k! O# p) m# x
! q9 X* b3 f5 O
1 I4 M' @% l7 x. V- t f6 H1 t3 K. q. w. n% e
' N) W0 x5 B8 U
9 ~; K( {% f# |3 o' ~! J! a gen pmaxplddy240=`tempmaxphddy240' in 13 Z. r: H. m1 L0 Q4 Y E! ~
, |2 Q) U. y& R2 r W. s! {
*-------------------------------------
. [. D5 M2 P5 o: w! m
, f+ B, e- @) K" | ?) g' x0 i& V. i: g gen price5d=v5 in 1/20
$ B0 b( d) j/ M# o" V/ I ! j% R6 {1 F$ h$ g1 [, p
gen price5yy=_n in 1/20
f1 m' x) Z' a7 A- G; [
+ m, a# d* M0 P5 a9 a0 X7 U5 j7 R. ] gen price5y=price5yy*(dy240max-dy240min)/20
; p: T% g3 K+ G4 m. l3 ^8 h
8 \& D6 R& y2 S; J$ Q *price5y &price5d9 q' ^$ `% c1 `1 C
6 u( l0 i) h2 q" p2 \ gen priceny=price5y in 1: X# ^* L) @0 F) t8 F8 g6 w
0 y! Z; \6 I/ S f0 F* Q
gen pricen=v5 in 1* k* v9 Q. Z R, I( P
) j3 F1 P- d1 V' l) W* k, F& p
* o6 K1 L% k8 K- t *priceny &pricen- Y1 W5 I( E4 h: u7 m8 T4 i* A
; L4 @+ w+ v A1 D' {# E
5 i9 |3 n3 }8 w9 D+ q: J2 Q6 z
*-------------------------graph------------------
; W3 i# I3 {1 A, S* v) {# R - Z7 b' B- ~: u$ h* M" P! [
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)/ m( x |0 G R8 L( K
! y4 g& A3 h7 J1 Y* ---------可选项目---------------------- k3 \1 ~$ w' d: @: @4 V+ G
& S! L }$ o+ s9 y3 Z8 K# i6 ^) x9 s
}, ~5 F: B5 f+ x! c# K0 x; m# K
end
( k+ V# p6 J6 ^2 U m" _: T |
|