|
改了一下,这次运算应该没啥问题了
, Q) p7 C' M/ M3 V8 b# j+ D
) A% m9 Y% k5 v7 i$ Z% M. K' _$ F4 V. L2 _) [, U% e
capture program drop hello
k2 ~- Z5 @' D( m0 g# g& i6 b( @, [. p! ?. Y) {. H
program hello
4 \/ y( o- A: w& ], J) } E7 f+ u. Y7 U# ~' X
quietly {
3 O: `: j1 H' n$ D
3 S7 i7 J4 I; D7 k; W* n4 nclear% H6 Q: f/ \: \, J% m
* p, A8 |: ?0 M; w4 b% ]cd e:\finance\stock\20110101\source
. j8 n1 _; g, X8 }, i
' K3 ?) q: P$ m0 t3 y* X' pinsheet using `1'.txt2 J3 E/ N. S4 V3 y) k' a8 k
, ~" j% U: }% o# ~/ j; m- E
keep if v5>0! P6 r2 M$ G; g+ S: M6 j
4 p5 F; `( X3 d
gen vt=_n* S0 n& I8 ?' @5 }0 j8 p' U/ B
( N6 M' M7 d6 `: Q' ~3 ] tsset vt. y, V* j9 l7 V
' k' b- V8 h5 m+ a. \# o
gen zf=D1.v5
4 E2 o2 y2 H# x% L4 u: k0 U8 z- B0 M3 B1 d: Y( B+ H
gsort -v1
/ R5 j$ P- J: o/ K! D$ |# F* e5 l, ^" c( `
gen avol=v7/v5
8 Q% N+ M& k0 L) J0 T
/ F4 ~) i8 M8 i4 A2 H keep if avol>0- i* J+ f/ x) k% u
) h7 u! r) }: |5 a- {4 d e
drop vt! U. \- R" H- ?4 m$ {" k
5 s2 @1 A! ?, ~6 F gen vt=_n
9 @8 Z& c8 ~/ x 8 p1 w) t) a8 Y0 [! ~" X1 g& k
tsset vt
9 Z4 N6 u; m6 [# o @( ^: j; W8 w9 j0 p
sum v5 [aw =avol]
( r% N) G' g/ _7 A3 I; G7 T' i T3 j
* @' |8 r2 m. _: E gen amean=r(mean) in 1+ I% X+ I( w) D, C* \$ k
: w) {+ J# e# K, F+ ]+ X$ u
* 总加权平均值 amean
4 W% E$ b& C3 ~3 Q
! ~$ l2 a7 _+ }6 b2 j2 M# O! [7 M9 E
/ o0 l6 C% C2 t/ J! b* o: T0 g9 V keep in 1/240- t. m, G" `% } t( ~; J# X$ a( o/ c3 i
8 G: }1 s7 ]3 ~1 {' s8 d sum v5 [aw =avol]* G/ s; J; l D& K, a2 r1 v
2 _" ?( F. h3 |7 a' U% j6 a. R) }( { gen mean240=r(mean) in 1
. \$ n6 y$ i& q: m0 V" @& t, [1 o
" x- s; h( K3 b' s# g *240加权平均值 mean240
5 @, ?6 Q: d; M& t3 D) {. n2 Q0 m ; f5 s! |- X$ i5 h
set obs 500
5 P t: n) h* [9 Q; B2 M. @
9 s4 c7 ?1 Q6 G# p2 A; j* c. s1 R kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph& T5 Z& R! C5 {/ Q
5 l8 m7 S4 A$ M9 g- W8 W *240 kdensity(dx240 dy240)
! o3 C3 \. s$ ?- u% o2 A
! L0 A6 I* N) Q& c& m sum dy240+ p& a1 ]8 z1 R" u6 i
- b- f1 U# V2 R! G; f% ?0 L; I* A4 E gen yxis=r(max) in 1
* j. |8 Q! \5 T5 e
( J& Z& r" ?' z( ~2 p gen yxis2=yxis/2
. O& r6 A$ X, D2 d" b- s+ E * g, L- ~. @4 V' ?) {
*yxis
# o. z$ o4 l) c3 Z # U1 T8 D6 e# c2 M- G
gen dy240max=r(max)
0 E0 |& u. S: Y6 ]
6 p( V+ B. _% O. S0 I6 i gen dy240minp=r(min)
* f6 ~" |) o5 R7 h7 O' A
/ ]: i8 a( S; w; M- ^7 V0 f* @1 r gen vtt=_n3 Q+ g0 p6 a0 u3 `7 N! |( _& \6 f
; E' ^" Y: z* y" Q, H. G tsset vtt
# ^, T3 p; \1 G5 S
# I& c3 \' f9 v$ `, Z gen ddy240=D1.dy240/D1.dx240
6 i* I3 N- O( u! t: O8 T% W7 q & F/ a# {# H! r# u
sum ddy240
7 P2 B: i) R7 c% {0 T4 @( I
( U6 z4 E' q1 z" `! d gen ddy240max=r(max)
6 u8 s' j0 Z( O- s$ l& E: p4 I
- D2 K+ {7 Y) h4 k5 z$ w gen ddy240min=r(min)
6 {, |4 e& O5 }: J# D 7 L o/ H$ l! b! }0 l
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)% Q" f9 y7 b3 \
- ]6 x) G5 Q, G: W. _; `2 w% R
sum ddy240g
! c8 S6 A3 G ]) L, g' |% R/ O2 A " x# v& @: B5 s- O9 A
gen yxis3=r(min) in 1' I1 k+ q' u8 t! b; a7 a
1 X2 Q/ G, i: ~" F5 O/ B gen yxis4=0 in 15 B% X) E2 B m! l; U$ b" I
$ A/ [2 t& c( y. z+ ?; p" G *ddy240g
4 N. x6 v( o u, s0 L3 O 1 r; f9 X+ V; b" C
+ e. R' F. u5 {0 W; m, I preserve
: Q. E, Y! Y O # I8 S" x4 C) U) i! m5 ?+ r
sum v5 [aw =avol]! `8 I. c. ~ X) x) P
' q- U" Z3 D. ^, W. ^6 z$ I
keep if dx240<r(mean)7 x% F( B/ ]! Y0 @) F& b
- Q6 y! K9 e5 o! Z3 s& } sum ddy2400 g/ E+ a T. K2 {" I: \
7 y/ _1 [4 u8 r if r(min)<0 {
6 y0 D( w, X, d5 P! { ; g) ]# O, F2 k. v
keep if ddy240<=0
* H0 F7 d, t$ I ! V/ u4 D! x" ]- g
count
- W) X- t# `1 x e! s 7 F; m; u6 [# }' U3 t! }' Z
if r(N)>2 {
3 V& d) g0 H7 e: B5 j/ k3 W + q6 E/ c. [2 M- j6 n
pkexamine dx240 dy240/ H" B9 \9 C3 p3 k, _2 p0 i, `
5 ?9 L P4 E# J# e* z& E7 d
local tempminp=r(tomc). S) g5 S9 s) x2 `+ u& L& A
restore , Q/ h4 X8 q6 h- H6 i# @5 t% {
}
4 w y+ C7 E* b& y& m2 w W: A( t9 X, {( k. N! R$ ~, Z) Z
else {. C! M+ m& w% t
- A0 a6 b1 I& U# ~) F# S di "cannot find minp"
4 _6 j% Z! ^% m ' K2 R. v4 E c! G
restore ; Y. ]& @$ ]% R% F
sum dx240' P+ b0 t$ x4 W# H' U! j: Y S
local tempminp=r(mean)9 }$ |, H6 y" @1 @
4 T! `6 J5 |2 a2 _ }
, g1 G8 A4 u" j }
1 W8 C. J5 ?3 `4 J else {% a4 O" W7 D/ m/ A
$ m0 z8 ~6 ~! ?( C2 V
keep if ddy240<=r(min)
5 P( ^9 q6 d: a/ U! K4 X5 s
$ X3 |: \0 g- k sum dx240
1 L* b w; L3 ^ 3 \5 ^) g& \3 F
local tempminp=r(min): ~6 K" W! u( Z( O
restore
' Y* h3 `0 E; d; |0 q }9 g, ~4 [) T% L! n3 j$ q
, Z+ K; N) g! Q# Q$ E1 {7 o4 R8 ?0 J2 {% p0 r& s3 v
, u/ `. D2 ]# F, i gen minp=`tempminp' in 1
' l8 w ]' h- x/ C0 ~9 J1 A *240 minp
7 ^( P& F/ T* _7 d# K& U$ x; X o( z
* r: {/ j/ c' a8 R3 m; G ' ^. g# b$ G+ X+ k. Z! G
preserve - }+ S. A4 z% L0 q8 `- \, G
# O3 Y2 r" u$ B) {/ Y' X, ` sum v5 [aw =avol]/ s s h: M6 u8 H" f
; c. l# @% d+ |) @0 Y
keep if dx240>r(mean)0 o6 ^) |% V/ x* } l
2 F5 ^% H' F+ r( U8 M sum ddy240
, m0 M" s5 B1 w; ^/ Y& S$ Z5 ] ( q$ R& N) h/ O, I
if r(max)>0 {
% O' u& }( Q( I+ y& L, u5 c
3 J! A/ U. u, N# e! N+ z! k9 f, Q+ V keep if ddy240>=0
* e; \1 [* I; p+ }' j+ Z- G* g. \4 H % R- a1 ?/ d" H
count
% s' ^2 J& u; m3 E6 s 7 e2 e" x- c6 [6 B) ^
if r(N)>2 {
L* ]& R' H' L( i/ h8 Z% u4 b
; F. a J' s! l j6 s9 ^6 Q pkexamine dx240 dy240! F$ u+ u* E, k5 S% [
6 a7 j3 _3 q2 C& s* ^. d! B) b6 W local tempmaxp=r(tomc) 4 K# \$ c; X0 @1 T' L7 E( n9 _% [+ j
restore
' h- R9 X4 o: q2 X* j2 _6 g }2 l5 W+ L& g* \' i4 S. m4 t
2 x# C9 A( g3 {1 ^* g : ?. w; G# ]2 i3 d" q4 x6 p9 l
else {& }8 \7 ]# X2 a) P% }- S
restore }! T" f. i- p5 F) F
di "cannot find maxp"1 M W& N }5 T; Y/ q
6 V* E: m d* Y$ N9 d5 }: l6 M9 @7 {
4 g5 k1 Y" c# O7 L
sum dx240, z+ ^3 ^5 D4 t3 E) q8 e4 Q9 A
local tempmaxp=r(mean). Z' w! d$ P2 X0 F$ P1 G$ p
* W1 x7 O1 o/ W1 I) J4 C
}
; {7 `1 M" X( I& W/ i+ }
/ v" T, c' d$ `4 S- o }0 x# `; }* W5 h' {% l
( p% e4 j5 C5 ]# ]8 C# W, n9 }0 l& v
else {
! \- m8 z/ B4 }: t5 @. a. V
. ?! E: L, t) h keep if ddy240>=r(max)
+ {5 u0 P5 m. }: M. j
. V0 F1 n/ D$ A& W' l9 l& ~2 b sum dx240: _# o7 a2 q+ a. J, m
& y8 p) Y- y; C2 J1 o1 u local tempmaxp=r(max) & R6 r l6 { m' F
restore 5 p4 R2 ] Z% v4 L5 J- A5 e1 a
}( B# ~/ K6 E, O9 _- v
" s$ E) y+ b9 m8 X0 \" C
" k1 ^% ^8 ~* s0 e& u* u 7 ]2 N" Q6 i+ D' N
! A" \6 y$ \1 y5 ?" E gen maxp=`tempmaxp' in 19 H/ @4 c- I" \6 u- N
) g7 |+ ?* g; t# E; y5 Z9 A) A L *240maxp: P4 |6 ]/ I+ T+ \+ `
6 B7 U% m6 B5 D3 o
) h% k3 b, S6 J8 Q; e( d- G; S; Q *-------------ddy240pminp左侧高峰值-----
4 p+ f, ]; d" c1 T% U3 f, O0 D% |4 P
; M9 O# W6 `( E: i: ~) E2 I! O0 R7 ~ preserve
3 L5 }3 \# s2 f9 A! J+ `1 z 2 J" B! L# i; D. a* G# D
keep if dx240<`tempminp'
5 g4 n$ h1 r% ?' `0 ` 6 ?! N( g( e% A& y# d
keep if ddy240>0) p+ O9 J- Q+ K6 p
2 S" G* s8 I/ j r% H0 K5 W- q# Y5 @ count
& p) U" g& k( [- a2 J E' O: C- o; h
if r(N)>2 {
$ M- d3 V7 w; k- x
* y4 [& N; u- v* P. L pkexamine dx240 ddy240+ c( L& }. k0 P/ C+ K
. b; N) R. r4 Q! Z local tempminphddy240=r(tomc)
1 Y1 [( R0 g, ]) ~! l: b" @ restore
( O" g# c* N I, Y S% g, | }2 S8 g% p/ d% S# E8 B/ l
% y* O* X- q. F! q& \6 L else { u7 A4 s% F. b9 w$ v6 W' r
restore . e7 a' j/ X* A+ G" }$ q
di "cannot find pminphddy240"
- F1 F7 f& E2 q0 E1 c, @
1 l) y( T7 f1 o* \, g$ U a, L R
6 @# X& r& y, y; M9 x sum dx240. x: J' C6 @ G B
local tempminphddy240=r(mean)
, h, C+ u2 N7 Y, n ~7 R
/ T2 h3 { {% |
+ ?! t1 b5 }) f$ `2 U$ t2 U }
# W; `6 C0 D8 I5 s; e( @ 2 h7 p* v4 t) u7 R( b
! d0 V, h" x/ T8 ^9 r" r
3 D# v* `. `2 ]. G
8 k* A3 f8 G& G% b) V+ U ! c$ o& I& j' E" w0 }* l7 y
. d) c5 P3 B7 ~5 [; r gen pminphddy240=`tempminphddy240' in 1
b/ _/ ]/ x' ~7 z4 C 2 k3 Z* U. T l5 \# `
$ | k# m9 j+ U *-------------ddy240pminp右侧低峰值 -----------------
3 w" H! y2 `9 ]0 H0 J preserve
' }+ F0 [, l2 L7 D3 u; `
* C7 h0 I# b# K) t5 z3 A! j; \7 a keep if dx240>`tempminp'
! T0 i( ~7 ^2 k3 \# Y* u1 h
6 D# V; x9 n* E1 d8 T keep if dx240<`tempmaxp'
k. \& L3 U5 U% ~
! {) U- v( K: B6 N: ?' m keep if ddy240<0# J0 P7 b9 n( t
) g6 S1 F: v) }& ?) ?( c% L gen temddy240=-ddy240
% c" W0 E4 W" t $ e+ f) H2 `% n' Z6 X. n# v3 c
count& R. ?, s- l* y) }
: c8 f4 @0 i7 b if r(N)>2 {/ `8 X1 }. B0 d" k
, V0 C% }- x" M- q" G$ J: a pkexamine dx240 temddy240
9 ?% ~3 M) F3 ?. C* k; c2 u1 F 2 }1 f' m. h) B
local tempminplddy240=r(tomc)
2 Z! p- N- Y2 w" t5 I9 F, ` restore
# l/ a8 ~8 ]+ I3 r$ X }
( ^* _1 X) A2 I( n6 u( r3 } ' e4 }: T6 x1 \4 u) e/ n, j" O, u7 Q
else {
& @: {- F, O$ P$ b, L# c4 A T6 ` B- |, A, W
di "cannot find pminplddy240"
- M" C4 {/ Z6 r0 _ restore4 S5 R4 Z% b* P9 _% E
7 ^+ K* G/ e V5 }$ o/ q# w
sum dx2402 W; g" c z0 Y6 T5 M+ k
local tempminplddy240=r(mean)
% X s5 A8 R ~8 z
1 T, h9 Q' _* g 4 @0 v2 S/ u C% `3 J( R
}
, ~% U) l' W7 D) z 2 a! I1 v' n6 {( c6 f
0 `7 D; Q5 ]$ _' V
" L0 F6 e- _% o/ B+ a$ v3 v 1 e, D& l1 q0 P8 R
, M, }5 I! q6 I
gen pminplddy240=`tempminplddy240' in 16 R* W) N6 X& U# f z
" U3 y" Y4 }. G; W" C0 l# n *-------------ddy240pmaxp左侧高峰值 -------------------
: @; A% p D3 Y6 ], w 7 S; \& C5 ^$ G/ {2 c# G% V
preserve ' h+ K2 q1 j% e4 K( f5 C$ v. n
3 b, i. `! C$ s7 l keep if dx240>`tempminp'' x5 D! v' [' b, ~: ?* o2 e( M
. q$ ^; O% M U+ e6 M: j! R. P keep if dx240<`tempmaxp'
4 U' J0 K3 _3 c6 z : t5 s" |$ C! p5 B5 y
keep if ddy240>0# I& B# ?, Q7 k4 y3 G
count
4 @* k8 H! R! n+ Y1 y ^3 [4 ^. f) u
2 p% s3 E! O7 J1 Z) \, r+ |0 q if r(N)>2 {) I! z5 S, B1 f3 b
0 c2 \" |" Y) E4 w7 e0 _
pkexamine dx240 ddy240" F( ?- p0 S( u1 A8 O5 n& I1 ^
' o/ \8 v9 j- R" E; U- z
local tempmaxphddy240=r(tomc)
/ B3 E' h+ N4 W2 ~' F6 Q) }7 O
3 a' H# |# A9 a2 N3 x, i: }2 r: R restore: W7 F& V( l1 a% h) y0 k
}
0 x" _0 P s: C; f. C a/ Z: n 3 [5 O& J. F$ V/ Y" G
else {
1 [& M0 B9 Z6 m' M* E. Y
5 t% H5 h+ [# [8 e9 k% Y1 h di "cannot find pmaxphddy240"
8 q3 N ?3 z% N0 F& C1 K restore& O% V4 `/ p: m8 B' ]& f
& ?" f$ F) F2 |% d: G6 u7 f4 H sum dx240
/ W7 `- t1 O+ c1 h3 | f8 a) c local tempmaxphddy240=r(mean) 5 T- k1 A# z. z
2 G9 z' Y0 R9 w$ C$ n
9 g2 D4 \, |+ U. @( j0 }. a! P }7 r/ e+ b2 o# _
& _7 w" T: K4 P7 `! m& F
( r5 P7 N" }# W4 q* w5 U
( \& M# r# l% D7 Q! W 3 K& D$ P7 z0 Z- d' r& O8 [
' e" O& M- _0 h- H3 I
3 C4 F& @4 J+ u: v9 {% r2 h8 x gen pmaxphddy240=`tempmaxphddy240' in 16 l- X5 x3 D% e) H' _% B
: j$ j6 J3 W: a7 S& y
8 q8 X2 Y+ C+ u5 J7 Q
*-------------ddy240pmaxp右侧低峰值 -------------------
" @ @9 W* b0 S% f$ |& M 2 E) r% @+ {0 }: f! n) D
preserve / j4 i$ Y- l2 V( Q: h
! y5 O8 [4 l/ p0 t5 H: Q keep if dx240>`tempmaxp'# W, d- x. q; T$ E9 M
; K6 `5 Y9 @$ o/ o, l5 d5 |; z1 g
gen temddy240=-ddy240
3 g: ]: j/ ~1 m$ C, e* i 7 L$ f2 C9 e8 F- B& I9 N: C# {+ @7 r+ V
keep if temddy240>0
i$ X) c5 ]( t* j5 y) [
- }, I1 r3 r0 C& i. e d6 s count
]9 c# ~9 s3 h8 X1 N# a8 |( u
( t% |9 r @+ z( V3 z7 L1 j2 Y if r(N)>2 {8 y' q1 Q+ e$ u" Y! o
5 B; l8 O2 g6 o8 i7 {' x
pkexamine dx240 temddy240
: M8 f' W/ {9 i- ^! X
) c1 K- y0 u, [ local tempmaxplddy240=r(tomc)
, z; @. x* O' b& B0 ]% K restore8 W: g' ?3 y, t( v% z
}
/ x6 S5 h* d% k : n: R8 g- P# F4 Z
else {' h; J. e1 Y0 r) ]0 ^% p
restore
8 x( Y# q6 s" e$ n di "cannot find pmaxlhddy240"( y" v8 H& S: Z: ~! k4 q- s5 p0 u6 b
5 P" r) x' p' H0 |3 U5 i
7 }) X2 G# d* @. O* r9 G
sum dx2402 O& r/ t6 @% ?$ T1 l
local tempmaxplddy240=r(mean) in 1
" ~, r+ R: Z) h
. ^7 m+ z& }* B% Z3 h. K; v ) ^* y- j5 U/ ?9 b0 G n
}1 T5 ~0 a9 X5 x& V
" @, b% N0 s( L3 k1 {8 r/ [ , ?2 y, j# ]2 ]
% n! `% x" _: G. g1 N! W* |
" z5 F9 m9 `( \! R9 c9 I0 B
4 n% L8 I& X3 j5 A2 r2 G0 T1 z& h
% G! {6 j7 g; x% l0 Q7 _! S6 H gen pmaxplddy240=`tempmaxphddy240' in 1
/ A x/ s4 x8 ?. K$ V6 J; y4 |2 }
5 f- @2 l( ~+ {" e/ U! E: m. g *-------------------------------------' c4 _2 N, j' B+ g1 Y
) `/ U: C. p- g2 Y
gen price5d=v5 in 1/20
- @( g6 x* C: r3 I0 P 1 R. _9 ~$ W: g
gen price5yy=_n in 1/205 M6 }) ^# E- h0 v$ N
1 z3 @/ y% E: p0 B* Q- V# B
gen price5y=price5yy*(dy240max-dy240min)/200 d& x2 i; l" j% K
s- | j& L) R( I
*price5y &price5d
/ N3 W( @0 Z8 d6 S5 U
* u6 Z" N2 \' b6 W2 o gen priceny=price5y in 1& D. H1 B4 m1 w! k3 ~
: o5 ?" T. e0 c7 _
gen pricen=v5 in 1
X" h3 g5 o8 d7 a
, R$ e9 f1 ^/ T6 N' l) ~
/ x0 V3 u1 c4 e/ `4 R *priceny &pricen
/ @6 b5 T1 O1 j/ ?6 a ( K7 o$ R& T" g% U2 O/ p8 N
5 q2 L4 ]; L$ Z+ [7 f4 V+ d9 a *-------------------------graph------------------
) L! ?. a- [( }0 O
, E2 r z+ E4 O5 j 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)
) F. S% t1 X- m5 L" ]& V7 \$ s; x$ h( s1 c2 y, [( F- _
* ---------可选项目----------------------: y0 Y4 H3 a: O2 M2 R
$ T& R% p2 Q2 {' c U
}
B& L0 ?9 M! c! D4 @* t! qend
, h& T% d6 v* V1 m J* {$ @' { |
|