|
改了一下,这次运算应该没啥问题了2 [/ t7 v3 U9 m2 @( s& I+ d
) c& F9 b! f2 r* F, o) I( W+ h9 f% P: T+ G( s9 \/ A
capture program drop hello. x9 x4 }' L6 Q& ?" J& p
' |) {0 T4 U: w* v( h4 N0 `program hello
7 }) @9 d! Z3 {! o$ }" U3 h0 U; x( g4 m% g2 J# @
quietly {# V- H U4 v- a. Q
3 q, X4 H, W% i
clear
. F3 n* x% d! b8 f* A0 {) A2 v2 w6 ^! q$ ~! O+ s" a$ N+ P
cd e:\finance\stock\20110101\source
% ^4 G5 ]$ _& D9 Z7 y. Y( X% s( {# M g: R$ E$ ]4 `: z2 i( @8 H' x% A5 r) \
insheet using `1'.txt" s. O0 v2 g1 Y. J# m1 I. Q7 p& Z
* N$ v6 A' o% h2 ]) K8 _
keep if v5>0
0 C, D' |, v7 M1 k$ V : A/ ^4 _" o' ^( q# @$ m
gen vt=_n
$ e/ B, N3 b' b) d( N0 F4 v+ J$ O ( C' m! q- L6 g- E
tsset vt( T; s! V; S' Y: A- L0 u
! n9 h2 N8 l6 j( n9 D0 k6 ^
gen zf=D1.v5
3 o- k" @) T5 P0 J- _5 W) s4 Q" J0 {4 H) g
gsort -v1
t+ ^0 ]3 @- _4 }; n' n" {5 z4 f* Q" O6 `- u+ h& @
gen avol=v7/v56 T& Y' l$ H7 J; f
7 E" T' W. L2 W9 y' W% u S% h
keep if avol>0; d# _ d9 Q8 Y7 P8 k
- A8 Z" {2 K- s/ C drop vt
5 ]9 O' s2 i+ H, B# Q- z; |# [2 E5 i; `
! B, d; D% u" F& G7 T: c; Q0 S gen vt=_n' e5 ]0 }5 P) v
. y2 @4 J& `$ \" { P tsset vt
/ z! Z( e1 W0 q
0 r {5 }5 @0 ~$ B) H5 W' O sum v5 [aw =avol]
8 F9 \' T8 D. _' b3 q! _
# c! K& K" R( z; h+ s+ g+ O% | gen amean=r(mean) in 1
5 U, ]1 `1 {" B* q% a- X' R7 g/ t# N
% B# K& j+ i D% A+ l * 总加权平均值 amean2 x" d. g2 F6 {; l
; O7 v0 L$ E+ F8 C8 K
( v D8 \# m0 g/ D" w
keep in 1/240 w ~0 q- }% Z( O% p) K/ I
: _9 @9 C n# Q2 B- n/ e
sum v5 [aw =avol]
8 a+ c/ }% m* q$ e0 K
: u I7 y# v; b4 N% p: D gen mean240=r(mean) in 1 M; o2 F# ?$ X" J& ?' b
( w& D. t, P" s0 h6 j/ K *240加权平均值 mean240( G8 X0 d, S. {, u; M T
0 L7 R* p, G7 t/ H3 [/ Y
set obs 500
+ C% w* U' k& u6 W6 k0 K) F. F 7 X( E3 Q7 G8 \. Z
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
: w' f6 c) T1 F( b" G3 ?" C% ^ 8 a. ?6 d. f$ o! ^
*240 kdensity(dx240 dy240)9 ]0 M S. y+ H. } x6 L c1 [1 T
" a& j9 {) l) @, P% J sum dy240- N; D! p1 j+ j( O0 ]; k3 n5 l
: Y3 ~& c- v. A! W! ~ E# F6 S7 Z
gen yxis=r(max) in 1. v5 c6 s& |6 t& e! H. b7 a
5 Z- g1 I% ]0 L8 w# O
gen yxis2=yxis/20 l0 L% P1 S/ R: J L! a: @
& l+ }, g8 ~3 j J
*yxis3 I5 d: S& [+ Z Q# i: T# G' z, z
7 X }) q, N$ u* V gen dy240max=r(max)3 J$ ~. F* f! _/ t% W
$ ?4 k! o& J5 K3 V3 z
gen dy240minp=r(min); O% g4 v* C$ L0 n/ P* @% E
6 M/ N7 _3 Z) S9 O$ I gen vtt=_n
" {/ M8 r; H. C, k3 t6 J/ V$ D- I3 X4 Z( X, J
tsset vtt
4 @- J/ s3 [3 E) C' ~$ v
. n1 j |- J( T; J gen ddy240=D1.dy240/D1.dx240
5 P4 I! s0 w% M
; A2 | g& N/ r& [8 k( M sum ddy240$ L, Z1 V! _6 H, s# ^- }3 I( I5 K: O
1 k4 d# ~& L$ s" b$ Q6 f gen ddy240max=r(max)& @$ h. M. s( @6 I4 B
( ~/ u% i" \5 g# G2 F _. a gen ddy240min=r(min)+ ?$ p3 V. Z% R' l' W
0 j4 n/ K# m1 @# O gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
; V6 w- P6 ]& x ) m% ~. S- {8 v! l1 c
sum ddy240g
$ Z% A6 D. b, [1 S4 r. c
n3 E h. S+ G gen yxis3=r(min) in 1: F. V+ Q& [+ u. H$ W3 D
- Q+ c5 G* ^6 R% C$ Y! Y gen yxis4=0 in 1. p8 f" ], P$ }2 u0 d2 s' Y9 c, ]
9 o5 Z( L$ T, y
*ddy240g
: O' j* G/ O+ y$ ~7 B ( c; K8 h5 c& L' f( x8 k6 B: l
- n1 F2 w0 Y% A preserve
7 W" y" [6 ^ y* N & t6 `& `- {! ?* ^7 I C5 E! Y7 G
sum v5 [aw =avol]
4 P* e1 O1 g# `2 L7 {7 q }; K
% W3 J. X* f3 L) B keep if dx240<r(mean)
9 y5 @' s0 y" [2 L5 O
/ g& t( I' _/ B0 ~* C5 l- E sum ddy240
+ o" Y( n( |/ @& S
1 q3 P6 q6 |0 ]" m T* e7 J if r(min)<0 {
( j9 Z9 @5 T. M6 L+ n! l: y' H ]) R; p: i7 @: \3 C! m/ T& @
keep if ddy240<=0% N- F5 i# b5 d7 \. }9 A
j8 J O7 I3 \* ^ count$ B4 s+ G+ J: N4 q/ r8 h0 U
+ e) y- n* g. O# \
if r(N)>2 {( U0 ]) p! t( V F- j
3 s) m& g7 E) f% Z8 j3 t
pkexamine dx240 dy2401 k( {3 F- u4 X' }9 O" O( w5 K
% G7 J+ {% ]5 v% @; f local tempminp=r(tomc)8 [% ?# H$ m% b0 D+ F+ A
restore
1 Q; S( p8 f+ ^ }4 F# A: ?0 W3 ]& [5 `
# @2 {% i9 ?# T( P. A' Y% e else {
/ F, i/ y) V% m
7 J. E- d5 O: I; g( f! U di "cannot find minp"
0 Q' X( ` Q2 O" t0 X% Q& d
# K9 _, y& y5 z1 d" I restore
" E/ p% d! [- f+ M sum dx240! R4 i+ {) w5 x7 M! L
local tempminp=r(mean)
0 G- @+ \) G) ~" E4 p2 \6 C1 n9 E
' _. ~- @, E/ y/ `: v }
& i- o5 j9 F3 T+ ^: M+ z }
) v9 B# N# l7 i$ `+ h1 e! j. j# b else {) i: O/ d3 `8 W
- L% J& q2 e* W: O0 c keep if ddy240<=r(min)/ u0 @% c& N w1 V! s( x: Y
6 E3 O% `! a' V8 a1 P+ ` sum dx240
1 j! g& y5 x7 f& T: o+ k; y3 ?9 c" O ' z$ N% \8 q1 F! D
local tempminp=r(min)
+ C$ [+ J$ O, }2 D4 d restore
* f( f: I3 A- E }
6 M* G7 a# @& a. @- @
* S& ?$ S% Y- l1 b
0 H! z0 Q. O. F5 M0 p# Q6 A$ q
$ M4 l5 Y) i+ s4 z gen minp=`tempminp' in 1
% w; S' i) d( \% J* ^ *240 minp1 J" d0 o* k) v
* t) k/ e8 j7 r" l& F9 M
' E0 S7 S) G- |6 G+ i : N5 g1 O ~7 {( X* x% M
preserve 0 A4 w9 a0 ?" k2 J/ \, B/ Z) K
9 R- a- A7 B9 P9 |: f9 x
sum v5 [aw =avol]' u2 I; `! B( P0 l! k7 I4 j
3 o) J& d' m) D7 E; j
keep if dx240>r(mean)
+ F- M/ \: M3 u, s1 q' ~$ b- Q
. K" r7 V2 }7 g9 b sum ddy240
1 ], T5 L) p# m; j4 B 4 L j: e7 n( H2 e, C0 z
if r(max)>0 {
+ X4 m; @+ K! n; q3 L 5 O9 T2 d4 \ n* {6 u
keep if ddy240>=0) k. g) ^* R. s8 c' D1 ]3 U
, ?; j) V, n/ a
count5 r% n/ N7 A4 u
. k9 Q. I8 c% y- B/ r8 f if r(N)>2 {$ }/ E8 c3 u. T& v
. T0 Z/ R% Q3 i$ ]) o# q
pkexamine dx240 dy2401 n9 Q( }, Z. t
" }$ J T0 J/ w0 x
local tempmaxp=r(tomc)
; J5 `4 J) N0 T4 a/ {' F, G restore
& I: u# f9 U; V4 B/ r( L/ p* Q }
, s G( D& o# P8 x, X5 ^4 V; g
' c$ {6 F6 V/ V. |9 `2 r1 j 9 ^* C" D# [9 X0 H8 K: @
else {/ w$ a0 a I7 c9 L- m
restore
$ g+ S c$ M$ q. B% a di "cannot find maxp"
* K. S; J/ v/ U7 q1 t5 A9 r# |- Y
8 _+ y- F1 _# \ ( x, [' V1 H5 [0 ]$ Z& L
sum dx240
9 o7 k7 Z9 ], I) R: j local tempmaxp=r(mean)
% O' \6 D* ]1 n3 P5 ^% R; u , s0 N! n" w8 A. i; v* ]" g. h
}9 }2 l) a! k+ f( Y( N8 W# F
0 ]6 F' T; `. ]" P# B
}
: E0 @2 T8 o% R. e% w ~ ' g; B0 m5 {0 m) X# a2 H/ j- \/ ~
else {4 X8 F1 U. ?& X+ C* S
+ k0 N; ]. ^2 E keep if ddy240>=r(max)
C% ]+ e7 b( e; n# L. n$ y( m
c4 [' L' |1 ^, l* r+ I sum dx2403 c. z O" b) o" m" o. V* N
0 V& |: f) [. I" y' @) \! A) M local tempmaxp=r(max) 0 ^. C" B% k: ]; I, G. M* J
restore
( x; [4 |& o' k }& _, P9 u3 F: y) A
0 M: T1 O5 U2 V* f: p
/ r: ?- J; J# b: m+ U5 V
7 ~; m6 D+ o$ X' a' y+ |1 l( ]$ b; f1 @0 \# z% `
gen maxp=`tempmaxp' in 1
6 q9 ^, B" L8 |+ N: A6 n9 ]/ n 0 R! R/ ?" W7 G# ~$ @ e$ {7 X1 m
*240maxp( e% q% t5 `3 O4 ~2 L
9 W6 |/ l) S5 s0 \' | R
: N+ U7 s, `2 G J: C *-------------ddy240pminp左侧高峰值-----6 Z0 I& p$ z; i6 [# o' U
& |6 B, m, Y, D
preserve 6 F8 c- F3 Q# B% S7 d- A- B
/ z a( I1 n: W; _: G! n keep if dx240<`tempminp'
. z. h# f- @! m3 { . L5 h) a. W+ } w M! }
keep if ddy240>0* e* o. g2 s+ ^3 V; X, H9 `* L4 L
7 B' M5 @% T, j/ ]0 }
count& ]7 P& \( S9 S9 s
8 L! Y: ~. Z+ E. Q
if r(N)>2 {
2 s. |6 G$ s4 X, [3 g7 \7 A: f
+ ^, X" G2 R9 v i2 ~* J! ] pkexamine dx240 ddy240/ Q( b8 E& M. a, ~* z% N S
" a: H L, V9 K" A2 `
local tempminphddy240=r(tomc)
( G% J* o1 s6 V% J. p restore
3 q# |$ e; \1 Z. `4 G6 x }
) ^0 {* g, F2 w3 h# U
( s& ]3 h. Q3 f5 q9 b else {* g/ w1 S" e) \' H+ w
restore
4 Q$ q/ ^+ | T2 J' P2 F. k. \) M di "cannot find pminphddy240"
& ~- S& V1 m4 q+ K/ G0 K
5 R& p( _" O* W' h
* e7 M$ _2 C4 _9 b sum dx240( ^& R4 I( p" ?
local tempminphddy240=r(mean)
: Y0 a9 h3 ~# F3 o + x; Y/ ?. |3 b9 B/ s# ?* b! f) m
8 _; t; `/ R! w" I: g7 F& U
}5 |/ f) Q. u6 k9 J* n: Y4 ?
& F& ?: c" F0 J9 v. W2 x
" H( [$ P. f: _, _% h
: N7 r3 G* T+ ?
e* u9 Q. n9 W0 T7 L
& y% S4 U$ a. K2 I
, i, }( K* M4 Y$ ? gen pminphddy240=`tempminphddy240' in 1
5 M0 d3 O: B y& s+ z# r: `6 O. [
$ ]+ S1 F e9 f4 i+ ? ) l- }( p& u2 K2 u& `+ i( r
*-------------ddy240pminp右侧低峰值 -----------------
" y C' C% f4 V7 c) [- x+ q, | preserve
2 M' S" L& P9 g( Z: `4 i7 n9 W% A c% V% o6 v2 C( T$ x: P
keep if dx240>`tempminp'0 ^0 l: o2 l+ K# l% p2 ?
2 I( m$ U( r9 o q keep if dx240<`tempmaxp'
+ _, L) W% u( W0 b 7 S8 w7 M( c0 ~9 n# B, k4 f
keep if ddy240<0
- A5 w5 _6 I9 i) y
- N" |( }( _$ q$ e0 b' F gen temddy240=-ddy2406 r2 W# I7 n% B! t) R: A" _# O
! L6 A3 y. V7 F4 B
count
! l. X8 k. U2 s4 R % r; l8 y4 ~& C( R F9 D
if r(N)>2 {( d( s! X( \, V2 {6 i
) }5 q. T+ c Y1 e
pkexamine dx240 temddy240- C, a7 Q0 P z$ O# ^; R/ G
" t( F5 T" r- D( \
local tempminplddy240=r(tomc)6 R7 K0 z1 n9 G- v `! B
restore# U2 }: _4 `& h; s% W- x$ T
}
; ]* `6 f+ b6 I; `; d, t 9 }6 p9 l$ a. ]5 \
else {, u; s0 Q# {/ S) z/ H; b+ Y/ q
' R8 |; s0 X, ^/ K9 g b. h+ _ di "cannot find pminplddy240"% @5 G- j& S! g: \' ]" {
restore/ m5 h+ |8 r3 z7 D- S
& c& g; X+ J0 T8 u
sum dx240
9 e5 O) c# g( m' ~9 m local tempminplddy240=r(mean)( G( R0 m9 }+ l- z Z
) G+ m, @7 }. J0 z' h+ x
* ]% Z4 S6 s7 c @1 m
}
+ e% y1 t0 n2 Z* |6 o$ m5 B
* [ x0 K! {8 K$ P' i+ [ ) @5 J; J) |5 h4 j
# i% g# A, D9 d+ v
" O( _% g- M1 e) q/ S0 J1 y& ~3 s3 A
) y9 H ~. X; Z0 f+ m gen pminplddy240=`tempminplddy240' in 1
* z$ @% @. o' L) E! \ ! |) T {3 ~4 t9 [" j
*-------------ddy240pmaxp左侧高峰值 -------------------
8 G% |5 m$ s' W1 D9 m * h1 @ C+ y( I: e) _5 U
preserve 8 H5 w" u/ _$ @6 o3 l2 { K7 x
) \3 ^8 m3 E5 ~9 r1 d keep if dx240>`tempminp'
9 d( O. K* o$ ?( [* b( q' t# H & g0 z% i1 E( _: z3 f
keep if dx240<`tempmaxp'
1 Z8 g+ y6 [" Z, y : R. R: M4 o' u6 _ `
keep if ddy240>0
6 c8 j2 l5 k% c; T2 l& [ count( [& x; I5 s6 f; z2 F
. i9 t, A3 r' Q' d if r(N)>2 {3 Z) t: a8 a0 r3 j) \& W) x
[4 L, n/ ]" J, ]2 r- L$ i( j pkexamine dx240 ddy240
4 K6 d- C' t* n* Q " g( F! M) H; w4 P7 x% B4 y
local tempmaxphddy240=r(tomc) 1 i* x9 a6 a7 H3 t7 I g" P1 Y
+ k }' ^1 n. @7 U) m$ P1 _
restore4 G6 R5 z7 Z$ x, ?$ R& }3 M
}
8 ]4 H: C. Q+ P8 z, k, [5 K: ~: v ; S9 X0 Q5 j$ P: a% J1 z/ H
else {% O- a& o5 v" f
/ i4 n6 ^5 m: B- M- F. S
di "cannot find pmaxphddy240"
$ G6 G; B7 @4 H- J; b restore
( @3 F9 F0 |0 Z8 K* Z" S% j, H. _
* O5 y% y, ~3 e. b) a: G( @ sum dx240
# Z6 |' T* \1 q7 z' V local tempmaxphddy240=r(mean) ; Y o9 X, T# K) F
' M+ o- P @$ V3 A
# c0 P& T( }* Q& E }1 U5 g) ~1 `0 S- ]2 ]1 X; q
0 N) C1 m/ I9 Z$ v% s0 g0 f" V9 J$ k
$ S s0 j/ `: Q- U E 1 i g1 g- i) @# ^
" a) X7 S8 _& w7 e% [
# K( S/ R4 ?& |6 h
* z& F7 \% x7 H5 W' w8 m
gen pmaxphddy240=`tempmaxphddy240' in 13 r. W- {. F5 M
2 L1 P7 m4 w' W( V# C0 z P* T# f- U( y) n0 n c. V
*-------------ddy240pmaxp右侧低峰值 -------------------
5 j' G' W/ ~+ Z" ]: B$ W6 W $ f. U# R2 v g7 a6 E
preserve
4 D" J* _2 f; x" S4 i 3 L5 h1 W! a" @6 ^5 O4 y8 u8 d
keep if dx240>`tempmaxp'( B5 b1 t3 D, X9 d3 p) K
6 A1 w! R5 [4 Z" B3 _% Q gen temddy240=-ddy240, U2 h5 {4 F1 V, Y; Q
5 X) n7 }9 B/ p- G$ ]* Y' F keep if temddy240>0
0 J0 a1 J, u, X( _) x ' F4 D9 t! f- N% b2 V
count+ o& a6 G; G2 `( ]8 Z* q1 f" |
. l& r! o% x; U) s: i
if r(N)>2 {
. B0 E9 x3 L& N+ Y% a" L" I4 E9 z
) ^! _: B$ ^! l* `( F, x( } pkexamine dx240 temddy240( T1 ]% v, }, u& U' q8 Q$ P
! \3 P7 c" _; g4 n/ i
local tempmaxplddy240=r(tomc)
+ P0 i& c0 t* }. J$ E restore, |: q7 H6 w/ M- x$ ~% m! g- D
}
1 P A S; Y9 W# V7 L$ ~
/ o8 g4 H- a% a( n, m7 e) C; q# P else {
5 S; m7 Z7 F0 G+ v restore
. ~6 ~( P6 Z3 v6 m% [ di "cannot find pmaxlhddy240"% F! L H9 w$ }# c
) h ~: ` [3 u0 G; ^/ r ; d, Q3 K+ d' W9 E! r$ x
sum dx240* m9 g$ Q2 `' {9 N5 S3 e" P
local tempmaxplddy240=r(mean) in 1
! E7 C6 h; H! y" }: S! B
& |2 T8 v! z0 n+ W# D1 t3 U 7 m5 W! x: C" C( X6 D
}. m8 T8 a/ \+ e0 w' b2 b& h* G
8 J+ ?1 [, e) j9 J7 v$ a
$ |6 r, Q- C4 s+ m9 g2 v% w, h* b
- p- ]9 Z8 ?$ ]* O
4 \+ [0 e! D5 E& N5 R# ~ $ I( W: U1 U2 N
' k) s5 M p. v) e0 K7 a+ Z
gen pmaxplddy240=`tempmaxphddy240' in 1
6 G. H) V, _- v, }; \
# t1 R9 C1 P+ P* [8 J1 | o *-------------------------------------
1 E' U9 A% {7 v! V5 u, N0 `# l& c
3 V# Z* X) f' B% H gen price5d=v5 in 1/20$ k+ W/ [3 @7 [0 V$ M
I- N# y2 P' _& n2 w+ Y
gen price5yy=_n in 1/20% Y0 X5 [9 d1 w: i0 Y# }, I5 }+ L
% f, h- I% N# O! `4 m$ d- | gen price5y=price5yy*(dy240max-dy240min)/20
- S! D6 G K* l$ W# E% `& L
8 ~( h: N* j" u6 y: L) U: l7 b1 A *price5y &price5d5 l3 U& J( F" K3 F
3 h/ W; C9 O; D# }# D0 a
gen priceny=price5y in 1
. ?8 ~ s% k; e* b6 ^, b" J. E
& E- u- X9 {. L2 P1 i& j' P- W; K gen pricen=v5 in 1
. F4 i; M. R/ W) T2 M0 \
) x3 L" e% ?7 i
% ?! Z( `: {) ?9 ?- a *priceny &pricen
4 |+ I: Q9 k$ l7 E- a
6 h0 ~) s1 l/ p# C) c, }, V
/ {+ Q. K {% A+ U$ b5 I *-------------------------graph------------------
; |! y) h& R+ J2 `# i2 k 0 Z8 }8 l% V( E' N3 N* `$ p/ G
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)+ ]$ z: f/ ]( u+ V- `1 s
; P2 g8 O, a; n" J5 b5 v6 P
* ---------可选项目----------------------
' C: w+ d% n& _& o2 A! x$ \( }, |8 t7 _+ k/ _
}
- u$ g8 \9 |9 Pend" H; ]! m7 W5 c% h. `! P& \
|
|