|
|
改了一下,这次运算应该没啥问题了; |: l( F) k4 T
+ _7 V# @- K2 t2 p0 F0 l s
% I3 P. g) n% g0 B. m
capture program drop hello4 y1 ~$ A5 P8 n" \5 R
8 |/ B: Z( X8 P% B' `) P4 nprogram hello5 S% N Q- K5 e
+ m: _/ Z+ U& H Y quietly {
, q- P+ _$ a$ |0 x" o" y; a7 \: H. Q; \
clear4 _9 r7 C$ `6 ]- J
$ w: G7 c }0 r5 x, }
cd e:\finance\stock\20110101\source
2 H& s M+ }$ R6 j# k4 w2 }, Y6 s1 Q1 k& s& @+ K$ J9 w
insheet using `1'.txt
! [; z v m x& T0 Y3 n. Y$ g- |1 [
8 z& ]. U" g3 ]4 ^3 [6 t keep if v5>0& B1 q- x& k, ~, O) o2 X! K
6 {9 c5 B% R, C9 l gen vt=_n b5 F! p3 C, x" K+ |
+ L3 K# O- ?! r* F! K
tsset vt( ~8 x$ f% H* Q' b- s
5 f# Y0 s0 q0 S# ]5 Z8 W+ N
gen zf=D1.v5
- j- ~2 d- O2 r5 w& c
0 K1 h5 a; R* x gsort -v1; J$ l9 ?# b; M" ?% Q/ _6 E# X
$ s& `8 T d6 f6 f2 F; m
gen avol=v7/v5
! F# u5 C' B: C7 p $ g2 @/ J& R+ |: D- p. Q8 E6 z
keep if avol>0
) l6 |" T' W4 B& ^
- ^1 B6 E0 l4 s- I drop vt' {2 p0 }) Q$ L
% t: {# J7 n+ x( c# D3 U4 ` gen vt=_n# C7 Y, X( }) x: Y. p
, _0 M- V8 t% l1 y, P8 z tsset vt
* ?8 k. q$ l, v4 p 0 B! E) w7 f$ c0 R
sum v5 [aw =avol]
5 `9 h' w9 c4 i! A' g
6 S. w6 [9 B% S gen amean=r(mean) in 1, Y/ x G6 X8 {6 A
- I. [, |+ M* p0 L * 总加权平均值 amean7 Z& b8 o M( s( m1 j2 C
" a" s0 s. p/ V $ V% Q* Q2 O; E0 d' W
keep in 1/240$ X3 {- S/ P+ m8 x
4 A" b* W4 S" `# r0 r, d
sum v5 [aw =avol]
+ x3 p6 ^. a, G3 L: v
* M8 ?- I* n, o( v8 G gen mean240=r(mean) in 1
, F! p+ {1 A+ q( r0 c0 N4 Q ( p, }& E! Y0 y/ j
*240加权平均值 mean240
: v4 `7 y: z) n1 J9 h# Q( g
, w$ A' @* ~, @0 c9 Z; Z4 F$ } set obs 500 % @; H3 R( L" S
$ m( h# B' R- a) D/ M
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph' E$ Y& {' d' I6 Z8 X
/ V1 {" s3 {* ? *240 kdensity(dx240 dy240)3 [6 s+ B) E- g
Q( v5 y( {+ E9 F; O. R, g sum dy240, C- u# V5 S6 q* M4 O+ c1 b- f
j+ E4 J5 Z& |$ K3 I7 s gen yxis=r(max) in 1
. ^( \2 L4 U. h / o3 v/ Q6 S" ~1 P
gen yxis2=yxis/2. Y# V, M- c6 A K
9 e: L4 g( P/ ]" Y5 R! `( T9 ^' H2 P *yxis$ s: E3 I# k5 S% t
1 y: Y5 Z( S* Z9 k/ H* ]$ _+ z9 X1 c: z
gen dy240max=r(max)6 i* T+ V9 ^+ ? r; r2 a `6 Q, I
% b: U( O1 r4 U7 N
gen dy240minp=r(min)7 i6 v- m1 V- F1 B, F6 u
. F3 [) C) g1 Q0 |2 a' L) D gen vtt=_n
: p7 u( a0 i( g9 [: k3 }% f+ @' d8 @; Y8 p( ^' x( T$ k
tsset vtt$ W1 h5 w" s% [% Q, T, e2 u3 b) F
y4 {8 q. A: s4 P# o+ i M' \
gen ddy240=D1.dy240/D1.dx240! s5 A$ \+ g: c& N+ w
3 p# P! @4 T; S+ N9 \! o sum ddy240' B5 w# L6 x3 \- g4 s& X) j
3 V! L; [3 X6 k7 u0 o8 c0 W! l
gen ddy240max=r(max)7 k, v" u; h1 \/ W G4 l8 W) d) C
1 O+ {+ f2 O* G; a- M5 |
gen ddy240min=r(min)
4 y! L! m9 a; u- i. T# q2 ?
7 U! V3 ~" `2 t- ~' \* b gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min); U0 x% |4 Y4 ^* D; Z
- S& g8 ^- b& Y8 q5 l sum ddy240g
. I7 |# r( D+ V " h! k* [. L' i! ^- u/ {8 r
gen yxis3=r(min) in 15 |0 _9 i1 g0 T! {* _4 ?
% ]: m) h! x+ \3 j( L gen yxis4=0 in 1
& n5 x# \+ a; d
8 \% x0 A) j, X+ K1 o *ddy240g
# H- Y, d; B) `: W8 M+ x; w 5 c( G: L. b* W1 c
# l5 a g( F% H6 ^; R' H, z preserve
. a. L" H8 c; a O! p m0 s 8 u x% {5 b$ b3 K
sum v5 [aw =avol]) a* y0 |) B8 j' m" Q
4 l1 I; I% m; o3 E% H: |$ r keep if dx240<r(mean)" V' s2 O4 r8 Q6 E! D
, D0 _2 n; n) N
sum ddy240
, {: q/ J1 b( v( b
8 b- i6 p3 Y6 `6 U- o( N1 _% ~ U if r(min)<0 {
7 k+ q# B' {$ g. i ! q' e7 U4 `& j
keep if ddy240<=0
. R' _# A; h) d & v7 ?1 j1 w5 @$ ~. z) H: M
count
$ n. @, f: ^- D, P
. h9 R- s2 h0 Y4 K if r(N)>2 {
# ?- h P# {2 v " b" S" G3 e0 ?; A8 u! I9 `
pkexamine dx240 dy240; I1 N8 ?8 r' b
3 J. W1 V8 d/ Q. C* L3 A local tempminp=r(tomc)( @6 A+ K( w7 I5 |5 O2 @
restore
' F3 a3 s7 n$ X# x' J6 Z, C. A }
7 y6 u; m4 @5 P, j" s, O' L
! Z7 E% X+ [. u# R" k: C9 ^( r else { d0 }3 t. @8 ^
- t& f! Z8 Z1 E5 d" l9 z% K) q" |+ a
di "cannot find minp"8 L. ], a. H$ u3 b# u! S, U
( ?" _5 U" u. y8 X restore
, a5 O/ S+ B3 | sum dx240
( I7 i* F2 K% {+ v# J local tempminp=r(mean)
" J7 B2 V, \, C Z1 w% P: x. z
" a) ]! c( h' }( y } k( k: o; k, r% E
}
1 K2 m, s4 F& ^5 Q. r A else {: s8 a. q/ j' Y* ?( e+ E
4 R3 c9 Q+ @8 J6 v
keep if ddy240<=r(min)
$ _! }, ]; Q/ B L' ]
# t! D' x: U' }5 k3 N3 @3 W sum dx240% `; ]1 N& U# m
* m$ n& }; Y( ]- |
local tempminp=r(min)
! \( r& K% J% \* Q, w* M. W# j; ^5 P restore 8 G8 i; H! s B( ~ W8 {" Z
}8 T7 J( y- F1 W9 \5 }! C( C/ }% T! V2 R
1 n! j# I" |% p# ?
% e1 K( r s, G
, g8 W" i: f( |& F) h0 X gen minp=`tempminp' in 1
: k5 Y1 |9 T4 i, ?) c3 r *240 minp
6 S8 c1 Y: m- q/ T! h
% r9 V$ _, h# W/ E g" B
# _- j0 m9 D/ ], @2 e & F1 _0 k, c; Q7 Y- O7 A
preserve J; `" O0 r) Y5 O" w8 R: v
) C; s+ Y. p- C8 a2 V! b sum v5 [aw =avol]4 x8 x; ?$ J2 n7 x& K
- `9 K9 E: J+ E% }0 J keep if dx240>r(mean)
- l e: C- H! X @/ n) Z & R: o% w5 X+ d B
sum ddy240# z8 d5 C) v, I3 w" j, q/ I: U9 O
* z. X" r+ g0 A9 @6 c
if r(max)>0 {0 [: g& S8 l9 {9 A
6 [' Y! S$ Q3 g- t @0 g
keep if ddy240>=0
7 W4 K( @0 Y0 r" H5 ]% a# v: s
* V7 M0 \$ q* I9 Z' \+ T count/ m8 e) U I7 F5 n% a2 ], `* s
: }- H9 B n& W' Y if r(N)>2 {; v; X4 x$ m2 N) h" B
3 N+ I) L5 M4 ~: j2 v pkexamine dx240 dy240
0 u0 t3 }3 R( `. ?3 \ 4 h# F1 z) J8 M1 d
local tempmaxp=r(tomc) " S: d! f6 S6 ^# T: r
restore " I2 @9 H2 p, @* W v5 k& \
}& K, ~# a3 H k. H& ~: `* w/ k4 n
$ d4 T$ w! `* Z
8 v j$ r5 Q0 O* W else {
3 D& ]+ l! _; w2 u- E restore
3 S: w# x ?% n: u di "cannot find maxp"& l8 H4 |' b+ O
e8 I% \$ h2 v) w/ S
, p! K$ d! Q* C0 N0 h8 S sum dx240
- ~6 Y+ H. O1 M. t/ x! W' h0 y7 [ local tempmaxp=r(mean)
0 V C! N8 G9 B' z
' F8 E6 h, s* Q; f" j) a- j }
1 s$ r+ A7 z+ g- v! c, X5 q+ l
" r; X+ A# I# u# l }1 G8 b8 N- c# a6 h; ~- y* _3 m6 U
: T$ S0 G, [! }5 L else {
! H1 Y2 x+ u w( n# c& U0 I/ n J2 n% X6 Z& D; O3 i$ i
keep if ddy240>=r(max)5 E# k. I6 d/ z5 g; q
9 O" ^: j, G W9 [' z o9 O sum dx240* J {3 \5 K- X( R8 S( {1 {
, ?, j) X, u/ A5 G& U
local tempmaxp=r(max) M# ]7 ~ P5 V8 e7 N& d* F! @ r
restore 9 {2 O1 t$ K/ Y, H
}
- X' [, Z u1 [, u6 _& p/ a h8 U8 ^+ z& |$ d+ Q
' `8 |- W! f( j. O
: a2 k' }; q+ K: Q
9 s3 B7 b2 o6 r' y7 D7 w% i5 d# N gen maxp=`tempmaxp' in 1& K& V3 G: a7 b! u9 S
L+ u' l. |' S0 x
*240maxp- T5 e" U5 A/ M5 B$ y
! H% G9 B' e4 V. M; i9 b/ I
$ z t/ p# w3 T *-------------ddy240pminp左侧高峰值-----2 t1 y5 U+ j7 N
5 i$ P" |4 p0 f# R& A0 |
preserve
, U( S( i$ c- h
+ M$ V' P# V" x5 Y8 u keep if dx240<`tempminp' c# G/ v$ N/ _/ F8 L; G
% y2 s( N0 l% Y% ^7 t$ S3 ]
keep if ddy240>0& z$ ~0 u5 M2 ?# m
: w8 v" t9 o, S) R5 B3 w, `2 Z
count. n+ |( `: C& A) ]: e) c3 f
( D1 V# r% l- @
if r(N)>2 {
+ J" {' [1 n' z& ?! R6 @" r4 S% W; ^ 2 N4 r8 Z- K) _. F
pkexamine dx240 ddy2401 `5 H; u: Q& S' y) x3 P
. Q& r* I; U0 ~2 C local tempminphddy240=r(tomc)
: j5 j, T8 a8 u restore
0 ], B7 N# p" l+ b1 c. c }( O) Z& @7 F: c! e( r6 s
4 D% g0 o/ ~* P: B. z
else {
4 F8 @& M7 W L6 }! G, \ restore
& F b: F% W* o: Y di "cannot find pminphddy240"
# v* c6 R r% B8 z5 F: o/ p/ W6 y 2 C! F6 n) F4 ^( g* r& i
/ ]% Z7 z* o3 E sum dx240+ O! i0 b, w1 ]: Y, x
local tempminphddy240=r(mean)
1 W$ b9 a* [2 l" J" e
9 s% {5 x7 W' y; L; v; ~1 |3 p " H4 |8 R6 E# X* ?4 v. X: ~
}" b$ R( n! L+ I
" X E. O% ]. q% l9 i
A% K; |+ j0 C& w& f
g; F5 U4 d1 {( P; d 0 y: \6 ~% q0 q
7 Q7 r4 y8 h- P+ u, I: E/ U
7 v5 @9 @* _9 k6 z gen pminphddy240=`tempminphddy240' in 12 @2 X* B, u6 Z6 q% P' `' {' o4 \
7 l# o5 t; O! Q
6 }' k4 F* T8 m. c, G *-------------ddy240pminp右侧低峰值 -----------------& e% f! t9 a- v5 ^! s/ C6 O( m% Z" T
preserve
" M1 F, B4 v. l
% d2 m) ^& t/ b, X; Q5 R' e4 ^ keep if dx240>`tempminp'
# F! c1 r+ V l( |/ q; T( K j 6 \ f# {. L/ ^
keep if dx240<`tempmaxp'
- r7 M" w. X9 m s6 | ; y) @+ A I! E% E
keep if ddy240<0" C- x2 H+ m5 g3 k8 R: n2 r5 w5 p2 q
3 Q9 O! a' x& @) f# O gen temddy240=-ddy2400 E7 a: K" @: l
5 y/ m$ V3 E+ t( ^* {/ M, r+ W count
H7 p$ q% \6 ~( \6 X/ x; r! `- e
( R) Y4 S' h8 x0 j if r(N)>2 {. g& H( }( ]2 x# D
! r/ A$ o6 E9 d pkexamine dx240 temddy240. |/ V3 J5 R( m* Q
' \3 g. U. h, G( D& ?' {. Z( x' u
local tempminplddy240=r(tomc)% Q6 D: i, o; m M$ b. U) P
restore
/ T: {# a; e% i8 }: k6 S* }+ A }
4 ~/ P1 T9 ]- u2 {; `. F5 a % N3 t9 h$ F7 i' ], |* W
else {
- |0 M% R( m+ A( h / y1 ]6 R/ l) E2 \ B: J: A m o
di "cannot find pminplddy240"
# v1 E( M7 G& |5 x0 P* m/ K restore
# {; S G, ^! P r1 O, p& V& q: ~ 7 m0 x+ _# Q- s5 l, b2 z* E
sum dx240
0 V& H: i f6 T$ m/ B# r7 p local tempminplddy240=r(mean); s7 h9 _/ G) p9 T7 {0 L1 I; o8 h
, |. Z( A- o3 r' u: I/ ]3 J0 D1 c* K
0 S& S3 l4 e8 X! q# l: N& g }
% T8 W, B) W5 @7 x$ R
, S: I- x' Q- u& d! L" ], U 0 Y3 d, n2 C2 \" U- E! S( \
. `$ ` P. U; B5 ^ 6 a$ n J6 j: R; U- D
+ U7 M; z8 F7 Z2 T
gen pminplddy240=`tempminplddy240' in 1
+ w0 X# r1 c, U/ D/ F& o$ C " f' Z0 g5 m% f4 r( L! Y8 f# ~4 @
*-------------ddy240pmaxp左侧高峰值 -------------------
8 \/ a! X, w7 ^0 C 5 p. V8 i: C( n
preserve
" l, H$ ^7 i0 {% ` t- U 6 H( W! k$ A- i# ]# O# m
keep if dx240>`tempminp'+ R/ x; I$ \ k' I. S+ S. L# g; n
: K8 g r# ]3 D$ p keep if dx240<`tempmaxp'
% ^+ b, k$ p, f # ^+ S$ j ?* i/ `# V2 e
keep if ddy240>03 \. b8 u% D( G9 h' c. x
count
?! \* V9 h! t/ x' o 1 j+ T2 e' |/ S/ Y/ C' g6 e9 |9 G
if r(N)>2 {
& q. ~& I3 q9 I, W2 [, T9 V+ M
, q. L* y. D( F9 A$ y pkexamine dx240 ddy240
) W: c0 C( S: n
9 L1 J% U5 L* Y local tempmaxphddy240=r(tomc) 3 }. U; }# z+ H7 A9 \
" c) n, `2 ~+ O I% @& P1 h( v
restore) H9 x" l, @2 _4 \. v/ J
}
& N' C2 {5 }7 Z" y3 c ' p0 J0 d V3 b s, d$ j3 [8 `
else {) ]+ c3 g1 {9 k
( Q0 n, [ i, N# M& m! U
di "cannot find pmaxphddy240"6 [: v8 l+ a, M# e# m
restore
5 t8 R6 L" K/ c9 H$ p& C( ~ ( q9 N; w; n! I4 I% U
sum dx2400 I! e3 G+ |3 Z: l( M
local tempmaxphddy240=r(mean) 5 Q0 b; ?3 F/ ~' u2 H2 G/ {0 J- Z
2 y9 L2 ]6 D9 T" z' s- r6 R' c 4 N0 o! Y7 r: f$ |" P/ N+ {2 p: n8 D
}
2 m# c6 [9 l; `3 g# T / e3 \- c* p( f9 u8 X9 ~1 A
9 F! ^4 U8 n+ P# z0 k
0 r! ~; }# ~; E9 P
1 ]& _/ A/ B% E5 X0 _& s4 n 0 D$ v% ^$ \ {% \# t- k: g
, e. f! M: `. Z+ ~: A! N2 r gen pmaxphddy240=`tempmaxphddy240' in 1" R/ a7 Q6 p* \- i# s2 C0 w
. T0 n4 `! U) n
$ A# @. e& z2 l: |& [) e. ]
*-------------ddy240pmaxp右侧低峰值 -------------------
" U7 p& F4 ?+ Z S0 ~5 X / \0 C+ g" _6 Z7 }. z+ _
preserve
" s4 k5 c3 Y/ V9 y+ V2 {
# X* f7 D/ X4 Z* N keep if dx240>`tempmaxp'* P# W6 D l* s: K/ I( X* l
- f6 T, y# C8 ^ k; @! Z
gen temddy240=-ddy240$ {' Y9 ]9 L3 a% H& x
4 b3 X* E- b# l: j keep if temddy240>0
$ O) Z% b6 \! j; ]" x ! y2 u0 Y6 Z0 T) X, C, y% U
count; J5 S" a, {# Q+ h( t% Z
+ {# a3 U. |3 I( b5 ], n3 T, h8 m4 o
if r(N)>2 {' }6 W' ~' @$ i, h% `
: Y0 |1 \$ I; U$ ?. M pkexamine dx240 temddy240
: _! g+ _4 a. ]7 N* _% P; t9 `
/ R2 I) }+ |* _4 z h( I local tempmaxplddy240=r(tomc)
( {4 j4 X/ A% b c) N restore
4 J( [5 q J9 D8 n, [) d$ j* {2 x }
8 e% p2 o- v1 K" ~
: ~! b- d+ p4 d0 a else {
7 C7 M2 l# D: K2 s" q- ]; s restore3 n) u$ V p" h f7 N
di "cannot find pmaxlhddy240". U+ i4 W4 `5 Q; @9 d9 k4 d3 P: ]
5 H: e1 o H9 d/ H" |7 {
- `& s/ S! o- Q$ b! M sum dx2407 E8 [# E+ @/ J3 U: ?! t' G
local tempmaxplddy240=r(mean) in 13 z- T" u" _9 s" f7 s) w
, i+ u! O2 h5 c: g# D2 v
9 r7 h8 }2 e5 f
}8 }/ z9 Y$ c, R2 R5 `
/ ?. h4 j, r+ G+ Y- {9 R$ d
' Y; q! D: m2 W& C6 n2 C: U
* C ^9 Q2 L3 P/ p' N- { , Y+ W' N/ G- Z/ F0 E- |! ~
0 _0 Q# H* J2 X; h o% B8 t
3 O9 C6 ?" q2 L# E0 x
gen pmaxplddy240=`tempmaxphddy240' in 1
( U9 f; {9 r1 S" c1 L7 K
! g( s; k. Z0 D% m$ A7 ^4 n$ o *-------------------------------------
# Z, Y. r! ?! X6 d; e( k! W7 Z * o3 }4 G' g5 P
gen price5d=v5 in 1/206 B( b' w" l p, i7 R6 z8 Z
7 R* c$ Z6 E* V gen price5yy=_n in 1/20 d8 Y( t8 ?4 g& ?$ J
& g! V. }' i0 G$ w9 D# F
gen price5y=price5yy*(dy240max-dy240min)/20
4 M) o4 y; N, \! h; m
5 U, j/ G8 J3 b" v: o3 Q *price5y &price5d2 Q9 C9 j* i7 B8 Y4 {
2 H) M" Y0 S4 r2 k5 x$ I' t gen priceny=price5y in 1
% k4 j2 s7 [% x 6 w p( O9 A b
gen pricen=v5 in 11 `# M8 q* V8 f9 ?* b& p8 ^1 ^
! H' T" n$ { i2 t9 j9 ~) P- `
3 p. J% F' ^$ o6 @; c. A i9 i Z5 @ *priceny &pricen' m- X: h) P- h
& V2 i) d$ W. V: N3 e3 N' }; t 7 C- `, x) e$ Y( x
*-------------------------graph------------------
$ U+ b1 J4 |, v; K% K
8 v/ Y% I q* Y8 S0 R5 f" Y$ ? 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)4 q! |* K) ]1 P- P3 I$ f) C$ b
* c. a1 x _; S$ \+ {9 E
* ---------可选项目----------------------6 I2 V7 c. d1 I$ g0 |1 f) r
, K% w; f: i H; \5 t; b}
% }- Q! E/ `2 Z2 F6 Bend& o# [& _# c. G) F: E b
|
|