|
|
改了一下,这次运算应该没啥问题了$ a( ^ ~1 A- a' J# J
" y0 }1 ^2 f t( W" f M) @% G8 b" Q4 k
. Y& p" S: z4 u. c1 xcapture program drop hello& j8 Z# m8 b( I v+ |8 H' }8 D: P7 r1 {
$ @+ I- G! F% B0 B
program hello
4 ]) W4 g+ U T2 @0 h$ k5 r1 z$ T2 l; I- ~- Z
quietly {
% u! Y+ B. j/ J; B1 I9 T
* r2 K6 T4 J( l" j3 ]) j' b' pclear
& \9 @2 `+ p2 R. k2 x+ L' g# |$ C( c
! e$ V, q+ e. ^" P. icd e:\finance\stock\20110101\source, e c1 d4 S! p, y& r& o* k- o
% ^# a# _5 k y. s; L
insheet using `1'.txt. t# q: Q2 G+ v
6 F9 Y6 ~* m: B; ~6 f keep if v5>09 D: \5 e4 M% ?: x4 @3 O) d
8 V7 ]# |" @- K. p" o2 X% _ gen vt=_n
- _/ d* A7 |) V8 T# s2 B - C+ \; ]3 I( p/ C1 l- n
tsset vt* t) s& @* a1 ~, i2 @, V
. j; F9 t8 r) B6 u8 n4 f. U p gen zf=D1.v52 n! u1 _3 ^) o" v+ [1 m& A
4 k4 P+ g1 ], | V4 e
gsort -v1- K: V% n8 c0 l8 ~- j( ?5 Y s! w5 E
* q; t" I' b$ Q7 n
gen avol=v7/v57 p% I" M1 J1 [8 M4 U" v# a
6 L7 ^/ m0 A {& X, r keep if avol>0
" D% Q# J8 W. r- I- F7 D- O
' @8 Q5 g6 T, J- X' @, q+ o+ V" F drop vt- g! R2 x! |" M5 s5 [# v! i8 t* d/ S
- `7 E# T; H6 _( o& N
gen vt=_n" H% ?2 I; C3 r1 i! v0 A: V
3 N3 l/ o( Z, \! N$ F( U. `
tsset vt
' ~/ n& d$ I1 L H: T4 G; r2 o
7 W3 M, T# u9 I8 \ _3 k, [. x sum v5 [aw =avol]: n% j& X+ ?; n. i
( o. h/ v0 C0 q* F6 r
gen amean=r(mean) in 1
1 n9 l3 W! z D' x. S
2 f, Q. n: k, ?, @6 j! | * 总加权平均值 amean
* z, `$ V3 a" b- g( x
% [% \% M% ~) l* U" f$ k& q) { % H, A: W, T6 g/ U# v
keep in 1/2405 G$ R3 W4 P8 W( E& \6 ]/ _* p8 @. n
, l, N& Z- f, N, n6 X# n sum v5 [aw =avol]# ?5 J7 i& t0 d1 A
2 ^0 [9 r2 H- j: a2 ] I1 S- J gen mean240=r(mean) in 11 G; }" g, O- u4 r, w' E6 [& J
$ I o+ ~! x7 n5 D4 ]! J h
*240加权平均值 mean240
7 R6 o D' a; u+ v& f3 j5 U ' m: A/ `& A' O$ R1 X- p/ Z
set obs 500 & \% h/ W( Y0 _
# R! W) p1 c) Q3 r, }
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
) o" a9 L# D8 }, E5 c$ T
5 Q* R7 m3 ?6 S" ]" Q- T E( { *240 kdensity(dx240 dy240)
. n0 b4 b/ r9 r4 U. j
- H2 D8 m! L9 A& P; p sum dy2402 B Y/ O1 J K/ q$ W/ b( m
$ M9 Z9 F- c) _' ?& P; Z
gen yxis=r(max) in 1 j5 D* ^! q& g6 r! E; y
/ U7 f$ p8 D h% @& M
gen yxis2=yxis/2
6 w& B0 c: T# m( I+ _$ e ) l: ]1 k# B) K y: a
*yxis; ~" E% ]4 I0 F' Z
: N' | z V9 K1 [0 D
gen dy240max=r(max)
z% i! K$ P; C! I9 Q+ D8 ^
+ I, K P2 y q" X" q/ ^ gen dy240minp=r(min)
4 }3 X7 `" V9 A1 F 7 s+ {" |- \- H7 E1 L" K1 y% n
gen vtt=_n
- L3 {6 `; @, t0 |- Y5 H
* S. N4 u" y6 v tsset vtt
4 J/ s0 N6 E% }4 r4 y: x+ y9 v
' o8 t4 ?7 J. \: k+ n: @ gen ddy240=D1.dy240/D1.dx240
Q6 s ~; B3 z' y
1 T! W4 R1 q$ t1 ]5 o sum ddy2409 {" ^/ x# x! _3 `' _
8 e& K% Y \4 w( ^5 f- p5 D) t
gen ddy240max=r(max)0 M8 Y/ V. z- y0 \
, ?: G, A0 @: \% w: x/ V6 o' U l7 j
gen ddy240min=r(min)
6 Y2 A" c$ ~( u! P( |. V % O) `1 ~- V2 W- ]
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( ]- N3 n( e: ^
$ k, D$ V6 c2 e7 m sum ddy240g
3 X' t E; Y2 c& Y% S3 N, p4 s! o
( I+ r$ { l& x6 t7 U/ { gen yxis3=r(min) in 1
. `3 q7 j/ [7 M6 X5 e$ d% F( p4 p " a) F' j: f5 B. X4 k ?) ]
gen yxis4=0 in 1
6 L/ M* v( d, { R # U2 S5 V. [4 @1 F! D! I2 [! `
*ddy240g
0 H$ S! r) G Q5 C
W2 ?0 p, w: k- B$ V1 }4 U+ R 9 B* l7 [+ L7 |% E8 l
preserve 5 D2 g# G; i/ v" t5 [$ U2 S
; t4 E/ ^" ?* ]) A$ E0 M
sum v5 [aw =avol]1 q( H1 w' E% M# V7 U$ |: K/ g
0 h P n, p5 q% x8 G9 C
keep if dx240<r(mean)
) i: h6 R* ?& C' V! C
$ C& Z ]9 x( E; r% t& G0 ] sum ddy240( f; x, `! v2 d+ B" Y
2 X. G' |& E7 S" o( L, ]2 ~0 J if r(min)<0 {* |- b3 u7 p+ D P8 d
! i* k7 l& A1 H o) G7 L keep if ddy240<=0( P0 H; U. V3 J7 @# u
' Y9 N" ~, f: H0 x9 S8 i6 m f count" O$ k: l. q+ x: @: m i0 X6 m
J7 g& ~! @# ~# |
if r(N)>2 {9 d) ?# I4 B( Z% u; g
, q& P7 B; E( g pkexamine dx240 dy240
$ U5 C0 M8 m/ S' n9 r$ m Z, {
! d0 l+ r5 ?5 Q! X0 w/ { local tempminp=r(tomc)( l' ]% @3 x2 x2 g( F# C+ C7 T& l
restore
* B T5 V+ B! r+ ^4 L( { ? }- I4 m, `" Q" F5 ~* K! \* B2 r
0 h7 m% ^6 ]1 w$ p% q$ d1 ~& X
else {- z& g8 c9 V1 ^% K
9 D+ S$ N+ J( k# y7 ?) ^ di "cannot find minp"
) X' q8 A8 h2 y2 S$ D2 F
1 V# M( j, [/ U5 N- P restore 5 k9 D0 R* K, r( o0 l
sum dx240+ @% D- o' z2 p6 D& ~" [$ e
local tempminp=r(mean)" x! J0 J3 u6 M1 }7 e6 v
+ b: q! g0 p3 p0 N$ G* z: N
}
}7 m5 v3 Y: w% D# f }2 b8 e. z* L" x
else {( w" p! |5 D" X, D2 X
0 K" a& }1 B* ~
keep if ddy240<=r(min)% `- b) Z$ @# o; u1 ^4 x- `
: O/ u! l4 k! N- L
sum dx240
% V/ x+ F `! |# K" @7 C
. g# Z* K/ e' i local tempminp=r(min) v3 v4 u6 J. v: @9 R
restore 4 ^1 M6 D& i8 D" V3 I2 _( j% t
}
% U9 f/ M/ v5 H- S( q) c! H1 T& ]8 e
) `1 y8 V, a2 K2 t5 B/ n( g& U
! V/ b; x( a% |- p: i7 I, s( q9 o
gen minp=`tempminp' in 16 n* l+ y3 Z8 }- x7 B/ W( ` o, b
*240 minp
n* R, J8 `& N; Q% {: u) X. e& \, B& |0 I8 m9 q, l+ ~' g
; s- ~8 v; ~, ^, z
+ T; E. \- ]3 r* C b: z8 d5 | preserve
. ]4 B4 e, w# q6 U2 P4 Y
0 s. s2 R9 y) Q5 `& ~8 p sum v5 [aw =avol]
: \9 D: n% v8 \6 @! c / ?1 V( O* i2 ^& B; c% h+ C( E
keep if dx240>r(mean)% l, l% ~! K3 R& o
K* S6 a7 M# C! |/ E sum ddy2409 ~( Y% c" e( e4 @( S0 ?' \& l
5 ]" b# m; `, P) [
if r(max)>0 {
$ \! P& Y& R1 A: o$ L3 H% _9 _ v z N( @8 ]/ @0 F
keep if ddy240>=04 Y$ n% P+ f3 ~* a8 C% B5 f
! E2 u- K! Q" E: M count3 f' Z# c) X1 M4 \3 t
m7 M1 A1 D8 Q4 O& G
if r(N)>2 {! E" w( X' I2 w; W! I
6 e' C6 ?/ Y4 g+ ?5 W8 }) @ pkexamine dx240 dy240
% D( B, v4 d t6 p! h- a: O 8 n- E( {- z H6 b
local tempmaxp=r(tomc) ; x) V3 D/ @7 `
restore
" X J) n7 q; N+ O6 Z8 U# t }
, G5 _2 V) J. |3 ]0 ^: U3 @ ( N+ A0 X. p- {/ }7 \! x* Y
$ B: h. ]6 l$ ~" e$ c# _3 i
else {
@' U4 e2 C% @, R- @: s6 L restore 0 z) L* t h- g! V0 H" v' [& }/ e h
di "cannot find maxp"
$ @2 Y/ P# T" A! V3 t* N
; k; x5 T) g- K# h2 ] - a( m+ ]% _! c
sum dx240
; Y c: z1 \. E4 Z- _. k2 v9 s local tempmaxp=r(mean)
1 g& W) e6 O8 f' q4 P- Q$ S \
4 e% s, m' G) i( F+ w; A }
& u; O W7 _ U0 f9 D1 w
$ I, ^+ G' C& `7 }+ H } C" i S" }$ Z( q* u
+ b" V- Q' @, r: \5 x3 M, C' Z else {3 N9 ~, |- O; w u `" ?, U5 K
) K, x& a+ o* E, o6 v keep if ddy240>=r(max)
# ~" ?) s" }. i3 L1 [3 R
8 Q( M) f* S3 _2 I3 J" N sum dx240
6 X5 k2 y6 S9 | 8 d8 X' @3 I( J2 y. r
local tempmaxp=r(max)
& \) V X4 Y8 M; Q" ?+ q restore
7 F: {; j1 x; O- m, J, ?7 n, Y }
' ]( K7 ^8 T% b0 |2 S, O $ g5 N) m8 S1 a1 }
4 ?- ~ W$ X- l# v) S$ }5 z3 T
7 r* p; j, J% K% p. T/ E6 L, N" \1 L# Q" V& Z5 e. U$ S! |
gen maxp=`tempmaxp' in 19 N* y7 J; Z! V6 F3 ~1 ?8 T- }
) ]" _2 |" w# v *240maxp
; L, @5 g4 O9 d4 f' ?
5 m/ x$ g$ A" [+ t3 ]" Z& H) O4 ~6 t # J. o4 ^ D! r; {) l
*-------------ddy240pminp左侧高峰值-----
9 C" J) g/ A: | r 9 t% @" m- d6 t& N
preserve
- Q. b$ J b( h$ t, d6 h4 R * a; Q. B+ A% o) ?
keep if dx240<`tempminp'
2 k) v7 H; |* O' Q8 { / l& y @7 S$ H7 f2 Y9 ]" f' O
keep if ddy240>0
/ I9 V) s* w9 V( A3 z- g3 ~6 ~ 4 B) g5 P7 n S5 c; Z( h W o
count' r7 { E! X- ?& w5 I
9 ?& D6 B! {' \# l7 `; t4 s- q8 q
if r(N)>2 {
8 B6 O; r/ R0 |0 i6 Q0 f4 v1 Q ) L5 i; u8 ?- o8 k4 ]
pkexamine dx240 ddy240 G3 Y. ^8 v: [9 w$ i- g7 D
/ P% ~ Y6 q- p9 t3 I1 J/ I* n* r4 i local tempminphddy240=r(tomc) # \. G+ O# P) }2 y! [
restore
# {2 N" y R. w, X! ?" C8 b6 \ }
$ N" \3 y& m4 W, P1 q : l3 B! L; V0 c9 K$ E/ G9 q/ ~
else {
# L0 @+ `0 l' x2 A, w# Y9 N2 ] restore 1 p9 Z9 f/ O4 x' W: k" ^) a
di "cannot find pminphddy240"
\- d# d0 l" O4 O! ~/ B
! r" ]1 w6 l7 N7 V2 b+ l# ]! k5 x
! i8 O! Q7 E( | sum dx240
' a7 o" U9 _% \ local tempminphddy240=r(mean)
$ W& [- H6 }& `7 d 0 c$ a& s. ]( j; u! I) t
_! `. d7 G- I- w7 @$ f
}
* b0 {& u) P) V
- J; _& z. ^) D$ H & w# D# G# j! T9 ~
% S0 f0 w4 ]! v6 U4 I
6 A( c% }& t" M5 u5 r& D5 q
$ n2 h' ^6 r: i* X1 s
: R y1 Q2 E0 q8 `( G2 d gen pminphddy240=`tempminphddy240' in 1
/ y! S1 r. L' n4 G % x* ]9 |3 N" M
! Z* u- f) B# F0 c8 o; Z' n' S0 G *-------------ddy240pminp右侧低峰值 -----------------' C ]* d9 X1 b# K* j( X; u( l% {
preserve + ?7 p* ^3 m/ z* [$ ?& N5 U4 j
; j' l/ h' J7 v2 S4 [6 S keep if dx240>`tempminp'& [7 B4 C" |, R. I6 m7 l
7 b! R# O0 c K4 H$ X# t
keep if dx240<`tempmaxp'
% C3 Q1 T% K0 [$ ]% _7 [- q 4 {5 j. T+ t+ _+ g% w3 E
keep if ddy240<0
: F6 m* v- p' r( y$ m) o
9 P, c- I/ ~; G: V( C/ N5 [ gen temddy240=-ddy240
& u. l! p* g Q% Y; k
9 V s2 u# w$ `+ s/ l count
" ^+ J, H6 j9 t0 T9 f9 K2 Z8 @# m# b
' u# X0 S, r- u! P if r(N)>2 {5 ?% c# R+ D; r9 O" N
% c. [4 t- |; @$ q# I pkexamine dx240 temddy240% l# Y5 r9 f9 F+ ^5 k" `
2 Y/ f& ~; J& M0 g' L; Q& g local tempminplddy240=r(tomc)9 e4 p$ C7 \/ o
restore( o5 c: ~( a; r( V/ E2 C3 z' i
}- x/ ?5 S. Y2 U
; Q9 e; `, j/ b) g3 w else {
`: f: {" U- D `% |- ?
/ p, q' |3 w8 Y* j9 c1 Z, f6 p) T di "cannot find pminplddy240") U5 a! o1 a- r
restore
- f7 m1 z9 \4 {6 K+ M+ T 5 j% S' q3 _/ @% d$ G7 Q3 L0 f
sum dx240
2 `$ c' D/ N0 ^% q5 g" }8 n local tempminplddy240=r(mean)8 h# h- O0 i5 _; p, o
# D) G! L% v! O2 C5 c. @5 b u2 U
" Q1 u. b4 Z p/ ? }+ a( L2 Q# f$ U; g
( ]$ v: Y5 V' X( J& G- ^: R
b5 l7 W! v. `0 c7 ^5 |
& L) }; l( r8 x) a$ T 7 E- s. N) ?; Z" K0 e
3 i9 [6 [" X# d# X% E7 G gen pminplddy240=`tempminplddy240' in 1
3 F' }. r" t) K5 X
/ T) I) Z1 k9 e" B3 @/ \ *-------------ddy240pmaxp左侧高峰值 -------------------. l. h0 K4 E5 h* F+ h
?' }. _( [; X6 D" p preserve ( s; F: D+ \" ~9 E
& o% O( U4 ^) p- W# h; d* X
keep if dx240>`tempminp'
1 A9 p' U/ G$ ]- J1 k+ I2 f @! o . s# k9 k! Y+ M; _
keep if dx240<`tempmaxp'
8 u# L s { @7 o; C$ S) o , C; w2 p3 j( W9 C
keep if ddy240>01 k" R' C' I- N! k1 m
count3 G$ ?2 i3 T0 ]0 Y9 e
2 ^' m/ W. z* X
if r(N)>2 {
* C5 ]- r k4 S" Y% d( C+ { . k7 F i7 v) o! T5 E
pkexamine dx240 ddy240
$ [2 J6 S: ^* X9 F1 M+ \
5 \7 U5 T) i1 `2 W4 I; t local tempmaxphddy240=r(tomc) ; p' t" Y+ ]! _; o1 h G M! ^
9 \( v$ T6 U9 J% { restore
8 T( L; D) i" x1 a7 f }! C& \: J1 Y" J' P* m, T# R
2 s4 X: R8 y" ^8 {7 [ else {3 `" U% W( j$ A7 @
7 J. r4 x p7 j: C" Y di "cannot find pmaxphddy240"
, t e6 H/ s2 L" Y restore
# X: s" t& {5 A) A& W 5 b! L. j* z9 `* N
sum dx240
( Q4 Y* B- G# e5 N! \7 B# a local tempmaxphddy240=r(mean) ; |# q) p6 {' n# e" K8 Y/ y9 s
; P& V3 H1 E4 }" J6 |
$ V" g3 P P, F }
2 `$ U- y! @/ w& g: y
! K) ^2 j: q8 c- H: b ]0 l: |& q ' k$ [2 d! y) Z
V$ H- p8 K1 j8 L! y5 ^% F* Z 4 ]5 {) A% v1 o, y Z
+ P0 u* M% u3 Z) v% h. Z" Z
0 @+ y, t j% v* S/ Q, t
gen pmaxphddy240=`tempmaxphddy240' in 1
2 E4 J6 [, L3 g9 B6 e' c$ \% q
+ V0 r( T! @2 i! j- r2 X7 g; J: T
8 K/ ^7 J. G& M, q! q *-------------ddy240pmaxp右侧低峰值 -------------------1 m: A- X j' h9 R9 C. u
) B$ @& k2 p; N& S3 M; r: P
preserve
6 Y3 X1 l: a7 J/ E : c/ `* C" M6 z, R7 x3 W
keep if dx240>`tempmaxp'
7 h8 }' V# F" ?; M( I" i: E q& B4 B
9 j/ n- N$ D1 K gen temddy240=-ddy240# S6 {' A! B/ @% F( [* w% `
# t7 n8 O$ m8 H$ o keep if temddy240>05 I4 C: T$ c' d( G6 Y; ]
% V" v9 m$ J% a7 R; T1 [" ^
count1 v8 H% ]7 T6 k9 i
- I. z: b. Z! A5 \0 M, z; ?( P2 \ if r(N)>2 {
3 @( S2 `2 W( \7 b
8 A) t& ~3 x/ Y4 [ pkexamine dx240 temddy240( L/ o5 A' w# U8 t3 M5 @
5 u: q4 n1 s& u local tempmaxplddy240=r(tomc) 9 Z& t1 G! M+ X+ m% ?6 d
restore
3 {/ Z" D( m1 ]& K0 q }
! ^* k, v7 S i$ ?5 _5 @ / c" D, q7 X$ S5 w+ S; p6 N% q3 o
else {
0 e% ?0 Q& k2 h, H restore2 H/ ?, \% a) I$ M% j
di "cannot find pmaxlhddy240"9 Y+ d7 I$ l( k( i1 E( P7 i
, W0 f) r% n6 U) \3 B
: B0 l5 K0 y, X- L9 z0 F5 Z6 v+ R
sum dx240
0 b$ d, V+ F2 D: H& F- Z+ [ local tempmaxplddy240=r(mean) in 10 o. H. ]8 v- l% O; Y1 O
6 z, J! Y6 ^4 C4 w- W- ^+ O) A6 \8 f
* w5 [! u# o3 i7 Q
}/ ?: U1 Z& t1 W- L+ s
& _! K3 I+ f5 ~5 _6 F6 T
) ~ v9 k, L+ ^; P- j
5 j2 _& I) L+ Y3 U3 u t) ~4 q+ E- u* y
- x3 r1 a2 P' j/ v5 V ; k' W9 H+ C d* i6 L) S( @
gen pmaxplddy240=`tempmaxphddy240' in 1
* c% ]( T; X0 l9 D, o * G* @8 X0 T/ @' v
*-------------------------------------, ~* S4 @7 {/ c- v5 T& H: a) h5 l
! J* C4 B' c, S; K0 ~/ @1 ]
gen price5d=v5 in 1/20
% S0 ~: b2 N5 \- q $ h7 I) t, G3 R! B
gen price5yy=_n in 1/200 K0 D+ V' B; v
( T8 A4 E7 v' B* p; G gen price5y=price5yy*(dy240max-dy240min)/20
& S. |" N# L" V' `3 x U8 u
- Y) s/ B# b! D *price5y &price5d
1 V3 l6 W3 X/ V ! A9 P$ F! d* N, ~ q, l2 d
gen priceny=price5y in 17 G u9 b( b- @) A I3 I
6 g( H" m# x. c. o V( a
gen pricen=v5 in 1
/ F- T9 G! U' m; }: X" I3 x% B* h, s1 S, v, D& x6 T
* ^8 E' _6 x) |/ r
*priceny &pricen
: ~2 Z# V$ I, b4 y0 X * ^$ ~+ `! S/ l0 n @# N
1 J7 w' P: R8 l# P *-------------------------graph------------------% n- [$ e* V; h% W4 n) s
& [+ _) h, q! 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). l B3 G% p S& t7 h$ ~2 l
0 g; h$ A2 Y. W* e
* ---------可选项目----------------------6 @( U5 d! w! a0 l2 H/ B" m
' |. @: O+ W* G4 [+ X# J8 I) Z! C
}
+ M1 H. w! f! }# P2 send
3 i2 D+ G% W/ P! d! S% I) w |
|