|
|
改了一下,这次运算应该没啥问题了! S' h/ Y7 h9 I/ B
1 d5 ]2 u e" P7 m; D2 w. o h9 E9 s; t( i( I8 I, Q* m( }+ j5 W0 q4 G4 p
capture program drop hello1 s* F' Z' G$ a) t! y* f/ b
7 H ^# Z- e& Yprogram hello) r/ C6 @8 l( L2 K8 l" P& Q; ~8 R
% I* V6 p- Y7 Z) u& s6 ] quietly {
7 n2 w0 A+ ~. l, ]' S/ n: d& ]$ w8 [. t4 h$ E8 U
clear
, R( _" A4 M; Q) w/ G( `8 v1 f) i% Z" ]
cd e:\finance\stock\20110101\source
5 c3 }2 V4 ?! a( O0 x4 P9 P1 A% @: U0 B; F! b) ]0 o9 z
insheet using `1'.txt- n# n A) s3 R" }9 k
! a* j% M3 U. C+ _* X+ F
keep if v5>02 L3 O$ Y- }# R2 @% S
- z$ u7 h5 @' F; O. R) ]% @+ K) E& U gen vt=_n$ T1 G. ]6 i+ `5 t: {+ {- w. m$ |
0 k' I& l1 X7 ?. U6 k tsset vt
/ _( V/ s: Y/ _: K" `4 d. O, }+ Q8 @
- j6 X, A& x7 K& k3 f+ T8 _ gen zf=D1.v50 Q8 F3 V0 X3 C8 ]7 B
6 A' }6 ^% U( Q+ N7 y1 @
gsort -v1
. S6 P9 f0 | p0 Q& Z* J* @) q; N2 |) | z% `
gen avol=v7/v5
0 n) f! i) ~/ [" o
# o, F6 G* `, ] keep if avol>0, T# e4 e z6 ]2 b" G$ V+ M
) K* T: E: ]* g' d: J
drop vt
# O0 w1 X" x b4 Q- ]8 o: b
/ y/ b/ [- ~* ] Z5 o gen vt=_n
; H" ?' a) t$ o. N0 j4 v* W0 B; ~# `. l; D
+ {( q! p0 J! c3 Y* s4 {. r tsset vt
8 s1 t1 D% ?! Y
[7 a2 }, D0 r sum v5 [aw =avol]
$ x. s3 \3 ?( B8 j$ S% L! `8 ?6 j+ r- d) j' Q* Q" w9 i3 d
gen amean=r(mean) in 1
* {) A: _6 ]3 X' e" p 5 o1 [( b& Y6 c* s+ {2 V
* 总加权平均值 amean
: j0 M! \- _7 E+ v& \
- |* b. ?! K% [& q q# {
3 N/ f }# ?+ |& p! @" m: v$ _0 { keep in 1/240
7 K- \, i$ T* y& W* Y! f0 D/ a
) g h. h; o8 b* s: X5 ^ sum v5 [aw =avol]5 {' c2 e& h, h! w0 @) Z; w& `
! j' x5 e- V1 |; `& ?+ n8 F( g
gen mean240=r(mean) in 1
R/ H$ p0 g, J4 |+ N, g
# r; V f2 L" Y; M* ]. f *240加权平均值 mean240
1 @. k1 J' n- G! i! S0 h1 f
$ [8 L C' Y; d; F* A# ] set obs 500
7 Z6 H S0 A$ H* |
; p5 d j- j) F: N& {: x$ g kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
, D% v$ o) H- q$ Y2 D
; X' T# n$ |. |" {! _% F# e ~. F *240 kdensity(dx240 dy240)
' q$ Q, Q3 Q+ O" V7 G) _
% g( X* }5 [+ v* o% M. H" g sum dy240 `# X6 U/ k/ m; h- ~5 [# u- V5 j
5 M) D9 k2 Y% }% _2 q gen yxis=r(max) in 14 h! L g. ^. w1 T1 }
" k4 w k5 m6 \$ X
gen yxis2=yxis/2
4 A+ }0 ^. p" }$ b5 r$ M
9 j! I4 I7 i! i, L9 L" m: D$ I *yxis- ?) y( u1 Z3 O
1 h6 m; y5 j" ~1 p6 K9 Z
gen dy240max=r(max)
* i' |% U, }( d4 A2 R5 W& p ; _, a1 K3 m8 j) W
gen dy240minp=r(min)
" r+ `1 M' C; W: _5 m 6 o3 o0 B! g- y0 \2 h7 U! c
gen vtt=_n
/ @; P x& V5 _6 \- F8 G) Q! o
/ `* k6 Q' A$ t r# I tsset vtt
* S* I+ u) o/ I8 _1 s% y0 X. g, k) ~3 O: O
gen ddy240=D1.dy240/D1.dx240
7 ]5 F3 \: K$ g & x. C* g4 V* o6 M' S. A
sum ddy240 f, Y3 I, u' ~! g& J. X
* |$ _1 t0 K' g1 z9 L- ^/ S1 p
gen ddy240max=r(max)
/ F$ M( a \- e) d; X, ^% S4 X * z/ l( q& C% ^0 n
gen ddy240min=r(min)6 M: J2 |/ s0 E' L3 _; w. T
9 c% i) N9 b3 d% U; [5 ?! G
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
4 r( y# n1 E% j5 Y l( a; N
7 y0 ]) |* }: f" `6 ?# t1 \ sum ddy240g
( L8 N* q4 h% }1 u, X P/ Y! [ + E5 L* B6 i. t7 F K
gen yxis3=r(min) in 1
& c% u, }1 n" z6 P8 n; T; U
& d* k3 v6 c) Q! \. G1 p( h' ^ gen yxis4=0 in 1
% }- @$ a2 R& q3 i6 K4 }- ^9 V7 ~; D2 Y
" h$ f- B1 r' l: E& p1 u' ` *ddy240g , ^4 q6 D6 e+ k+ ?
- O$ k: X) G" n
! k9 a2 f; _3 ^3 G" i% T
preserve
' Q1 F: K& D: @' `/ b6 k4 H
/ j1 C) ~( g5 B( [. M sum v5 [aw =avol]
$ l6 d: \; t! L t
: T2 [. |7 H5 G q0 g h/ p, d6 J keep if dx240<r(mean)
3 \) R& r+ a W3 O
W; f) N4 C% H4 e) p3 P" I0 P8 ~ sum ddy240
6 |0 `3 v8 e8 z- _ 2 {6 ]( m; @- W, D, I0 d" P
if r(min)<0 {
; y$ I- ^8 M7 s
p8 g* x4 b: e' t9 e1 r keep if ddy240<=0
% c- `0 [0 l, S* {9 u8 w* F# l9 W* _ 8 t" o1 Y6 y; U" F: s, M" C- W
count
+ t& r! O6 q' R$ g/ Y/ G
+ j, V+ J" @ z; ^# q if r(N)>2 {
, b: e& f. h$ O! ^' N, q! ?+ Y" S9 {/ Y
# ?3 h; s1 B* w3 e% o% } pkexamine dx240 dy240* b& n* `, _9 K
* o q" g' G6 e8 X
local tempminp=r(tomc)- r) h. [9 h8 D9 N
restore
; {7 k& I0 S, t# @ }. S3 W& n) `" E2 l1 x
% e. k, U7 o1 ? `7 C `
else {
n$ V3 Y' P. @8 Z, V) c* `
( _* {7 T2 O1 z di "cannot find minp"- H _# P0 |6 P! S6 g% L& W. J
1 w S( g. b; Z4 j' F6 Y# ?& ^
restore
' j; O+ l7 l& z0 O4 z+ p1 O2 U sum dx240% H9 x9 V& Q/ M! K& ?0 L5 |
local tempminp=r(mean)! |( A1 H6 y* R
8 Y! x' f6 s3 }. w/ Z& _* O$ M
}* u+ C* S8 v7 w+ ]
}/ W2 Y" g6 ]- v4 i8 `
else {( m. w- ~/ P6 T) Q5 O3 |* w( F
6 i4 Z) j$ C6 z R0 O/ o
keep if ddy240<=r(min)
3 a% f, ?* ]" T! a - j" y. \4 M O: L
sum dx240
6 `2 o. U- T5 ^+ g! G
6 o/ O8 a# e2 l% n& ?$ f$ _2 t; {+ m local tempminp=r(min)0 K. m: A3 u8 x( W- c
restore 2 Y+ k4 k. g/ W8 M J h
}2 E, f/ E: h9 }
% V* N0 F& z( {* ]" G9 [1 K9 }. B9 B. z: Q6 n: U
7 X0 a0 e' X/ d& C# H gen minp=`tempminp' in 1- D; J7 t: p8 V) X2 p
*240 minp; h& f) l# U: R: M- j$ x
D; F p- L+ r6 d7 ~' R
6 l. D( e/ g: d0 Z1 q
: h9 D" `4 m1 }$ L/ ]
preserve
+ z) Q& \0 g2 Q& K! x0 Q , K+ b: a3 v# L( G5 h4 B2 N0 R% M
sum v5 [aw =avol]8 H% N: u8 A$ a
, H) A) s/ ?" m7 U keep if dx240>r(mean)7 j8 H1 H; p0 ~6 w. a& Y
9 i) \8 u1 K! B* S0 T$ m& ~$ a
sum ddy240- D( p0 d( w% b2 e% o
h4 a1 H1 C6 S2 T, M: f if r(max)>0 {
& d0 a3 t: g! g8 D
% [ K8 l0 b5 A% G( {$ @' {6 j keep if ddy240>=0
0 B* B7 u, _5 k8 l) n. W2 ]* g V2 } 4 c; i, K& [# L" _0 y
count0 D% A h) C; C, Z0 @
0 g) ?* x1 N7 [' Z g if r(N)>2 {
; D4 O. ?& e: _+ @, z( T- c) w7 q ; c2 B" Y0 s# }+ Z
pkexamine dx240 dy240; |8 H# Z {+ Q G2 H4 y) T
8 K0 p8 a- z: t local tempmaxp=r(tomc) I5 m/ r9 f2 Z' e
restore ; o T$ Y/ p, h2 E
}
5 a# V) \* i' v0 U9 Z5 _+ h) Z* W4 f
. m Q0 W9 C0 q+ _7 a 7 O3 [: f. z6 ^ x
else {% b6 w, R/ l, |$ A
restore 3 t4 Y5 ^" O' W, \: x. e
di "cannot find maxp"* P$ J0 L( \8 t; L. ]9 B1 Y5 h7 x/ i6 ?
& I7 S" Y4 E" c' u8 H* R8 d
2 h8 V( e# A1 W* h" n8 a- G sum dx2407 g/ ]" q( M$ l" k; g2 w
local tempmaxp=r(mean)% a z) i, M* R7 B& b3 i1 ^
; ~1 \* `' G1 J3 j& c1 S3 k }) f' y- v* R. H# R- [5 V
- w, e: L3 d7 y) o' I! \+ e6 W, y o0 p v
}
# ?& l! s/ E5 X1 c
) y, |! i/ G) T9 j- y1 I+ h- v0 Z else {9 i( x7 ]! _ ]& [+ E' b
" H4 z/ C3 j& s- G: A keep if ddy240>=r(max)
) q' s5 v( B# d; Z; E * Z' [- B2 @& t5 k- M/ G2 \6 A* V' _
sum dx240) t( Z4 R$ ]8 x/ X. u( z4 Q2 Z
7 m' y: u2 }3 [ {2 z/ z
local tempmaxp=r(max)
" E X6 R% f* R4 f2 _ restore
5 r# p3 ~* ?6 Z2 g: r: ` }
$ ^! t0 ~, _2 G# a 8 T0 }: K2 }: E1 W+ H) d
: [ F3 r* D. d; M3 P, j3 k
, ?8 a& t# h" b L- c, D5 H) H/ X& i) n/ ?6 T' N+ `( n. S
gen maxp=`tempmaxp' in 1
7 w2 \# d- C/ I- k4 z( b3 @/ S% f l " o& l8 H7 m% v/ m9 `- ~
*240maxp
9 B: \0 H9 r( K/ d1 C 0 s- _# ]& \! F
8 o# q( E3 y# O" Z$ E: G
*-------------ddy240pminp左侧高峰值-----8 X( R. o( T! l$ u
/ g4 K8 z, i$ G1 [
preserve
2 T5 j) I3 I, w8 ~9 x7 L5 e l& @
! g+ X; J. h1 |% \* |7 P( u keep if dx240<`tempminp', M0 N. `" I; }$ O
( B5 x" u* Y1 A" e, h9 X/ U keep if ddy240>0
( ~0 J8 _ L7 O# ^. L. w ; g, e! g! p* a, l8 s
count8 s# g5 A. A6 J- P+ I
* d. L" Z" G t/ W1 \3 a3 C- H if r(N)>2 {8 m6 ~2 e4 i) m8 ?; U' P
5 Q8 i% _+ m: d2 O8 } pkexamine dx240 ddy2402 ]6 ~) E4 N2 e) E1 B+ K2 x8 T
6 P* z' O9 g+ v& Y! ~7 T
local tempminphddy240=r(tomc) 6 R; X$ z# M. T) c* }+ L; f
restore/ _% W+ G; {1 }% M p0 k
}7 }! d7 u2 ^5 v
2 n0 y& k6 D5 t& o* a
else {6 I3 o- ^1 A) D x) p
restore
! @' ^4 \* V( K5 Y di "cannot find pminphddy240"; p3 \# X1 i1 m/ r+ f
; w* U5 i6 T1 D2 |' K
6 K: O% p v" V7 T* | sum dx240
1 D: d, }. }3 h+ `. z; } local tempminphddy240=r(mean)
6 M/ ]3 X, k. `2 i( N * l2 X& z) o4 x
0 U1 r0 }5 u( \+ N: \4 |' M2 x( v }8 O' _# a. o) @
" D" s- `# k; c6 H $ y" c8 [6 N$ z2 i
: N4 U. u) Z) ^3 z3 m
8 B: I) u2 g% d( B- U( `
0 W8 |2 z: E; X0 ~3 {& _
1 ~% }' q1 x9 }& ~6 d gen pminphddy240=`tempminphddy240' in 13 m# f3 |7 R! D. S% X( _
" y+ l) ]- R/ w0 w
2 d3 ]% S; m& H t2 v *-------------ddy240pminp右侧低峰值 -----------------
9 Q- A4 j, a) h d* @3 D preserve
5 l# j/ _3 B0 b9 a0 |: _9 v% H8 |
, V& N$ s+ |9 ]- L6 M8 n7 S: ~( {, E& U keep if dx240>`tempminp'
, B+ D$ ^" }7 d# Q1 ]2 x + o# t, r! Z! ?4 C+ H1 T
keep if dx240<`tempmaxp'
5 r+ V8 f* ]) o
1 |3 k) R" \# \* K4 U% r- m keep if ddy240<0
5 J; d A. t Q2 U5 x8 C # I2 \/ B3 I- m) k
gen temddy240=-ddy240 O+ m6 _' p9 ^7 _
; K! O3 a( t: O6 L" c7 _+ J
count5 a+ \5 B0 E. M# l3 C: g% f8 [
* ` Q" `% x8 p" r7 [1 ^ if r(N)>2 {4 p- j$ F4 X- F3 P
( d- { K. X4 _/ |6 _. h pkexamine dx240 temddy240
8 P6 C; W, B% _ ( b8 v0 M# u( b9 {1 m) [
local tempminplddy240=r(tomc)! k* @ R+ s N# }
restore
7 H" D7 C8 n9 s1 S' Z. Q& I ~ }$ o8 Y$ E# @" |$ X) c0 y$ z. _9 X
4 M8 r5 `! b* O. N) e; ^; ^; e
else {1 i' @' T# ~5 Q) R" n I
2 U# L; Z6 M* K4 p8 _* L, }
di "cannot find pminplddy240"
. r. v) N8 Z! G3 D/ { restore/ T7 B- j* Q3 M9 ]+ n) S; y- V
+ U! m( |5 N- S sum dx240* q; r+ T/ z1 ^ ^+ t; n
local tempminplddy240=r(mean)
4 b+ u; V; C" [3 D : k5 w% b4 i& Y
* u R: Z6 R% A$ f6 N7 f
}5 R3 B. t! N9 b9 j8 | [
% r3 ^7 `' z# W% k/ {; o / `: F! s9 b. K3 ~
& \1 f) E& f+ O6 H
! G+ J h6 ^; y- j% ?
7 Q0 W0 V$ z6 b9 a
gen pminplddy240=`tempminplddy240' in 1, P+ n! l# ]' T$ X3 ?/ J5 k+ }
* `9 f/ _7 X9 v( N2 n I) @+ J8 a *-------------ddy240pmaxp左侧高峰值 -------------------+ ^3 g$ C9 Z2 A: v2 g
# K% m0 R1 _( A% W. l
preserve 3 N0 K; ~1 _- e" _3 l8 b4 p7 o
! T; |; C: l/ s keep if dx240>`tempminp'; \- D7 `) V+ T+ k( `& B( O8 c
, ?) L# V- p" u. I7 i keep if dx240<`tempmaxp'
8 b8 W: S C3 W* {+ {; n5 A# L $ r7 h% V! a5 b, `* V2 `, {
keep if ddy240>0
4 y; k' a1 }( Y' R count
6 r4 k, ]8 U9 z% L' ^
/ H6 p' t7 ?6 L$ j: K9 w if r(N)>2 {
$ r6 ]" U# i! t" @ & O& I& M$ W" L3 _9 r! d. n
pkexamine dx240 ddy240. X3 @ p0 p* K5 e" J4 @8 d5 G1 I
- J2 i X" ~, @; R3 E8 @: W local tempmaxphddy240=r(tomc)
3 {7 R3 L0 x2 p- s( j% o; T 4 \" ?. u" g& u( k. }8 o. n. Q
restore
. n- _6 a Y J) [8 r* {# X( K } T K# R. R' ?2 w4 E w
- Z9 m0 _# f2 `* P; T0 f) L8 } else {$ U& a. Y2 I, L
7 h4 i* _* Z6 I$ E5 m2 ^6 N* G# I4 K di "cannot find pmaxphddy240"
7 f7 P: f- K1 B restore! s' o8 E* `+ B+ l2 @5 e
, j+ a n. b- ^& h' r; f& M7 m sum dx240
, W; @5 i- y F) g' ~2 m local tempmaxphddy240=r(mean)
% e% a6 s! k k) X6 h2 b# ?
2 z' C" a1 M+ c1 V6 w& d + _9 K; T0 {& ` j
}
$ x9 O) z4 B8 `8 U
* g* M: A# F: O+ Q+ F# b$ K
9 C) j3 c+ \0 z1 r! h" |$ E9 L & ?/ p5 D" ^" h/ R. ?# q
2 {$ \+ J& N9 e. }" S9 ^9 ~" V
% u$ n6 W) J! S
8 L/ ~! r$ x& M$ n2 @, D
gen pmaxphddy240=`tempmaxphddy240' in 1
1 m) T& f* U, A, ~2 [
% f% v! w$ {8 G E( f
7 z! ~$ U$ ~! z *-------------ddy240pmaxp右侧低峰值 -------------------
" j: E2 x/ }, k* r# y , O+ c2 U/ F. s) d5 h5 ^/ [0 C
preserve # Z) H2 g [* D! u: q+ u3 _: Z
- {) R# V6 s' `+ p+ _7 T
keep if dx240>`tempmaxp'
/ {% E) f% k8 R2 O6 K$ L! }
8 h/ y" |. f2 F W r2 ^0 Y! E2 W gen temddy240=-ddy2406 w( Q2 G" Y* d' C
" m: R" r# y* M3 T: s! F6 ^3 u keep if temddy240>02 L3 D: Q. a6 ]1 x- f
1 q5 d- f3 m" h1 K count5 p r6 f p; k, s- _& U
5 g- W+ g4 d5 L1 ?
if r(N)>2 {3 C h1 y; L- Q+ p, {
% n% q4 i& p+ J2 m- Q pkexamine dx240 temddy2400 U4 ] h, n& r" F( ^( A# e0 |
& u4 I' u4 L( L" q# q N! q
local tempmaxplddy240=r(tomc)
, z$ F4 F, F; w restore1 V; _: E1 b, G, {
}
! g' P* n! i$ S2 l# s$ E
0 y/ j/ H6 X, y& R- Q9 P. O else {
+ r5 `9 n! Y: l3 s! n restore
7 H& a0 b8 P2 v# k! g ~ r: } di "cannot find pmaxlhddy240"# c' g5 r" X3 p5 R7 l6 P9 `
7 m4 v& w: M& w4 q- ~ ) H( l( z: Q9 c9 l1 D c5 r
sum dx240! ~& w1 x9 V1 `7 d. [1 ?+ N
local tempmaxplddy240=r(mean) in 1
0 e M( a* d7 u# a3 P Z
8 \& ]: q' X& U 7 X& I1 m+ g, {! ? q4 z1 T" f
}8 v* P: x$ O: d% p
7 R4 ?5 E/ N0 O" A" L
; L8 D2 ~- j, _( _" C$ b
4 d! B1 p* D* S; ~: d8 {9 t 7 Y$ S1 w; n- P+ p" u+ t
6 A5 {6 C3 L0 D! o" g& f
8 f6 u+ k# ~7 @ o: U5 L" E& [
gen pmaxplddy240=`tempmaxphddy240' in 1
/ q6 U" R5 \! F w" R+ ]) r: R$ z( d' \" J/ T
*-------------------------------------
^& Q% w$ R+ t* p, t
+ R3 C2 F7 v4 @) P$ }, B gen price5d=v5 in 1/206 J- j2 D" l3 {
+ l# m, B4 S! L" u U! i
gen price5yy=_n in 1/20. ]) b& T$ d- X( J3 @( ^& @- o9 G
! a/ }5 @) y* ~; g% O* _+ F) D# e, |
gen price5y=price5yy*(dy240max-dy240min)/204 P( @$ v$ i9 I
2 L& Y- J1 B0 _+ y *price5y &price5d
' G9 o2 q: j& m# n0 [7 d- j 4 ~- C5 R" E+ o+ R7 x
gen priceny=price5y in 1; c4 R+ l, s2 ~4 W
# [+ P0 M9 ^% r# }0 v; m gen pricen=v5 in 1* Z* D" O% Y! v* H' ?) k
7 }2 b: _# W2 E7 V0 v9 K: A5 z
/ q: J" C! o4 _. d *priceny &pricen
8 S1 [" t; p; X4 q, m# s
" I" \) `; M0 t [- u
% c9 @6 I8 C* ?0 T. p A *-------------------------graph------------------* j) X w( H7 M0 w; {) Y9 Y$ ~
' B! }8 J# s b' ?5 a, `
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)1 o- j! K; b' Z# o
/ n7 |$ i- K8 C7 B; d2 U* ---------可选项目----------------------
- W L8 l. m: |* B* M; k) z& Y6 q* m- H1 f" t- `: |) Q
}
, m: I% j- H* N, V4 K" yend5 G3 @( X x' p$ _8 p' W R& Q/ D) z# W
|
|