|
改了一下,这次运算应该没啥问题了. _ w# a& l* H' X# m+ w
d6 J2 d! v1 L E A6 Y6 x8 D! [8 J" m8 w" e+ x: M
capture program drop hello( C+ e8 B: @& K; m4 W+ X; w
! h/ A1 h& c ]' K6 N5 `
program hello+ K) e( g7 K4 N2 k; X4 V1 q
9 B3 L2 t: K: J) z% M" n5 t2 e9 t quietly {
6 d; m9 S* b A7 g+ z2 e G$ x3 [6 x% H6 ]5 F$ g
clear
3 E6 ]: O* x5 l! I( G* D
$ {8 W* n) y) L- X# m( U8 Q) Xcd e:\finance\stock\20110101\source
3 R7 h) x+ _7 ?6 l- B! _2 d: J# F8 Q, C1 ?
insheet using `1'.txt- K" ~; ~3 t& ~6 Z4 {- J" N; u# x
9 r; n$ v9 O& {& b6 Y keep if v5>0) c/ c6 [. g7 I! _! R
) Q+ F% a4 D0 A8 P @, u gen vt=_n3 X7 L; o. F& p% h, M3 B
7 y" [! k. j5 Q
tsset vt
* y. M+ q% A! }/ z, i. G
+ P7 |/ Z2 h y* X( g8 b gen zf=D1.v5
$ W: C" G- \$ k3 E/ o$ L2 d/ t' `! i, w
gsort -v1
0 P: q r# c8 P9 ]
$ V& u0 m& b, P3 @, c& ~ gen avol=v7/v52 I$ c, J* y4 f9 p: x
! G/ t3 Y, Z6 K: D' k7 X. F/ C1 R keep if avol>0
1 Q2 ~) Z1 J1 P+ G w ( o( I) @9 Q2 G5 c( E
drop vt* N7 @' G% v4 P! }3 y; |. j$ u
4 O' U G# ]* x" t( _ gen vt=_n; g$ k+ z" Z M: u7 L
E9 S2 d; L8 M
tsset vt
& g4 l, ?1 _# A! r6 I ( F% V+ K. }! ~8 G* B
sum v5 [aw =avol]/ m$ n& t& m0 e% g9 t* [0 G
6 T5 P+ F5 O! L8 m0 v/ r* G
gen amean=r(mean) in 11 ^. }7 P2 m& p
# i2 i$ O. ?$ m( j- o
* 总加权平均值 amean
6 ^; _ p; ~& l) n9 @2 a5 L& u 5 L% D& z6 M5 u4 a! L( b5 f1 K: C5 w
. `' l" J$ F# Z+ O! Q! [ keep in 1/240) k; m) u" m7 L0 E* h8 m8 u
$ T* ^8 x+ I& T6 r2 D1 r) Q* A4 W5 w8 Q
sum v5 [aw =avol]2 g5 H0 H# p% P( {4 l/ _
) o3 S+ @* ?5 v6 M
gen mean240=r(mean) in 1
7 [6 ] b. b$ P+ l- X" I. C: x 3 g: I8 k5 u2 q y* @! i
*240加权平均值 mean2402 t: S& A6 i0 u* G
* a: u0 p# l) p" U ^% S4 d/ |
set obs 500
( b& y7 }' e8 j7 i# _( \
6 W& E4 i( u2 v! A# [ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ {( L( L, b. ^
7 Q, Q2 a, K! j0 i& x* f0 c6 X) |* ~! V *240 kdensity(dx240 dy240)
2 i4 L+ B; T7 n$ n! C3 Y# \
' X, y- F w: X# L sum dy240- }7 }" L" @# [) w, j
9 [3 P! \! [( j) Z
gen yxis=r(max) in 1
0 A5 c0 v* P* p9 V* f: q
! I+ @0 Y0 [! M# `0 M gen yxis2=yxis/23 j8 j. P9 @; b1 ?, R
1 K5 O4 ~ L( x *yxis5 Y6 ?; O5 x% ~0 M
. F A+ p3 s3 \/ a: v1 P. A
gen dy240max=r(max)
6 M, ] L9 q# ]0 c6 _7 N
, H' \; @) K! U- a/ Q$ ? gen dy240minp=r(min)
, S2 V8 X- \) x1 n7 u3 S1 X) z7 m+ G# l9 S
1 J4 X& l9 P2 n$ [% ^ gen vtt=_n
6 k& {7 Y$ i5 o, u* \. u5 ~' z3 ]5 F2 s' T- T7 e0 e/ _
tsset vtt
* e* S' Z/ |/ x( ~8 J
& S% l) ]7 N' o5 G$ S- Q+ I4 f gen ddy240=D1.dy240/D1.dx2409 ]8 l9 c% b8 g" p
* V- O7 b8 U# `% K& h0 c" e0 D7 C. `
sum ddy240
& f: D2 q. J; \& _) V! Z , N% U8 H4 E8 E3 q- r
gen ddy240max=r(max)' B2 G: C$ z# F2 ?9 l: W
; O* @& q6 X$ v# y gen ddy240min=r(min)- F* z0 Q5 M( h0 N* O
+ k8 \5 `; T( n2 [2 h( m q gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
- N2 P5 X% N/ n5 A 7 O: r9 r+ {! R6 D& |% B
sum ddy240g1 B$ r1 }: r S
' F% ]( y6 E( Y$ w; W/ g
gen yxis3=r(min) in 16 e6 }9 C4 v; R9 g ?
- K4 T: s# [; l1 K& O1 D" n$ q gen yxis4=0 in 1 Q+ b) b% ~3 q' c' I
3 m% _$ X6 V5 r# s5 z *ddy240g
9 S3 @$ R2 v! p3 Z/ Q9 K
8 [# D, S" b- Z, L% G
; u0 K& n$ r: o$ ?$ `8 r; `, R preserve & ]! Y6 p; l- X6 r6 s/ x/ A9 e
2 w5 U2 b# C& w7 A! R& F, s$ x sum v5 [aw =avol]
, f; U4 W( E9 E( h; |$ y& W2 K - M X. P$ X! L& X! r: p
keep if dx240<r(mean)
7 v4 K+ i6 s/ A0 \3 U2 C ! e; k2 M" Z# Y( h) F* i
sum ddy2407 q7 n" F: {0 q* W! a
* c( L/ ^+ p1 I
if r(min)<0 {
[: @0 `/ P; m( K. M) T * X, }5 o/ [8 e/ p
keep if ddy240<=0
& }9 @6 ]1 }) Q
- H i, P; A+ q8 N, C" c, t+ }) O count' a4 F5 @* v3 R7 J3 s9 h0 P
9 n3 l, D2 M7 H' ]- B' D5 N* q if r(N)>2 {
. c! g$ z! ]7 h) W* r: o
0 U5 t2 k, | P9 I# Q% l# C pkexamine dx240 dy240: V! p. I% Z. d8 a5 G9 `$ w
1 @/ J1 O9 }+ v) ^- e- X4 _! K
local tempminp=r(tomc)
5 P1 p7 n% L, c restore . f6 o: O( O% ]+ Z! v9 w
}. p! s1 S. ^ u4 t. Z% t' H
8 |) W7 c0 D' M8 c
else {
. a& B1 ? T8 U, P( n8 x% G, p! |
, w$ F- }$ S' H1 Q, a di "cannot find minp"
+ V, [( Y7 v L1 _8 U P% G( j) ?9 I# M% D
restore 2 v8 q9 R. @- X' d2 ?
sum dx240
8 L8 G9 H* C. M( @0 `- b local tempminp=r(mean)$ G( n4 O5 i! `7 l! g1 [
6 n4 T. o; g$ G1 C+ q
}: W' g1 ?: W" a7 P7 v/ r
}. m/ R% i' A E9 V2 b
else {3 R6 B! T5 s) A2 }1 P- B: n
8 g6 N1 L! a5 j e! M
keep if ddy240<=r(min)
8 h; p- X# k4 w _+ M
; o+ {/ o+ u8 S! }5 |. J9 {6 y sum dx240% i$ w7 t! v2 S0 Z+ M3 H `* `
2 D3 n: Q1 z9 R; I9 y0 S; [
local tempminp=r(min)
& e* s( D$ n8 H+ k' | restore $ \# o3 n# j; c" x' U+ x4 T
}- P6 B3 E( M. }/ X% u) h
9 T4 r5 L) x8 w ~) A* P" R! h) f e3 [2 D
' E( |7 Q. L0 A# d* j2 Z
+ n7 z$ @7 ]+ k/ u3 x4 V
gen minp=`tempminp' in 1- i9 G5 s5 X& j9 M: q8 S8 ^6 h+ i
*240 minp% L& {) l+ x6 ^+ {$ l4 p
9 V' h+ _ e! O+ O6 O$ K
( ^+ g$ E7 M( {
5 @- w3 Z; |# m! @ preserve $ [) g! U" X' k- U( P! M
" c+ J& o( p) Y1 f sum v5 [aw =avol]/ u- j5 N V. N9 U2 g
( i" \1 T& d3 \/ m keep if dx240>r(mean)
- X; b( b$ A3 \, q# O * s- w3 v" `+ K$ B4 f4 H" z+ q3 J
sum ddy240" u) ~, x7 Y4 w
" K; T2 X7 z5 w* s+ {% k
if r(max)>0 {
+ O' |2 g1 y$ z4 j/ S' C( e
1 V7 R1 {$ {- j keep if ddy240>=0
( m& G# x* H7 a1 n' I5 w o . r* Q8 _1 Y: }5 m7 W
count
1 I8 e5 K5 I6 Q8 T
2 A# `7 \. a/ c- f i& O if r(N)>2 {! n" K/ A) b+ y/ t1 ?; m0 o: `( ]
4 M0 L. r9 g6 q$ z* K3 g! }% S pkexamine dx240 dy2408 _$ Z C! r8 \2 u+ `
4 m) M H% c2 [7 ^2 d; E4 f. S
local tempmaxp=r(tomc)
& x" B+ {8 T/ f9 G2 |* I; C restore
0 P% }4 l- e; M1 p) K- N }
+ S- u/ L$ j4 m& {: j: @
8 a# i) g1 n. E& o/ d
! ?& \* a, I" X; k else {2 I. ~. s. i2 v' A
restore ( @* j* P3 S7 `7 d: y
di "cannot find maxp"
6 V/ u% Q; X# o
, m. `3 N3 I/ w$ @ " u! \1 Z) g5 A% ~1 W! i: C( O) h
sum dx240
, i) S2 n& v) H, R* y% i local tempmaxp=r(mean)# z |% O0 K: B& \& u
% P0 k" P% G+ M1 \" t1 q
}7 X2 ^' e' F* x1 ^- M
$ J \% u4 C* [- z8 p# v. J
}
2 I* `) L( M1 c$ e0 e$ P1 @# ~ " X U8 m- f% a: h/ S
else {4 M- x; G/ y+ q/ F
# }. S+ ~- Z0 L6 c4 c keep if ddy240>=r(max)
7 T: l6 b. J6 m, H2 p- q8 {
7 K% n* g5 W. Y9 a sum dx240
) h( h( \: u0 }" |! x n, x
% L y% z$ ]. B/ `+ M; Q local tempmaxp=r(max) $ h/ L- Y8 I! [+ `7 u) ~
restore $ U# S! I9 x( o
}
, f, f8 I" O6 f- |2 C 6 \' r: L4 W% p; E* T+ ~
, P0 w! X9 [ q2 l' o! z* v
- z$ }4 K8 f9 \, H% _5 k8 m/ Z0 e& T. J) L' G: W
gen maxp=`tempmaxp' in 1
3 b- ~/ k. G" f" q9 Z, l; G
, Z' o | D. D$ {. Z6 V *240maxp
+ Q; b" d1 P& f
% ?" `! u* i% R
4 |# `! n7 i- v# A8 H ^, @2 Q- h" n *-------------ddy240pminp左侧高峰值----- b2 m; r7 q; v8 R" t; d# S
; Q2 v% r$ ^: b" o) a0 a preserve 1 \1 m$ L- M2 @$ j
" l9 K7 u; j( \5 X1 m' `
keep if dx240<`tempminp'* r6 G4 S X- O
$ _; Y4 e, Z; I
keep if ddy240>0
2 @4 a+ r1 p( y
4 V0 l$ k0 }) W9 z8 h8 q% N* A- l count' r0 \- u- T: Q
. P4 B" S' I6 t W0 l0 i/ g
if r(N)>2 {
5 t' q0 {& q$ a, t0 y" f
# d0 y2 `( R, | pkexamine dx240 ddy240# B, X7 G" c% u. B9 p
. ^7 W, _6 d- R7 x
local tempminphddy240=r(tomc)
6 |- T* t+ z4 X1 K& ~$ h9 d( S' W. D restore0 |7 T) K# U: |, q
}
3 G: l- Z+ e6 L K / ^7 s- o' r- ^- e1 b P! O/ o2 x
else {. Q) D/ c: j% E& p# j
restore
- U, j7 a1 }) N% c S# L6 l, E' G di "cannot find pminphddy240"
2 u& X, E+ Q0 b" I% @
2 v1 f' r7 V$ C: v7 F: H * {" C% ~* W# U& ^2 C( I
sum dx240
2 v! D* n9 a6 h0 U1 N local tempminphddy240=r(mean)
. b }8 F( N C1 K " l8 ]1 y5 i' i" h, i3 I
2 e& V# N9 n _$ C }
; D) n" K& d- S, F1 p3 l# P5 j$ A
# L T# S ?2 o! n% K& w, h 4 ~$ {/ D2 Y$ b( [- r! ]
1 h$ ~' a8 m" y. M
1 x0 \/ r. ^; ~ u( K* |
3 P# |3 D) c5 N. v# T, w 9 Y% B6 }8 o1 C8 F7 ^$ t) I
gen pminphddy240=`tempminphddy240' in 1
1 T% v( m8 Z' t% ?7 R * _" k, L! u7 y& _, c# e) D: J) W
6 B5 C) q8 i; b
*-------------ddy240pminp右侧低峰值 -----------------& J+ y# m, j% ^9 C1 a: @5 l& v
preserve
) \) s' T, A; X/ [, F- s' X 2 \+ z' }- o+ r$ i* R* w3 W
keep if dx240>`tempminp': \% _* j# s9 h; C3 M
& w+ e; {1 [7 h1 R$ t2 m
keep if dx240<`tempmaxp'+ K! H- W( h6 B- z' v0 V' F
5 t$ R) |2 K5 n; ~' E4 p7 U. X
keep if ddy240<0
3 S. u, N- z k9 ~& _8 c% P2 V
: H3 {( q# @3 I0 Y$ w T2 e! X gen temddy240=-ddy2401 I( `. ? c* i M" t7 Y
% o4 n! l$ ~3 {$ v( s/ f
count
1 R* P0 C/ U* g1 y6 I( \ . [, H8 L1 V9 E: Q+ Q& u
if r(N)>2 {) ~# `) i) ]8 r4 }
! L4 f; ^8 G9 B R7 _- ^ pkexamine dx240 temddy240
3 H N1 n4 B7 j1 M0 n " a J& Y( N. u8 C; l2 ?
local tempminplddy240=r(tomc)6 E E1 S. c& ?) f J& A
restore1 h4 @5 L; C! o5 U# r
}& K$ j0 G: D( Y ~! {
/ R, N. ?$ Q- s6 k( k else {
5 @( w$ h, j6 @
' c0 O$ K- K# g6 @2 c di "cannot find pminplddy240" \2 p: x% X5 x8 d1 G. I( \. t3 f1 F
restore! {$ i1 M& g+ r- o) v" p
: U, F H# H% H E1 [ a sum dx240$ `7 M t/ Y% E% r
local tempminplddy240=r(mean)& x4 R+ I! a( b& k: D7 [& L5 k
+ x. V! g* Y" q
+ ]' R" S+ `3 k- R }
5 @: n# u/ H8 z% r
5 {+ V: D) \2 I 4 y. |8 {' f4 |+ x# c) e- b3 }! e
/ f- Z. N- p; v+ e- S " z+ n9 e. F3 H! t& Y
4 N3 m) H% y+ S8 y! f$ B: M( s. \
gen pminplddy240=`tempminplddy240' in 1
/ }: ?. K' u: y" H. G
1 i& Q$ U- m" T. }& g7 n. d- Y *-------------ddy240pmaxp左侧高峰值 -------------------
v- K. o! L! a' j: [1 D, d 2 J) g3 [& _1 M. O s
preserve
+ X/ V; E, S6 p& `( V0 N3 N0 W! a2 ^
& D% M; q7 f, i keep if dx240>`tempminp'
$ m* p) r$ z9 N8 A1 M3 u" W
, K+ j$ I) p" d keep if dx240<`tempmaxp'5 h3 F$ V" d) w* X# \
/ B- a$ y9 z( ?; N ~4 d* N9 s
keep if ddy240>0
( B, U; v+ a$ S1 m+ i/ T* V3 ~ count4 O* p8 }! R) \; I: f2 F0 V! L5 J, q$ i
5 U/ }( t3 v! s$ e7 }1 g if r(N)>2 {6 C' `+ T; u) N$ U5 V& }( Z
5 E9 U, z& f% A; f0 h; A* E( p, T( ~
pkexamine dx240 ddy240
! c( V. W* h- q( D ; U! C' {7 X, ?& L( N
local tempmaxphddy240=r(tomc)
3 E; ^5 u: t. j5 R' }& A0 M
! c }1 P6 f) I# l restore
E- x2 [$ J5 g# L7 |. } }' ]# d1 p/ E8 |; \9 n, l
, H& @5 T% `9 u% p" k; ] else { ?+ Y* j) X4 K8 E) K
2 ]; [- s2 j+ {% z% D. A
di "cannot find pmaxphddy240"! J C5 p, a; c5 `: W7 }
restore7 x+ z, Z8 e& B
4 z$ t2 k* A! q: V5 t sum dx240
O) f! ~% [8 Q4 b w local tempmaxphddy240=r(mean) . B5 d/ S4 L) R( d& t5 l% n
5 L* n* S! d0 x7 U0 _
* ]5 h4 n% }1 V6 v. q* P }
3 H1 ?# t/ F9 ^5 {
/ Z' w% [) ]4 e& j& `/ N / D7 ^; z3 b9 s5 T, c% {
9 ^4 H( C; S# o) P! a7 ^( d# s) W
5 e; ?) @4 Y$ T( H& I0 F5 l! b
. A) i) c4 Z! ~6 r- Q8 K
/ u9 \1 G# J4 T' S: I
gen pmaxphddy240=`tempmaxphddy240' in 1
! s) W. a/ ]6 Q! n' w% B * h: c5 a7 Y4 G6 P2 m
2 Q) t' R7 E' c0 \! m! w/ i
*-------------ddy240pmaxp右侧低峰值 -------------------- C7 u/ {- M1 g/ r F
. f8 W* ^1 P$ P7 y1 z* x3 N preserve
& v' i( i( [ Y% v5 G : R) W, s7 Q% N! j1 _5 g
keep if dx240>`tempmaxp'
; _: D4 w6 n. j# ?# D7 N . l# N: \: I' V
gen temddy240=-ddy240
; B% T7 j' U, U* S3 p1 A & i* ~ P+ ~4 W* i) u# v
keep if temddy240>0+ x3 X5 [/ h8 C
. D2 k1 R/ E$ V count9 h' U8 ?& e& r/ J9 g; E6 `, u
6 h5 O/ y6 s* b ^) o+ o if r(N)>2 {. A, ^0 g7 ?: }' n
8 l Z# U. ~% |3 F4 h
pkexamine dx240 temddy240
" C% ]& f+ m- r. X
+ l) `6 g0 x1 d; ] w# h local tempmaxplddy240=r(tomc)
, v- O3 f3 S5 x5 P( B restore
% N# d* C9 K( o, K" F8 t! ^ }2 d9 A& I$ e" n
9 T5 Q+ J3 X$ J' a: u# f- z else {
9 J' c- I5 E! L' ~5 r1 X restore/ A; D, O" p5 ?9 Z6 r: D
di "cannot find pmaxlhddy240"6 O. \- y" `8 C- e9 K. W
M( O9 z9 M- V) J% V# M
g! S6 T- y# n' T) A/ a! ? sum dx240
& I0 N1 K( h. C! H% K local tempmaxplddy240=r(mean) in 1$ Q5 O( T, `! }4 F5 G
# W) ^; }$ B u' R7 m- i / O3 R; Q- W) z. a% F3 z* D
}* S4 L ~8 K1 j4 \4 `5 J
6 U4 M7 ~) m. M: I
$ ]- Y5 E) X% g( o7 N% L 0 e& j/ ?4 a! k: J8 O4 M
% c: U# y* P& Z2 ?: G% N9 ? % K# [8 M4 d; S: B
4 a3 S5 [4 `0 ~5 s, _0 o
gen pmaxplddy240=`tempmaxphddy240' in 1
3 x7 k$ ]6 F( J/ t- G1 t4 i$ _# `4 A
* _. _+ ^0 q' T- X, H! S* C' f *-------------------------------------
. `8 _ B) f* V
+ P, H5 g% b! M: l- q* k gen price5d=v5 in 1/20
( o' }- r7 o5 t) z; m( b# l# U
3 M& J6 ]2 e6 S# r, m2 ] gen price5yy=_n in 1/20: o5 P0 V: ~" A. z" g' X
8 ]6 M$ l9 q5 L& G
gen price5y=price5yy*(dy240max-dy240min)/20' c7 | @) U2 |2 D) n' i0 X8 a
9 ^9 d% R- B4 a4 C2 Q. u; j *price5y &price5d
- X v5 k: @- N
/ a& ^, |9 A) i/ L7 r" R7 G gen priceny=price5y in 1
- O( U; t2 l$ l4 h
" ]. X9 m; g5 b. d0 | gen pricen=v5 in 1
4 f: u' H0 i# P# R u# r) K; C: P, u0 c& q; }2 D
" ]% ]3 c0 |( @# k7 o! O' y. y) q *priceny &pricen9 @6 }% T# v# f( U. N2 r8 x3 |: E
. C6 x v8 q6 q: E* \ ! P9 c9 f: i5 m
*-------------------------graph------------------
0 m; X2 h/ l( l+ A9 e5 `5 H8 O6 ~
- `$ h) K j4 @8 F" ^ 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)
0 S2 [7 w+ _9 M. O- B g7 S# Y F- V! j: Q% D
* ---------可选项目----------------------
: i+ \5 B8 D* Z/ w9 B* K
( t) y$ L/ I' j ?% E6 T: b! n4 B}* }! R2 D* C7 B" q- X9 H3 s3 q
end
! l3 v3 R6 t: `+ F) z/ e0 L |
|