|
|
改了一下,这次运算应该没啥问题了
( \& ]" T! S) x% A5 q2 I: [* o% S/ f) p
7 F, t+ {3 Q5 ?! N1 S' X
capture program drop hello. `! o* l6 p5 L
9 k+ M* k9 v/ o, lprogram hello7 \/ n3 b" X, l: S
) l/ H5 k* J3 B) G/ d quietly {5 m9 S( y& k7 y* `4 w% {1 q
2 H* I# e0 S$ _+ c0 O/ f5 v
clear
% r" _7 p" U7 x$ t
/ T. B3 h$ z1 L5 D0 ?) n5 A- ^cd e:\finance\stock\20110101\source
' U0 h# L' X9 ~: H3 P' H5 V: V7 c; i+ X/ g
insheet using `1'.txt
5 O+ p `& x8 `, {2 p8 O( O5 J
# I) S( L8 `5 z. v keep if v5>0# D% a" V4 n, M
R8 y# g$ _9 q7 P; a! Q$ Q gen vt=_n
0 g) S7 |' r: f5 Y! L- | ' R4 G1 `# B3 W+ m1 c* S
tsset vt
$ Z5 U% J3 k ~9 n7 N( ]/ m% m
" U$ E7 y) a8 ~- ^4 i gen zf=D1.v5( w9 P2 Q( d6 p* t5 Q R& V: [( l
" C5 n9 `; U6 C P; ^$ F gsort -v1/ c4 j/ v6 b* X
% l T7 ~- b( Y gen avol=v7/v5
& ]% E( j! n( Z- ~
) y& {5 O% ~6 D! b keep if avol>0: J' a) Y& y$ c; p7 k4 h1 s" h
% v2 P& t2 X$ Q9 l& A7 h' w- O' d
drop vt
' o# k: @* j% a n0 k
- N `5 _" @% P; C gen vt=_n C, {0 U+ b( K/ S3 Y8 n
- P* I/ b* O2 @7 ]( Z. J; F, } tsset vt
* a2 W3 ?& `3 c& ~2 G v
9 @1 I1 B9 q% `+ n$ { sum v5 [aw =avol]& u. U1 o$ N# v( l: ]% _( z$ y0 i
' E f" @9 e& ^$ @6 j gen amean=r(mean) in 1
: b) U* A( q' P, D & H% t( y! u* \) h" u0 U
* 总加权平均值 amean/ g! i' q+ q7 z. h" w e# x8 |
4 Q5 ^" v: K" w! d: S2 v
. L( s$ d/ b* l4 z$ D
keep in 1/240& k0 e% n; |$ J, c% H7 I; @
9 Z4 ~! i, z$ s7 x7 {$ V+ O sum v5 [aw =avol]& n; I9 v5 d1 {3 _" {
7 a o \! f: h/ m5 ~! m2 b2 ~) ]
gen mean240=r(mean) in 1
. |+ f1 x( k0 J9 R. { : e) m$ Y4 @3 _1 {
*240加权平均值 mean240& W6 S* ]* ?. o* } s( `
& v3 j3 k, |4 R/ w; [% b
set obs 500 2 D: w* z* p0 K; j! X; o
; |* G1 y3 F5 k, H% o! ^/ U- } kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph" \: L1 U. J7 I
& U0 J: E. L8 z c! `9 M9 m( K *240 kdensity(dx240 dy240)+ r; p# F5 b) a" y+ z$ E/ I
' |6 \0 c, Z6 C$ ?% L# o3 Q3 q2 y sum dy240
( ^" j! x( E- _% T0 G : t" u! [5 s# k U I+ N
gen yxis=r(max) in 1
9 p `, z7 f0 A/ Y. m2 ?5 S, ]
0 d: R# \2 ^, V' Q( D+ f gen yxis2=yxis/2! [, |: }1 U9 B2 Y7 T& z3 B
" w3 a1 h; ?7 v, Z& O *yxis
; |! V9 x$ B2 ?4 |5 p( U
* d( u' e2 j0 Z+ w5 ? gen dy240max=r(max)3 x# @& {5 @4 h; o; H: J, O8 u
, \6 D/ I4 i- p9 b% J gen dy240minp=r(min)
5 }$ J- @0 [. }0 }( n
6 U( ]1 F$ R5 Q( l V# f0 T gen vtt=_n4 h y, B% ?8 W G9 _
+ T* ?, F# V- a tsset vtt& B; r, z/ @" X) u
# j: H* J2 ]! s k gen ddy240=D1.dy240/D1.dx240
4 L5 F+ i7 y- F' k r% z
6 ^2 U: ~% a( s6 n1 {, R; p sum ddy240
/ i r8 u. ]" r7 J3 @& s; e
" b) {$ c6 n9 [1 c" L gen ddy240max=r(max)) O% C& e7 L1 ^/ A( D
8 s2 n8 {1 `0 \ `
gen ddy240min=r(min)
9 l) o6 x, f* W6 r* @- k0 H7 L
& P# O0 l5 j: S: H. }4 h& g gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
, b7 P2 e' m8 d2 o! V: Y
; u$ h6 l$ `7 U6 J sum ddy240g
. g5 d* u2 u! w( g% m, V$ ?
7 z1 S$ { K& j- @" X* i0 m gen yxis3=r(min) in 13 w' {, O/ a+ L( a$ b' e% v/ _
1 N+ E) Z& ~% v0 G
gen yxis4=0 in 1
2 P& W" g$ o% x0 E) A; {. {# A 2 c" k* Z: W# ~# _! U4 R* z
*ddy240g - I( u, H9 `2 \5 I j
: L0 P/ e5 U& v8 B
4 Z/ Q5 V5 \0 s
preserve 9 D! `- y+ T3 K9 P
) S: j: L- X$ h0 Y
sum v5 [aw =avol]; f5 ]% K8 q4 P( ]4 M
9 f$ G- \" A5 _3 `1 a6 j$ o8 W' u% }
keep if dx240<r(mean)* n- l" r8 X6 `( {( P% B2 g3 e
" ~* W9 d3 ?3 @+ D
sum ddy2407 h7 ^4 r% Y- P$ Q' f' C/ i
+ U5 B. U8 |/ M& X% `; ?& @ if r(min)<0 {# x* O1 z0 X( k3 T
* z Q Q. r4 W
keep if ddy240<=0
' P: o- b4 h/ _2 C+ a1 `' w* ?6 W
6 _# [$ D) B4 n6 Y( H count
# r$ @! N+ y/ n o4 d
$ Y3 S' t1 U# |3 _2 f" s if r(N)>2 {8 t8 _' L" B8 ]
4 w( Y3 M1 [5 ^7 ^8 E pkexamine dx240 dy240
- d9 ?0 ]; S) a3 h / d; D% K# F1 ?6 ]# R
local tempminp=r(tomc)
# w& K5 b3 q! g+ C* ? restore
0 C1 o% w% Z; W( F, j } g1 K$ A1 Z# ]. j- y
7 g4 ~2 c& c& W+ T
else {0 P* W4 ~) M4 _; S
8 a6 V7 w# E, n1 S7 J' b
di "cannot find minp"; q$ V' |% J- h, _
! s8 K4 k/ U( l2 @: ? restore ) d) i; n; e0 o" T5 d( I( }' T9 L
sum dx240* B' h3 g2 H' `# X0 i; h: r
local tempminp=r(mean)6 K/ Q3 G! H2 p# }! p8 y. p) Z3 j
8 e4 T9 ]: w9 d/ M: A+ U$ p }
* ?* O; h; W7 V3 Z% l }
; |! ?0 W9 `) Z$ l else {6 w- E# y7 e! }: J
+ l4 {9 O2 F# Z* J4 F
keep if ddy240<=r(min): P: L2 X* O. `0 l: M
- {" G# t( K( l. Q) }. A2 N4 e) `
sum dx240
8 n3 x5 }% b, {. c8 n; J/ J
% R i! t' g. _" i) _8 m local tempminp=r(min)
U2 Z ^# Z+ D. Y8 |# W restore
& m9 x7 B( E, y4 r; Y( F }
' s& x2 D/ ~$ h! Q1 q$ B( T" a7 Y7 {+ ~0 Y$ c# S7 Z- E7 `
" I3 T5 n, d) V% @7 E
0 I' K+ ^. w1 t# z! P. b gen minp=`tempminp' in 1
' g; S# T$ l7 P1 e" |# K9 _# e *240 minp& p3 D9 U; c E* O
, S5 L% Q3 n$ }# [' h! F/ x
. B8 h- O4 w) G# H) N ' W1 _. ?0 B; X0 b
preserve
0 ~$ A, y# K1 ]( a* C i; U" U) Z# }( Y: e
sum v5 [aw =avol]) W5 X2 t y6 j' z M
9 W3 A* O- U, j! Q) E keep if dx240>r(mean)9 h; v. t& \) r; u
9 q+ h) u: B" @5 B0 n( Q- b; ^
sum ddy240
Z5 l( R0 ]7 v% J ' w. E$ C; k. J9 s T
if r(max)>0 {
7 F4 q/ x, i" p1 t I8 \0 j- m) H# B
keep if ddy240>=0
: x& W* U8 N: ^ ) Y7 F7 L2 C- D3 k
count$ ^% x- h' l1 M7 G% ]! x/ n
g$ W& o, N, \5 ?
if r(N)>2 {
% J) K% f" e& ~ ) x) ~5 A# T, Q& @ X
pkexamine dx240 dy2403 k+ t: s. }, O3 J
. T! @( f% ?5 C/ p! V local tempmaxp=r(tomc) : ^2 k' ?9 S" W3 R5 a
restore
# o% p+ M+ i- I( S4 W/ S }5 X' r- E, ?- V& a/ X5 N
( b4 G3 A6 D& F9 N
, ]" P2 ?% Y9 {( X else {! b3 V2 V! t( F2 Q& B2 h8 x
restore $ ^2 I4 F6 Y) \* @
di "cannot find maxp"# j3 v: [! b, D J6 A# x
0 n( h) b( {2 u- s+ U( v
+ h: O$ }/ l& s. ^ sum dx240
% X0 q5 I6 X0 e1 [0 k- Q" g local tempmaxp=r(mean)0 o; k8 H, ^2 |5 O/ g+ ]! f
+ `5 J# F k! ~# q7 n2 q
}
% s8 a! ]0 N" ~, M; i 0 P) n+ t, |7 G8 H$ N8 c
}2 d5 j. }1 a- ?* C3 c/ _( S
* Q1 c& \" E& W! A
else {2 \* n. U& u6 y: M6 v; M2 F
! T2 }: ? p4 u% ~ keep if ddy240>=r(max)4 q9 `: O' P) c. ~* P
% R ~# D8 n# H- P4 p4 \& J sum dx240* G1 D" g4 P$ {( d# g
' w2 N! p! G) T, L# H" d0 y, W# l. T local tempmaxp=r(max) : E9 L# j, I, @6 H; p( ^2 D- ^
restore 9 U$ [# x. h2 Q: c" L
}6 g8 L. E, R3 u' ]1 J6 `
, L. S% d) i: ? Y: `( N: i1 ?' }) j6 j' d$ Y' o+ \/ j# a
( f! V; a7 A$ K: a( K7 q. K4 T( p' ^7 J% n8 H5 H
gen maxp=`tempmaxp' in 1( k" N) U8 s K' ?% Z
# {% ~! x% K# w8 a( n5 g *240maxp6 h' y( `8 s1 S. J) w, T; ]" M5 N
2 T" n3 b# p% _
7 k: {! N/ b' {2 \/ ]0 r3 |; l *-------------ddy240pminp左侧高峰值-----& n* i* _ Y0 M* I2 k# y
1 h0 M# z$ g1 g, j" m
preserve % h6 e# e8 k/ l! ?. [
* l3 B" `6 z9 w1 ]$ B; q
keep if dx240<`tempminp'% E$ h+ ~) }/ E" d; ~+ ^. Z
7 e2 i/ I# C, o$ Y( a! l- C6 Y, m
keep if ddy240>0
8 V8 p) V3 Q" H ' G0 E+ I! i) b* D: C S- z
count
$ P. O7 u% [7 ?" X3 Q/ j' j ; r0 L$ g( t$ h, W
if r(N)>2 {3 f2 }" G- j* X$ ?+ B
% a% Z) {# B" t, _" ~) t6 x pkexamine dx240 ddy240
+ r0 ?1 Q8 O1 D- v 4 D* e& ?& ?& D6 X) ~
local tempminphddy240=r(tomc)
, s0 [6 } ^6 `- u& S) u2 w' z restore1 M" C1 @) j7 h: `5 v
}
, n7 `7 n( `# B! a- g3 g2 J+ g
( H' h' `7 k& Q+ O* _" | else {
6 ]" a [! H1 [: W' X restore
$ D) ?, u6 ? w! d" ` di "cannot find pminphddy240"% ^' i% W' _2 z% g
9 s7 O# M3 T$ ~+ w$ U# B
" _3 e; G' M! C8 u) I sum dx240+ T7 C' ^# T& x6 _
local tempminphddy240=r(mean) 5 D* q0 S5 D) ]$ V6 i3 w) v' h- k
4 d9 {2 ?! [$ q6 c
) y. J! T+ @/ \ }
9 _! x* v& ?& d* \! R+ ?7 t
& E8 G- Q; M3 L; A, c4 h
" i: T; D3 N$ D n. k( P$ `5 q2 i3 o# H 0 n! Q& y3 C/ l, t$ m
+ F5 ~1 ]5 ^; e1 ~2 R+ d0 z1 w4 L 2 U" q( r; f o$ E# j
( D2 R9 v) J7 z gen pminphddy240=`tempminphddy240' in 1
7 n8 V2 N1 V3 h 9 p* }6 Q: V* h5 t& i/ O/ k
# V% o2 L- h( l% R- h' y- h/ N *-------------ddy240pminp右侧低峰值 -----------------
. Q: m2 [! r% _. O7 B$ j" \ preserve
0 v' O4 Q9 Z {% i( j* T4 J ( b% i0 v# b7 h0 R
keep if dx240>`tempminp'7 c. r D. `* D% x$ D, e. _
- W' c A9 ] [5 }/ b
keep if dx240<`tempmaxp'
5 h5 Y5 L/ a+ a5 Q) |+ z( z 6 m0 |8 x( {$ N P' U' x
keep if ddy240<06 U' s3 A( T+ X. V9 `2 [
8 H0 I* o6 _3 A7 y gen temddy240=-ddy240
5 n. f' h f7 {' }4 q. t / S+ J" X2 \1 B& B- f
count
9 c+ W4 {# I* t* W3 @1 h & Y0 P# y' K( \+ e
if r(N)>2 {, x, G$ w+ o7 _( }! f# m8 ?
z3 W6 z0 U" z
pkexamine dx240 temddy240
. l+ h0 n$ L) h/ F 8 X/ N% X9 V4 g4 y
local tempminplddy240=r(tomc)% S& h1 c0 f7 m. q2 c
restore
( _: O- F3 N9 ~* B# I7 p( d }% j" ?' `7 s" w5 [# \
, Q; A& m8 s2 B
else {0 ?% e/ y1 ~) r0 ^, b# m2 e! g
# M$ _' }, m8 Q# f. Y/ M
di "cannot find pminplddy240"
F+ g) t7 n: \6 E7 n0 Z restore
7 w$ y, {4 O. P; h6 M1 i2 a
' L0 o; d: e" B+ S! h; w& Z3 Q3 k sum dx240
1 H( I$ t& j# Q3 l: }% v. ^* | local tempminplddy240=r(mean)
5 @' C `) _/ L1 }
3 ?& L/ M; ?9 ^/ X
& w3 x$ H4 I8 g$ }8 E }# F X8 E' K- u5 H, R' I* F
( u# W8 N! q' S' o% q) E
0 h8 C* k% [2 o G7 ?
( x! e! Y9 b) |, i% c$ f 4 [ c: I6 c% j: L
$ M+ W2 ^& h/ L J- b/ l
gen pminplddy240=`tempminplddy240' in 1
4 W, H. g4 s# J4 R; X/ k5 X. Y 9 n0 U7 e/ p* M' J& J
*-------------ddy240pmaxp左侧高峰值 -------------------& b& A2 p, g3 B5 X( p% c2 |1 M
1 T. C% x+ p- C. A( w
preserve - i$ N* g, e5 S* |- U! Y' I
; B0 j6 J* u2 m9 P keep if dx240>`tempminp'4 V$ M2 B) W0 c
$ I: }: z7 {( ]% @6 I
keep if dx240<`tempmaxp'
3 g6 Y( E# [" r* T - ^6 K& H! I9 a6 e
keep if ddy240>0
/ x5 O3 [4 i, Y0 N% e count
$ a/ D9 s$ O( \7 V1 i - \5 ?! Z* p6 \, a0 w; H: [
if r(N)>2 {
9 r3 I+ X. g, U$ C. T
9 @9 l K( f! v0 K" J pkexamine dx240 ddy240; i8 P Y3 z# E0 ~ }- _' c
2 K# g/ r" P0 q: f
local tempmaxphddy240=r(tomc) . k8 x; ?8 o/ J) e8 F) T
) |8 n1 U2 u- @2 x; p1 l! a
restore
, ~- P* E ~+ F `: A& L }. ?3 E# j: b" g L J9 f J. D
, Z1 s Q' r8 X4 o1 w; D else { m Z% {8 Q* ~/ f _2 G# B
' E+ f' D: T0 L# a3 T9 t( W di "cannot find pmaxphddy240"' y. Z. ]# B& z$ U- i
restore
' e8 u! @2 M7 a' e 5 l6 e% ]$ \) ~$ `& d2 a+ h7 W
sum dx240" W1 i: e4 A; z# G
local tempmaxphddy240=r(mean)
% s' x: O( o2 d7 J Q( \5 s# L 4 n5 N V" \* h6 L5 B3 o
# ^" M4 T, l, ?1 ?
}
& c& e$ @6 x. S \" C5 v$ f( } 8 a+ S J/ F- h3 C3 I$ N3 j7 }5 L
7 r! t: t" y& H" ~3 E5 U ; V& p* g; O2 A: w* e$ y: B
4 ~; ^; A2 h$ `$ U# m7 r4 w" Y9 e
& h% T5 R0 T% s6 ~ 8 H b6 f* h+ e, h4 h- b
gen pmaxphddy240=`tempmaxphddy240' in 1
* o1 u" A+ c4 m3 a% W1 h5 @, f
$ Q: V0 J& X6 ^/ }. {8 t# _ 0 S5 U6 T+ v1 }; L7 c
*-------------ddy240pmaxp右侧低峰值 -------------------- _) B4 B% z" H2 t3 l
$ z; L7 z8 w7 G5 E8 ?
preserve
+ y+ E! X; c( m# F1 a6 i4 A" M 1 l, d$ C& g/ }+ P% f9 {
keep if dx240>`tempmaxp'
+ Y- k+ |; X2 P8 M 9 N) W1 N) O/ U1 d/ R
gen temddy240=-ddy240
! _: e3 H! a1 X4 P0 R8 C5 _
. V; T$ B4 I0 u3 A# r keep if temddy240>08 {+ g/ G. p+ B6 B2 B3 E' \
8 L( t# |; z3 P) O# u2 ^ count
) Z. ^0 Q1 u' @ 1 i" j( i8 Y; A# P
if r(N)>2 {
& y0 ~- N# c! W4 \
2 O3 Y6 M& L' v9 `- b0 V1 D1 x g pkexamine dx240 temddy2408 {; K# X3 j3 @7 @& A; k
& E* U) J! m/ H1 p local tempmaxplddy240=r(tomc)
3 I* n" z- p4 p5 R6 } restore3 \* E/ T% Z/ V+ ~5 ~* D5 N7 i
}% s8 B3 F' I1 X4 _! b& B
7 C; e8 _# E$ ?7 ]* p/ f+ G
else {; Y2 J" i! X, H- I# D* K
restore
8 K( g6 |2 N; G( A3 O3 n6 a$ Y di "cannot find pmaxlhddy240"* z2 r5 b1 q! ^+ Q, z* ~" K8 A
# i# j8 ?5 j7 M8 e. {- o
( S- }7 h. H) S: e7 V
sum dx240
( L" f f2 g7 `) ^: q/ y3 u2 y local tempmaxplddy240=r(mean) in 1
8 K/ y4 e3 ^" K& R 7 H. ]+ ^* [2 T0 F+ Q2 U" k
# Q) @3 J" y+ b0 i+ \4 d. [
}
0 q2 J3 F/ g* Z - D% L. B" m; f% h8 d; W2 k" B2 }
! ?: F5 ]/ s) n" t3 a, ] x
6 N) W9 C. f, i
1 x* f: ^1 _1 E. k, }- s( f* X
2 L( F; _. H, [$ d6 M! h! ]
4 z: ^( v- w D/ p# x gen pmaxplddy240=`tempmaxphddy240' in 17 N+ W- n/ A+ h0 Y+ Z
( H3 C! k; }2 V, g' J4 l9 ^0 y' N *-------------------------------------( W$ N' p }6 v1 |0 ^
( p z i/ `7 [
gen price5d=v5 in 1/20
2 v4 T7 j0 ~* V* b# S) I# k! V & D% F. a% W7 T+ D, C
gen price5yy=_n in 1/20
3 F, s/ {8 C( C- F2 G' z ' G$ o) H P2 f) V
gen price5y=price5yy*(dy240max-dy240min)/20
) {; a$ F3 ^0 i! I: G2 q
5 g& s. f5 Z, W+ I" B" V; b& g. r *price5y &price5d
- J+ J6 l7 v, s: E
9 a$ o, b4 j" U gen priceny=price5y in 1
& W) [; z% i1 ?* K: s
h4 g( o3 ~, x4 O1 u# i R gen pricen=v5 in 1
' w' a' c7 Z0 K% Z% a0 {- Z
2 p/ ?% x- F7 u 7 d8 E' B) f' }% A
*priceny &pricen
# u2 b+ O% t$ y" l( G
! w; e# h3 t" y& ^& x5 L; L
$ l- F1 I0 t+ q& T4 X2 x *-------------------------graph------------------8 u% x% U2 D% s; Z/ R9 B' G# |, V7 B
4 a3 Z v# q( e5 A
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)
7 a, c9 J: z, a8 T- X! g# z
; E1 ~; N8 n: C7 {8 j' N* ---------可选项目---------------------- K+ h: J% }! J& Q+ [+ F9 ^1 {5 W
. A. f+ o W9 L2 I}' B+ U! Q( j4 S J
end% z1 G4 I' c6 b- W
|
|