|
|
改了一下,这次运算应该没啥问题了4 u5 O1 b* q a
( D* a+ ^" r% I) z1 R
9 C3 |' L. L) xcapture program drop hello% M4 b: W5 {, W3 p; F* R9 K
% ]$ G- L& r. w8 }program hello" V+ l) N/ N% @% o1 q& j! w
9 d4 g8 u: D c2 K4 ]
quietly {
5 i8 n3 G$ c, k6 F# E4 D" E2 [ M
' t5 {. c: g; N0 X2 T5 i* {1 oclear! {% p% Y' }9 P$ O- P' M
9 u4 H3 g6 e, z0 [) G- R4 ucd e:\finance\stock\20110101\source6 R) w( \2 C4 x; t
$ L( l( u4 s0 Q2 {, `
insheet using `1'.txt
* E M5 ^# G+ Y& {1 Y" ?$ ]& o6 A
keep if v5>0' i; _4 W( O" \. e) N- x
8 b' ^$ f# r. i
gen vt=_n: k; A0 t+ P$ R7 e. w! L- @- g
& o- C4 v" h: }! j8 b
tsset vt7 b3 G+ T$ C" R) y
, [1 Y2 R2 P4 m7 M
gen zf=D1.v5
4 b& v( W5 O# Q7 @, ^% N: L5 t
3 i5 X( P* v5 ]" M( r6 C gsort -v1
6 F' W8 b+ B8 d& Y% j+ u# f9 z2 d2 g+ X( m2 C1 |. N
gen avol=v7/v5
- W& Y( m. H' t( {" H% {; Q/ [ 4 R* \( s' H" H0 s$ |
keep if avol>06 W0 D& F# F! W, {) c6 R+ i
( t& _4 ?9 H" U drop vt3 K/ C: X! T3 c5 g! U
$ J: O8 R+ y g2 H0 B; ` gen vt=_n1 G/ `6 S# n( w
$ U% i4 V3 {+ V2 H8 s7 W7 r6 n$ c! U tsset vt
1 E; Q8 h+ y3 x+ }$ o- `
, p7 N* {- t9 I4 p* o; k; J2 f: I sum v5 [aw =avol]+ I/ m# }- W" ?" V3 s4 K) b
/ j7 n0 t" N+ x
gen amean=r(mean) in 1
6 {( y: V( k4 Q) P + }. z0 v1 p w9 I8 g
* 总加权平均值 amean
0 R$ l0 N/ I1 C+ x9 \ + c/ h9 J2 Y9 J- O+ \3 G/ L
2 U. d' I$ x" }1 _) O6 S keep in 1/240
8 t' s z4 |; D
/ X" g' ^- r, _ sum v5 [aw =avol]
, |* l; S% {" W0 z |$ l$ w
8 q( c4 H; {+ R8 w gen mean240=r(mean) in 11 S! R4 |$ ~% A' T' }: g0 l
6 X1 ?. j( d* I) q) t
*240加权平均值 mean240
( e6 u( Z' ]# H/ l2 ~( \ W4 h2 ^ * N7 X1 |9 y# J; g5 H
set obs 500
! X% z& ^4 c v- M" S" E" C . D8 ~; t% g$ N: ~/ Z7 Z& [: n: {2 y+ L
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ H1 u* `8 E% N$ { }
" |" H/ o; `* g/ R$ J* \ *240 kdensity(dx240 dy240)6 h& Z& Q6 }# _. s3 g g
9 z _7 Q* N8 x sum dy240
+ e9 Q) _' K$ l* H4 N " |; O( P, s e3 b! W4 o
gen yxis=r(max) in 19 D% {4 T9 k1 ^+ f a
& Q8 X3 i7 Z$ i5 Y gen yxis2=yxis/2
3 J% j( B' R6 I4 M' T8 z8 W : K/ u$ {- x4 Y2 a7 b% f9 @
*yxis7 z8 R( |" q6 h) L" S
: w8 j! @( X& q7 H gen dy240max=r(max)" y( S) i, h5 S! b1 T
" ~$ N; s/ ?$ g gen dy240minp=r(min). ]0 l2 Q3 O, \% {' y
$ h8 e1 Y" A- V) A
gen vtt=_n
/ w5 D2 {- Y# d) R! {
. l# ]$ |2 H( ^; `* x tsset vtt) U x! n4 o8 z. u& m- n. B
. u5 J; y2 t5 Y: u2 Z4 `% } gen ddy240=D1.dy240/D1.dx240$ |# l$ H0 E( m
; `& c, I ~7 L2 b5 @: C
sum ddy240) l5 n( y- L% h4 m- M3 d1 y
- S g. P8 z7 [. `1 l gen ddy240max=r(max)
( Z. e' t. E/ Z8 U$ \9 y ( F* ?" M# R/ z, U4 o' m, p6 k& w; I
gen ddy240min=r(min)/ w% t0 U. J2 ^; V5 z
6 s9 s: V8 C9 W- g
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
9 B- O2 B& f+ Y w @ $ p$ S$ r ]+ t S; p6 ~8 G
sum ddy240g0 M/ N2 B% s2 G8 `7 {4 E* `2 a
+ U p: z' z; R9 X! l+ j i1 z gen yxis3=r(min) in 19 T& o# N1 q# h
6 R' l# a$ w1 x5 ~7 `, c3 \5 } gen yxis4=0 in 1
$ i7 m( X9 ~" C" E Y* L' s: z
: o t5 R) `3 {, D+ _; y. I *ddy240g % ~# p% A+ B8 c$ S& r4 K4 A
% [" y$ Z1 Q+ {6 n* \
$ F. r0 U. r' V5 C7 }
preserve
; l$ v) r5 i W0 o% [
1 |' q1 y, y8 {" T2 c sum v5 [aw =avol]
% w; @+ J! T- k/ H5 X* f; N ]9 a + J7 m- J) F& Q2 l7 }: T
keep if dx240<r(mean)+ \% Z& ]+ F; E" s# A
X1 D: R. e6 ^, H sum ddy240! X l; y( @/ S6 @
# N, E( b$ M( N- B; @ r if r(min)<0 {
5 ^! @* ]( o$ U: Z$ R 0 b. g0 F: @, i0 @9 |1 e$ h5 Y V
keep if ddy240<=0
1 Y0 ` f( A: j . e' L& G7 W9 Y2 s' n- F
count
1 s$ E! U9 W. t' H$ O$ P
1 J( D9 E6 Z- |/ }) D if r(N)>2 {
- F" T2 X# v) H& c- l ; {% z0 H5 K6 I+ \8 l9 m
pkexamine dx240 dy240
$ i9 x5 _ A) u( [- D; |; M 5 {; t9 D" o1 O. ]+ g+ ^6 v
local tempminp=r(tomc)# ^0 p- V- S [- ~! W" b/ j6 B' h$ I6 n
restore 2 Y& R4 ?: b+ o
}* K% U% M2 o, R2 F, d( e& J+ D
6 x E( |& A5 e& B else {
& {* m. w% z1 b' Y8 T* d2 u. H - w4 _0 R0 X l, ^+ A4 S
di "cannot find minp"# n2 e8 E+ p8 U4 y5 W1 T
) V- i% N' Q0 M0 V7 H6 c
restore
. [& b4 N6 ~0 `) t( c sum dx2403 Y( D4 I1 m2 B' a/ k! R
local tempminp=r(mean)
2 g- a+ b/ L3 o/ A# U2 S* E " p7 j& R% b5 _/ y
}# m3 a) O3 P( h) F, V# L. C
}
3 U3 t# O" `$ G: v else {
: J6 ?5 f" U# V' P
2 I9 J7 o' N1 X3 J- P keep if ddy240<=r(min)
5 B8 G q' ~* r* w9 w$ L* f
2 Q2 ]& M- S. {8 |- M: } sum dx2401 B: Y! Z! S/ d/ L+ P" P% O/ A7 N
; P+ {0 c( d6 q% X local tempminp=r(min)
) ]2 V3 O$ L& D. _ restore ( q5 p) m- p( l7 }
}) R$ K. I2 k# k! M
$ D, h8 r4 r; H9 v6 o/ k+ ?1 P4 z2 \, y; L, Q6 \2 k6 T& C; G
4 v* F6 {' b) ?# M9 j1 p+ F
gen minp=`tempminp' in 18 \& U1 [9 a2 N
*240 minp
8 r$ i( v' m" T3 A
/ h1 D0 [( v1 l, q$ o: Y M R
$ f( y7 \! e; g/ U9 P3 c0 q! F
$ s6 s& K6 }; u5 V preserve & V" c3 ~% N3 j, a0 m# J7 u
t' U% o1 i; l( a5 K N+ k
sum v5 [aw =avol]
6 ?, ^% U5 r7 b. U 0 s1 X& H2 f A' w$ S }" v
keep if dx240>r(mean). y5 \" E3 C* t1 g% W$ t0 { |* X
1 w& U6 y- J0 H3 U1 \. D. r sum ddy240
7 L% o0 W, Q: F' w+ S5 y# d : e. w* @1 L: p! T
if r(max)>0 {& v" J) C$ M5 S4 I" e% M" b
. E4 o" |8 _4 A
keep if ddy240>=0& y2 _* P, ^( f$ D# m* E( i
+ ?6 M; X' g; }) }4 F count
0 i+ P6 G6 j2 X5 W9 q3 v, D" a 6 ^0 q7 v8 H+ B( |/ ?
if r(N)>2 {( Y. v7 C; b1 e1 C& m
4 ?$ h- }9 x' D% i1 `( s' Q pkexamine dx240 dy240
7 N/ J4 p i ?- r/ e/ i/ o7 S
" o, c- v- D' }# B. i local tempmaxp=r(tomc) * p1 f6 r7 I- B0 D! m" I
restore % M* I# p% Z3 O9 y+ F2 `* d1 M
}
. c3 F+ u' q4 Z" c! p& p
! Z% s3 z' V; N- V: v! }! y' F 5 T4 N0 V U. F. a' e8 e7 S
else {6 r! W, w8 m1 o- e( |
restore ; r e e4 z! |; _" O
di "cannot find maxp"2 v8 N: t* _+ G% t$ I
- @3 c9 Q& U" x( H+ k& [4 M/ n % ]# B o& Y+ p. I* a, Z
sum dx240$ b, u6 H9 e p( {$ P
local tempmaxp=r(mean)
6 Q6 \; {) ~6 I9 U1 P+ k & f+ b5 J' n! _" f
}
8 X' b1 g1 W& W 0 C) B1 x" ^& G. p, ^* ^/ t2 i
}: N$ K+ R4 d8 g
! k4 `1 `* J3 z" P5 M6 a1 l% ^
else {
' |+ M0 e& ~& @% s' ~, D. Q
2 s7 e7 ]( L3 n keep if ddy240>=r(max)2 U1 J* ~) g: P. S7 a5 F
4 Z" o6 U) m7 D7 ] sum dx240" t: t2 J3 N/ w5 a
7 O# W. f9 C* U& j3 `1 X local tempmaxp=r(max) 9 m, ]# ?6 e* G6 f& i
restore
+ P2 N3 u5 f9 i- [. X: h4 [ }
9 V3 H% A6 t9 `% Z" { w
" S& L. e, I+ r' t% D
$ b9 F2 [! Z6 ^ 3 z' @: I7 N2 U5 ]6 F
7 s V9 Z4 l. H9 O6 H. J7 O
gen maxp=`tempmaxp' in 1
/ Y! l( A) [5 o/ ?5 J+ ^
' v* }2 N: U5 Q" ]& K% I *240maxp
0 ]3 P. i% G1 d( \! m
8 F; c2 T1 N/ u
6 l* e1 _$ N# {0 V$ [6 U *-------------ddy240pminp左侧高峰值-----3 |- O2 Z8 \- z) m# B0 M3 j
+ N7 U5 J- w! D; @1 [& s# N W8 m( c preserve 1 @: z; H, h9 H8 [7 x
6 I( V$ f. J/ D9 T. a+ b, V6 } keep if dx240<`tempminp'- u$ r2 X f3 w: k6 t
5 h9 D; C6 F/ `$ \
keep if ddy240>0
% C0 ^. h: \5 D0 s0 b
; q: |- {# ]& ]# m, } count' V/ v# b3 n8 j) n/ l3 @
. C9 K! F/ v" l( ?
if r(N)>2 {7 ^+ v" h/ s9 o' \$ [; m- ~
# C9 Z3 A/ l' R/ }
pkexamine dx240 ddy240
3 B- U' U( _3 m7 X6 V% T, q
& N" g: D& o) }' \ local tempminphddy240=r(tomc) ( Y( c3 G2 o; i5 x4 e
restore
/ i, n* I) ]5 G$ M }1 t+ `" z% {2 v0 `: f
" \" B, n% H; U9 J( D. V3 |# \$ {+ f
else {
i) F* ^4 q. x9 U% ? restore
/ R& M2 @8 h. A6 w$ b di "cannot find pminphddy240"
3 i8 B3 s" |" k* [2 e7 D' N% A/ r
, z! v k, Q, H5 P- x2 ?
: ^) N& r9 n+ A' s+ R sum dx2401 B' R6 d* J" K% L+ O
local tempminphddy240=r(mean)
$ @5 l1 V% k% G1 B1 r w & d6 p9 Q7 R9 J" F+ L
/ h" ?) J+ e; |- _8 |4 N) W }
" N8 v0 Y. ?& @( x' B+ `1 u
- J/ Z* h: }9 Z1 b$ [, _. u* ]) l & g& @8 U" X2 X6 ~' @
4 U8 d& D2 I; I( O, T0 J! H
6 T& |% Q; z# r4 |! c/ N 8 { \" V# d3 T5 }; @/ Z
6 s; P. G; ]% ]% v' C8 B
gen pminphddy240=`tempminphddy240' in 1# R* k+ D5 ^4 @. c1 Z
0 O, t' X. C- C; b; P
" W8 V( _! g& N% a *-------------ddy240pminp右侧低峰值 -----------------% M8 m9 |+ @5 W7 g$ i( M
preserve . m& a% f: H6 p& \! u& A
5 r+ S4 F6 i$ Y/ G) d* I keep if dx240>`tempminp' ? D8 M- K! V3 f p" @# S F* l
) ~+ d! l8 Q6 x3 s
keep if dx240<`tempmaxp'* k1 t& N7 x. ?5 E7 h
7 X2 d/ w' w9 F# L% K1 k2 W. w# f
keep if ddy240<0
+ D% j9 I, i0 I( a: v" k
2 l2 T: d6 r( `4 X) s+ | g gen temddy240=-ddy240
/ h4 ^. I; R" ?* @! _0 P( F W) H, \9 @' W7 @! _/ ?
count# g$ B( k0 `8 d2 O# y+ N
# U# V# L' u) z9 M( h9 o: j) _& a9 Z5 {
if r(N)>2 {% {" M. A+ ]) I! x+ \
) A/ H. x8 q9 c. k8 q6 ~$ f pkexamine dx240 temddy240+ D3 p. Z* A4 ^6 W
/ j8 ]* A/ s9 A$ e% I; V( V: U local tempminplddy240=r(tomc)
0 r Y m4 r& C0 Z restore6 k/ @( @- X6 U6 O
}) v! c ~7 V" n) B- y
+ E: A7 {" D( Y7 }4 l
else {! v, S% g! @$ G! b! R M' K) ?
9 v" @0 h) X* m2 H0 ?
di "cannot find pminplddy240"
( ?! q7 F' K( _ restore# B: ]" p r9 J) D7 \
% M# I' ?, ~6 ^: {- T sum dx240
7 c& r6 @4 r% K$ G" ` local tempminplddy240=r(mean)
* d" @ R5 o3 r# D1 ?- j% m
4 E9 x0 H" a! Z, k
: W9 @' i% X3 R' S0 e }% M8 _( [% Y: w& I2 T. ^7 x
6 `( @0 N, d& B. h, y9 z& f; z 7 w8 W3 q2 S- ?4 F1 @, I' L9 A
2 e1 j' |9 K0 m: k; p- z
7 X# Z; m0 H7 p- X T, f & r; z9 V6 Q) w
gen pminplddy240=`tempminplddy240' in 1# b7 J$ b+ s2 o2 [
2 V% Q7 q) N4 \. B0 x' \& U
*-------------ddy240pmaxp左侧高峰值 -------------------
! C2 Q) @2 k! E( T6 P T5 N, e$ t9 u4 G9 s) ~
preserve
* u9 z, M" P6 W, g) _' p / c9 m" c# x; ]; ]; \# V7 d" S: R
keep if dx240>`tempminp'' S* [2 e2 u+ D
' z, d9 B3 t( F5 p9 P/ ?" C keep if dx240<`tempmaxp'
T+ h8 @, h" `8 ]1 d; ~
# n3 V) \+ {: e* |% G% X keep if ddy240>0
6 P/ Z# j* s( O7 V count8 {' r/ [9 z; z+ p& |7 b& N4 e+ t
- E u9 @5 a; s9 H; { if r(N)>2 {
2 e8 b" a1 P7 U# H- S) D . m# g3 h" a! t4 v
pkexamine dx240 ddy2408 Y% z) @" q$ Y
- R( {1 R2 ^6 g1 q/ X2 B
local tempmaxphddy240=r(tomc)
) Z% Z( V+ H$ L7 r; B6 A, G: W6 f3 K % f) v* \ u" Y2 }- ]8 _& e! H: _
restore9 v" b1 x* X- F: w# f# q+ s
}
8 {8 G8 U2 t; b8 E: F( W 2 N% _4 X6 a. E$ T* i
else {0 [- O+ n0 t3 `( T6 t
3 z. s! ~) u5 ^
di "cannot find pmaxphddy240"
( H* ]5 z+ }4 V restore
& B8 n1 D- q% K8 [) o# G
' S3 C% ^0 Z+ F1 I2 o sum dx240
& a* M9 m: c Z5 \) ^& j local tempmaxphddy240=r(mean) , [5 v, e1 c2 B7 a# _
8 ?6 {4 X( ]0 H( H
& R- |/ t7 E8 ?& I" O4 l, n
}
& }7 }! Z2 I% |
; e4 {% X* B" B0 D$ J
( A* ?' X9 ]/ w5 Y9 p8 ?" b$ t
e8 W# A( @# R. _( s* _, U1 G
; X0 a8 s6 L3 m, C: O4 e r- q0 U: a/ _4 |, Z" C# c
) H: M5 I/ h- \( O: C( W. s+ g+ _
gen pmaxphddy240=`tempmaxphddy240' in 1
/ l X, C; |8 d * h- g+ g/ j1 z9 U6 g$ ?* i9 j5 b1 X8 ]
) f& e2 s8 J0 R; f5 @
*-------------ddy240pmaxp右侧低峰值 -------------------
9 W; A; W7 j' N: Z, k# |
, z0 c+ r8 i# h# p& V& T" A7 N preserve : d( i( x' t/ _ ?2 r
8 o( j+ E# @6 o9 `, g
keep if dx240>`tempmaxp'' A! K* ~) t; E/ @1 D; L
5 x0 X. C8 E _& u gen temddy240=-ddy240
e& s; b0 V0 x8 w b0 } # I# g) b2 S9 }, |' y) `
keep if temddy240>06 B- @. B. [9 G8 Z
3 E+ e2 N& m& l/ y
count
& k( i- f& W5 i: q; z4 {. N: x+ j
( ~1 @4 n" _5 Q* \% R8 |) A if r(N)>2 {) `' q9 h, P X% y6 ^0 T4 d
5 d: U( L$ ?2 ~ pkexamine dx240 temddy240/ K" ~, k! F% k6 b, L: `
& u* x6 A$ \- T+ Y; B
local tempmaxplddy240=r(tomc) 4 K. c. ?. J' U7 T- K; B
restore, _+ M* `2 u; M i( p& K! ]
}. e# V0 }) L q* `1 j- L
" K0 ]+ ~( w1 i6 E+ s/ z& Z. U
else {
% G" F& I: K/ C restore
2 M+ K- R5 C3 I7 E D di "cannot find pmaxlhddy240"
$ F0 F1 U- I, |6 k/ X1 I " V2 H& A6 Y' d! n, Y
5 ~. Q$ c+ n5 v sum dx240
. n O' P( A% \5 u0 W local tempmaxplddy240=r(mean) in 1, `% N$ ]* L4 f& \: O
7 R' F9 h# b' ]% v* A
! M2 p. D( W6 L }
: Z; U/ k* G; o \# K; t/ e
; V: W$ r a Q1 A7 d+ _1 P! A, } $ @/ N$ T8 [+ D9 w" J4 K
6 o9 x5 J4 C& ~* b- ?
: t" M$ C9 f6 s, A# n+ I 9 B( @5 \( A, m6 C2 e, c( x2 Y; C. N
* T' |0 J: w4 w: a gen pmaxplddy240=`tempmaxphddy240' in 1
' ?+ X5 N3 ^9 c8 H& u8 u& v9 ]
b2 z3 @" o# G' k; `7 ` *-------------------------------------/ H; i. B5 F }! v5 w5 s6 n9 ]- ~+ {, n
1 m3 }4 z% J7 r7 r& f( T7 q4 [
gen price5d=v5 in 1/20/ L8 X |+ a! l9 J
5 {, ?! A6 Z# _
gen price5yy=_n in 1/20* O. I" E/ A- k: C( e/ ^4 ^
( f, ^( ~6 U+ V A5 }7 e
gen price5y=price5yy*(dy240max-dy240min)/20
' U1 L, Z+ k8 ~, u+ \
4 d! [& G; Z, H: B/ \- j/ H' q7 P; S Y *price5y &price5d
; F0 P% L! i% ? D ; E2 I- j( }$ j+ b7 P$ j7 D
gen priceny=price5y in 1
0 Q& N: _* M. w5 J! U, Z
4 Y/ y: c. v& K. x9 q* ~2 l7 V gen pricen=v5 in 1* u- t& \) b3 V
( E* ?- O) X2 |1 U" X2 o9 L1 \$ ~ 5 H4 N4 M7 Z: ]4 y$ @
*priceny &pricen4 H* C, A' L$ B
. G- Z d9 }/ H2 g4 F( x
8 l9 l- K- d5 d1 y- G4 Z4 S
*-------------------------graph------------------* i* N; n; i1 \( K9 y9 u6 C
, P& j) A; l$ g! l& B( H
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)
! M$ Q; \1 Z1 W4 Z0 Y6 ]7 y+ U7 E( ~
- f( h) C: d) k: v* ---------可选项目----------------------
) G& a3 ?/ s% c' A; W
! F v2 I% B8 r; ?2 j1 v% v& ~}* @. C% X* T8 d8 b( c: Z- [; y
end0 E- j" x( p" a$ q# o) M. k: O
|
|