|
改了一下,这次运算应该没啥问题了8 ^3 j# F9 ~$ B! [; N3 U
9 O) ?. A& L' t% t- ~
3 Q/ J) i* U1 z" G5 N* @
capture program drop hello
2 n/ P; Q3 ?" m) ^* J9 o. ~
4 i; P I: w8 l% n; b8 |( dprogram hello
0 F# }3 ^2 k# u) H, Q0 M
# f0 H: x$ E7 c( j6 D quietly {" S3 J) k: c- w1 ~
& P: h; `1 i% ?4 N# g$ k, [clear
! ` C( M4 `4 Q5 C3 s, c1 S: j$ r+ y. J+ ]# _
cd e:\finance\stock\20110101\source3 S$ ?1 b1 V# U. X. G
( _1 ~/ l: S- v8 z
insheet using `1'.txt
* v; l. j z9 ?7 e4 {7 J+ k+ F9 {3 w& O
keep if v5>09 U( L& f; V) g
. A& G3 R4 `( _: l5 I d; ?
gen vt=_n5 P+ R4 f5 ~+ x! M" ]$ p7 p7 c
! a$ j4 m% | X6 c4 ` T: w5 D0 y tsset vt4 N( O, p% _) K
0 W. M) ]. I4 U5 d7 L: _8 W gen zf=D1.v5
& a) U6 I7 ^: p: t3 @/ G( a7 P4 X8 M, ^$ S5 y- Y# H
gsort -v1' U" \" U+ X9 [/ N9 O1 }
; W; r/ [, m/ _: w9 x gen avol=v7/v58 t4 \: R0 S$ C j8 L& V
/ I1 T: k# n& J: S) r: P keep if avol>08 T& v" _1 o' v# M
- k% O& p" j/ |) P% F, c drop vt
# ^% T$ V3 k0 g2 O
T# P# v% c" l7 k7 j, O& b, ]' X gen vt=_n
% ?4 n9 p0 r" [" D 3 q( Y" u& Q! j
tsset vt) A6 l$ n: d* O; M# q
, s1 r, `6 o' Z; x sum v5 [aw =avol]
% ~* [4 L* a! L; O7 i- W! r4 n1 e1 L4 m3 D/ m
gen amean=r(mean) in 1& a; u6 x$ _7 p3 ? V: l0 I; e; i: d- B
# K5 l+ ~: `/ ~. f
* 总加权平均值 amean, ?' i5 e' G: l6 C) V; ]
/ ?2 q M# ]& c' e' T) D( \. _% Z
4 b' J8 b$ H6 c( h
keep in 1/240
; d. W+ s3 n( C, A- C1 ^$ [2 E& r8 F% b6 i7 m% q: k+ O
sum v5 [aw =avol]& c$ N6 X; G+ ^7 D. \
2 O& [1 [1 q7 h7 w
gen mean240=r(mean) in 1
9 {' W0 X! A$ e# u) z0 M6 J
3 }4 V' m+ I2 h# v *240加权平均值 mean240
/ G0 _$ s s2 w. B
# V* t& ] x ? K$ a; T2 t& u set obs 500
/ v0 D3 e; {. L0 G0 Q) `2 h2 S 4 ]6 }3 [% A8 m, T# L0 Y1 M
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
( `: E i* i1 `5 f0 a( P 0 G1 H: V$ _1 H6 w# r+ G* B* U$ c0 R
*240 kdensity(dx240 dy240)0 l$ U: w+ o. `; G- d- I
6 z0 X$ Y9 v4 ?- f1 u2 f: C
sum dy240- p2 t1 g! m& g, f: l6 v
a* e0 [. j: `2 v* u) F" r1 B
gen yxis=r(max) in 18 [5 r+ P3 h3 m
$ Q7 h, a: V5 `! x/ T! t" o. B$ E% O
gen yxis2=yxis/2" A3 h' W9 Q& U
7 p3 z A' V/ M *yxis7 v: Y6 I1 \. Z4 I; _
% X+ |7 _: K3 z0 o gen dy240max=r(max)
! K1 F- P9 Q' T2 x/ p* |
. ^$ v5 F3 s$ [0 f; C( m4 F% Z gen dy240minp=r(min): I$ r3 n3 S4 X7 s# F
4 P! t) ]9 m3 ]( U4 U) t; k gen vtt=_n3 z% {; u+ O+ D- I
. N( V4 R) p* m7 O' s" F, ? tsset vtt+ r- \3 G( E, ?. A6 p# _
$ i$ F' D k# _( |' z0 d
gen ddy240=D1.dy240/D1.dx240' j1 N* c, Y* d; B7 \9 q4 Q
7 {8 T" Q# F6 h* x; O% g sum ddy240
1 ?7 v k: o6 G8 d$ ^. H4 M
% J( e0 v$ K: v7 q) @ gen ddy240max=r(max)- g4 i7 Q, V) a8 R. u- ?
0 m7 r' u* p! b! ^& |
gen ddy240min=r(min)
6 `# u" V) X- Z - O' Q0 K' H9 ` M+ N% c4 a# W+ k
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
6 v: v, @6 }& I4 G. N2 L7 e
$ S @) J' f, a* |5 J/ O sum ddy240g
% k. O6 S2 n1 ?* Y3 A) c( R/ k! d * e1 ~! }2 d$ t8 C
gen yxis3=r(min) in 1) v9 @' z# g3 M; ^, r0 X+ P
/ x# ], E! D, h! Z7 D6 ~
gen yxis4=0 in 1
% p6 y6 n' ^% }4 I6 B : [9 E1 d: g+ c& E& N
*ddy240g * [- `" F% f7 y* U3 O z# D* o, w
( Q, g! ~! r, u4 A- O
$ d! _0 P/ Y4 m( U% x preserve
1 p- a" y, ^% B+ @
b! I+ e1 x$ J% ?- P- U6 I+ _7 @! l sum v5 [aw =avol]
1 p: S$ z% Y0 O1 w/ P E" j7 S 0 [$ `+ N7 T: L
keep if dx240<r(mean)
8 W$ h2 E r5 |' ?! [2 l ' u: i1 ?$ N' g' B
sum ddy2401 M( w6 d& F. Q% a! q
0 u% t9 Z4 C2 C$ @& K
if r(min)<0 {
: J4 g6 s& \* w5 ^4 L
, j W/ m# b( f- d- e G0 |7 X keep if ddy240<=0
8 ?. ~/ v; ]' |0 T* h9 ]
# t. E& m) P5 B+ Z count) S) V% m* n) v6 G5 i
`1 D# ^ r" j+ e! u: L8 {' ~ if r(N)>2 {. \7 t7 L/ m8 D5 }2 ?8 _
5 A4 D6 Z) z3 r& V9 e! y pkexamine dx240 dy240
; @* O5 b2 G( F# v ; w0 J) v& P1 g* U( e( B6 z3 E
local tempminp=r(tomc)
# D, q2 |) N$ p* {" a; F3 C! X restore
, ?* o0 S! g3 L6 [& y8 [ }
! i% F$ u( p( v- R; }6 E: O , U6 u; b3 j" r1 Z
else {
! |+ \ a' s* D1 J. U4 k# J- J ) t, J! m* ]0 S0 D* I6 c
di "cannot find minp"# I) k2 e3 g) x2 b: [% a
5 F% d" d$ Z+ @0 [) M# ]
restore 0 q6 D# L3 u8 v( j1 z
sum dx240; `6 J! |, _6 i
local tempminp=r(mean)
7 Q( ~) M" Q" x, b 4 c. D, q ]% @1 b1 b4 @5 U
}; F' b1 G2 m1 e, T
}
+ P& S1 Q& t8 k x# v else {
j; W! r& p5 d$ n/ e' B4 ~$ W
. d& l" b, p2 C! c+ V$ c3 `+ C keep if ddy240<=r(min)' A! K5 D% t8 Y5 B, b' r
0 \8 y9 {" D3 N
sum dx2406 H9 \" t" t0 P6 Z9 a% t( q/ L4 I7 E
9 u' D# @1 U3 V( c$ @- s) \4 E local tempminp=r(min) @5 z) x) q+ N, j# H& K
restore
! @$ ~6 ~: H+ x# u) O }) V: t# C8 K4 C ~4 b, J6 r0 C8 M! K
& L) p |, d+ @: K, s
9 }" ~$ z. X* s% E2 u, e
# G5 M5 c) _9 f, X+ B
gen minp=`tempminp' in 17 G/ Z/ T* {) |) e$ Z
*240 minp
, m2 o8 g" e5 u2 j4 h* Y" s* a3 b2 o9 u7 L! l; { r
( A& j5 A3 Y, _
6 W1 r2 ~2 P3 B+ A0 e) }9 F preserve , u! _9 d+ \# L8 c3 t, ~
) u G3 V1 W" i sum v5 [aw =avol]7 W8 s) P& t7 f6 W# D- ~% K" v
! g% |5 T4 A+ _: J2 E
keep if dx240>r(mean) F( b0 K0 U3 A0 [% R) b# `1 @+ d
/ f$ B8 g5 e; v$ ^# d4 _3 I sum ddy240
( e* z$ \' G b
& z" V; ^! [7 y4 n' p if r(max)>0 {2 J4 U, N. h4 W4 j3 K2 l8 m
# o! L! |# ~! z% Y2 P. m keep if ddy240>=0
8 |. N- D; b1 R* M2 t1 p5 A / X X1 y9 _% v2 l/ b
count
7 m: ?* S1 b& ~) N4 ` 9 \, {* \/ h/ N- T# p& T8 u$ n0 d
if r(N)>2 {
$ b% k+ b3 x; R: W/ Q( U
0 v1 c: D! j" E( ?' i, _ pkexamine dx240 dy240
; Y L/ h( ]# i: I
" Y# `3 I& p* Q H1 W local tempmaxp=r(tomc)
e' C/ Y' `5 u7 C# \" m restore
, D, H* \7 F3 K% x) r }
. U- [4 W& l: e0 x/ j" g
( [5 M2 m% E" x5 t2 U9 P/ F/ T* l & \& T& J: L- i. P2 e4 M2 Y$ e
else {" P) S3 [" y& ?0 ^( H; x) D
restore + t2 ~( N8 T' n, t2 R
di "cannot find maxp"5 k" g( S5 ]: X: o* R* `
: J2 r/ M2 D6 D$ v1 t+ c
7 |% W3 o, F% E/ }* `
sum dx2407 F# g9 U# d4 q, C
local tempmaxp=r(mean)
, X' q2 ~ }7 I- M$ q
1 I0 d6 v, U; y. t7 w3 C2 J }" |/ S" i# U: e- U7 ~ F1 k; Y
2 ~, w3 [, ` S9 L: ] }6 O, k4 k0 G9 ~( R2 j& M& _/ c
8 R; ?$ Z$ Q4 M; c2 b
else {6 T* i+ _+ {6 s+ L; V2 x
# }) y2 p) ]# C keep if ddy240>=r(max)5 ]7 s$ |) b D0 v4 @
4 \ b% G, l0 `) o; v. I
sum dx240! [8 v! E) o, P$ } K
2 G' G! ]2 q/ I# S0 F local tempmaxp=r(max) : G& {8 }7 V: r0 D
restore
3 [) b* ?1 a9 R- B/ @ }
: I; |5 Q; s: D. C( L) A
6 t. T# j, X. m+ B, T( r8 U4 T b X6 J% }* P- a
! `; T5 T6 i! H+ m- t/ Q4 K
: g2 I$ `" T( Q
gen maxp=`tempmaxp' in 1( d3 L5 g* q6 I2 K' M q) @+ q
5 f+ {7 Z* V; x: p3 G1 h# p$ A *240maxp
/ l/ P. j6 H0 T, J
$ K! [: V; M% `" |( P1 K " E V2 {6 z$ n
*-------------ddy240pminp左侧高峰值-----
5 X+ l2 i4 b( V, V
# z) v% a$ p0 x, ~1 Z/ t1 c/ q0 m preserve
! @$ R5 h1 w+ g8 A6 j. I3 {* Q2 w 3 E( @( x! v& o, s) A
keep if dx240<`tempminp'' P2 c) `/ I% q
, q L8 ~! b l keep if ddy240>0
1 x# ]. ]& b# S/ a
1 c z6 C) {8 w0 N# s% u0 Z5 {' O% S count4 \9 z- G: Q S `- j
3 b+ S3 z$ O1 ]3 p. o3 e; _
if r(N)>2 {
+ g9 b6 x- k3 U1 X0 ~) X5 U
# i; \5 L) O2 s ` pkexamine dx240 ddy240
! W- j1 W) I* ^: l$ W) { a8 ~: ^ 2 v6 ]! }1 u- [2 a
local tempminphddy240=r(tomc) . N) V% h: ?9 H- G3 f
restore
" y2 ?- t, f5 |% H+ y1 y }. g" Z/ e7 f8 b* _6 L2 I
6 E7 h4 w8 l- {; h, R: L/ W
else {3 Y) t$ d4 T3 x, q
restore
! |0 x# v7 y; l) Z/ }! [% T di "cannot find pminphddy240"
% ~# V7 N; ], T. Y* K- ]7 Q1 c
' J8 @& {6 [1 M# u
, a" m/ a& K: S3 W sum dx2406 L7 u: z! @0 W- ]
local tempminphddy240=r(mean)
; X9 Q6 q1 I3 n) z7 ^ % B$ }. V. j. |. _. q) i1 v
& S$ c4 P# q5 j5 v& G. j2 P }
+ L0 ]7 ]8 E9 Y
# |9 n9 C. R( T+ i
$ ^4 v3 h3 t) ?
! S8 M( \) s4 D2 L0 o* q# h * Z( ]+ j8 h1 b; C% j+ v1 E% ~
, ?. g2 _0 P7 x& |3 t' |
$ u: G2 @) t" x9 E$ D! O gen pminphddy240=`tempminphddy240' in 1
% v/ f) l* h8 |" w+ [' } 4 {+ J4 e. g+ N% a8 O
' i' P# @6 C) v
*-------------ddy240pminp右侧低峰值 -----------------9 b3 p( [5 g- N" o1 S4 O: b
preserve
2 W/ f6 V* s7 b1 G, D: P% M+ }; p % i& D0 h, F0 n
keep if dx240>`tempminp'+ `. [' }1 T0 ?: _: n# z3 Y+ ~( b: A5 t
0 J3 Q' j; E1 j7 Y
keep if dx240<`tempmaxp'& \) o1 ~ U' _1 i
: z4 B2 b4 Z4 d5 t- u keep if ddy240<0
( F! J$ W: M1 r& m
: n4 @$ ?; J- i9 y7 e# z" T9 c) o gen temddy240=-ddy240
0 J$ j1 s& R# x, Y( N) L$ h 4 Z! Z7 p0 R8 M3 y4 G% ?, C
count
' F' ?+ ]) j* h' K$ B: H6 ?0 g3 Z
8 K% N' @' U, M% d+ r7 z: t if r(N)>2 {4 X% H/ Y9 l* g, q# |9 h5 [
% }/ T2 W9 {% u9 ?8 _7 |
pkexamine dx240 temddy240
) }' @2 p0 E$ y$ m5 U) J3 M % p2 v3 ], k- W" g3 \ Q
local tempminplddy240=r(tomc)
8 ~0 @) x7 B) y* a7 x, b9 i restore
' W+ Q3 b$ i% V" o4 M& k% V! L& A }9 J$ U( R7 G0 ^ f
: l: Z$ w: t2 j, }7 s else {0 h% J$ T7 c7 k0 A& A" A
7 Z& k2 j- C3 k/ D Y: D
di "cannot find pminplddy240"' C2 T9 J- x, T2 U, V& x) a
restore9 W; }. \8 y. C. H3 e7 x0 \
( C6 X3 g- f! G" u' ?- h l/ c. } sum dx2400 ?% z- D+ t5 `4 d, K5 k
local tempminplddy240=r(mean)- v1 U6 G) t* ~: I) Q+ c
; l+ t* n. n/ O: |+ U
8 G" O, \ L$ |8 i& q5 I% [
}' e v" g1 g3 X( w0 u, a' H. Z
; Y: ~9 M6 N1 t% p
5 c& E; ?0 A9 \! j
0 D% W( S6 m7 X1 v/ X5 u: K: V 4 V+ |$ @. r) u* x5 E j+ z" j
! D m/ {' E* P+ l p# T1 T
gen pminplddy240=`tempminplddy240' in 1
# V$ s) o% y1 |1 o' C
8 a$ V9 [% P# W: ?9 t *-------------ddy240pmaxp左侧高峰值 -------------------
) ~! i% x9 M+ z b6 Q# [ [: o 5 b% J8 p* u- j
preserve
H. {) }& d+ x" g; H ! k2 U+ S* _+ {# ~1 Z. V) _
keep if dx240>`tempminp'
+ p+ L, i- G) n- l* F
K- n- B2 ~9 o+ N g+ ^ keep if dx240<`tempmaxp'
1 x% e2 r) N% A* D
1 O U: K5 c- M: _, X& v keep if ddy240>0! n9 q; w! ~! p) s
count( h, M, R+ } f: y8 k$ h
) a8 ?* i) `( j' t% z5 g if r(N)>2 {
* Z/ U* q) y$ L" [2 S6 r/ t - @' ^0 z. U' G+ O' |/ L" T( E5 y0 H
pkexamine dx240 ddy240 s+ a! c6 L" x, s
1 M% r3 Q; k4 p local tempmaxphddy240=r(tomc) $ R3 v/ k7 |( u! g$ {
[4 q, T4 d; Y1 J7 l ]
restore
# r5 p U, \5 Q! |- ? s }
3 M! \; B& j2 u } " d. T3 z6 G0 l. c* n
else {- Z/ r: y- L( o7 {1 F+ J
; q: U% ]* i2 U; A3 M% \1 q- j2 W, l di "cannot find pmaxphddy240"
: M% j6 e; x" Y# V- ~ restore
" `* L, f# }" x; M0 o' A) H+ u 2 x6 V/ e1 @' }. x4 A9 i
sum dx240$ I- `" p r3 u8 R: r
local tempmaxphddy240=r(mean) % X& G3 F- L$ Z3 O6 l! H
/ X9 w% ]. a; w6 \5 ^
/ }8 j1 [% q( _3 g* e5 T5 W, I1 w }
9 f; b. n" W& m" ]1 f5 I; V" i
" I" G9 k' }+ @
8 A4 p9 s# |- e& z
+ C- v& m P9 ^# @( ~
s* q4 J/ N9 B( Y + K7 f( C6 @! f& h
! P7 r( c( J1 S) D6 Q( H gen pmaxphddy240=`tempmaxphddy240' in 1
1 Z& k: u3 {5 l& {. A; E, R M! ?3 ]9 u, A* e8 R3 x, h! Q9 E
! |2 P& d: h9 C2 {2 e
*-------------ddy240pmaxp右侧低峰值 -------------------0 J& x/ @# ]5 ^. k
. j- @8 Z2 [' x4 W( q! k- X preserve # O: K9 N4 f" y5 Q- M
0 o$ P, `- ^& k7 Q J$ { keep if dx240>`tempmaxp'1 h- g9 T) e( @8 Y# w G% i6 |
2 s5 `! O4 Z+ S( N gen temddy240=-ddy240, b2 N' N& R f; b* H0 s
# w6 F$ N- _: v& K/ j4 ^8 d
keep if temddy240>02 k( D: q% \! t. f; w7 P
" K- q. Y& w. w5 t8 C, O, g count
6 P% i1 F: z- T1 T. m$ w- ^
% [6 I, {* Z; k3 P3 c1 _5 a# Q0 [ if r(N)>2 {
0 l3 @. N( Q* b7 {, Q5 l 9 f! m7 I6 p) T% d8 `
pkexamine dx240 temddy240
/ A. _8 s7 |7 _3 v2 P. W: W
: G# o6 D2 Q3 O( p/ a local tempmaxplddy240=r(tomc) . o: A. t' o. F4 O* k: {8 C& f
restore4 s! O6 V) C7 v0 ?
}
! d3 M0 D- k7 f4 v, q
* c: O: f6 M* D# {$ b( c' l% X else {5 A6 {/ N7 _ y" t' }
restore' u; s! U2 p+ c" Z7 \/ L8 Y$ n
di "cannot find pmaxlhddy240"
2 [+ k4 ~ d# _' w2 C 3 y6 X5 k+ }' M9 J0 s7 b. h
8 {+ u: m7 V/ ^5 C2 E sum dx240/ s+ L! }! m& P4 c
local tempmaxplddy240=r(mean) in 1
# n( y8 S+ s5 U1 T" T. j & z+ g6 s6 `% o0 @& Z& r6 d
; O: J% ]8 m; M# P2 q8 ^ w
}6 s: P$ N% M' T5 w
! I' r5 }+ Y1 j" v. w- ]
% I( I: Q2 z) `3 U# P# o. v
2 r$ M) O W; b( W. }0 G8 E " i+ W( ]4 Y9 }
& A! n' I, ^9 X% V$ K4 d
: I% _" ^( r4 c2 B1 C& o
gen pmaxplddy240=`tempmaxphddy240' in 1) s: g8 d7 h2 G; |8 Z
' o8 v; T5 C' w# w2 h
*-------------------------------------4 g2 {# m! O$ \' ?* z
+ _: s$ y, J# h1 p" ?$ s
gen price5d=v5 in 1/20
5 |8 J; d! D, @9 `& p% ~$ s" _ , N; [" v5 o, \+ q4 A3 ~; B
gen price5yy=_n in 1/20, \" ~/ s) R3 w" }" P# I; {
! n9 W; n0 p5 }1 D' m' P gen price5y=price5yy*(dy240max-dy240min)/20
- y; A+ }3 v8 M# E
! b6 s a; x0 u" l$ u) Q *price5y &price5d% I1 M( y% D# c" ?# R4 y6 W
* \6 f+ {$ v; } X# R gen priceny=price5y in 16 |- N# ~) E: t" \% ~
( J* y) j' {1 s% J4 ] gen pricen=v5 in 1
3 O% _& y0 o c/ f7 _9 t
. o* x' a+ H F" a) `4 K( p
: A! n. n% |& L/ w *priceny &pricen
2 W3 B) j2 }% M {$ f; F
* V5 \! _) t. a ]5 W
' q2 k) M: _$ Y4 E3 n *-------------------------graph------------------& g' e' h8 J; U- K# ^6 T
4 U* j7 N$ j/ c, b
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)
, X) A/ j7 b V# z9 M+ J( {* \1 j! V: o, a
* ---------可选项目----------------------% ~ U' L0 E/ l s6 {
' d- C9 M7 T2 t5 `/ C- g
}. G/ ]' { Y, k7 M9 I. J
end& G1 {" ]$ r$ p3 _) c. \) |/ D% P
|
|