|
|
改了一下,这次运算应该没啥问题了$ H% w* W% w7 I B5 a9 M. B
$ H, {: H Q. O& y1 C' @9 s4 L( V2 h1 S* R3 P
capture program drop hello! Y: B. w$ o3 H1 }4 Y7 f: T
2 W. u( l! i" uprogram hello2 D& `* _) B8 `8 W" _+ F6 X
2 t4 S) h% n1 u# T* W$ ~. X quietly {+ y1 f' C* |& h7 @% r( t
8 G( O! m# ]9 Q7 _. rclear
) B3 [9 t2 N" s# H
! B) H+ G2 N5 Bcd e:\finance\stock\20110101\source9 r8 l, r4 ^7 u2 W8 W0 o% ?
0 Q7 A" \9 f- O, E, O
insheet using `1'.txt
+ V7 x0 z0 w- A: J9 [# O2 w. T- F
keep if v5>0
& S0 u& c$ Y" ^% r6 V: s
* n4 L) V5 l9 `7 P$ E gen vt=_n
* \7 p4 i. Z, |# U" L # H. X& V) d* i3 p7 I& u
tsset vt
' ]. N( ^, j4 Z% R$ I. C
7 U$ n" [& W1 l5 Q: W5 g gen zf=D1.v5
, F/ p% D8 M& N1 R. u) A! w, e: s0 A1 m
gsort -v1) h! T" ]: w& m3 n
8 I- ^7 Y7 J* `* N gen avol=v7/v5+ M+ b5 |! m* g
% s7 y9 N' c! Y/ L6 M1 J2 L keep if avol>04 s1 u6 d; d# o9 j, ?8 H
' z0 I* A3 b3 n' E% l
drop vt
$ W; ?& Z2 K }+ v0 k# o& v' Q) u # H6 N% k5 M) q) z( ^5 u$ b" W
gen vt=_n
8 {* q- ?) ]$ I! W/ h7 A + O) W$ b( @( }, Y- h* t
tsset vt% u/ e P, Z4 w) M
3 t1 t8 {9 w1 J' r' p! S# L sum v5 [aw =avol]
1 L* e' @- p5 `0 d0 y% a
9 g5 V3 T2 d U* A& _ gen amean=r(mean) in 1
: j q. k, G+ g& L
$ V+ P4 W* v- u Z5 A * 总加权平均值 amean
c. R: m! z6 Y / F; f: i% e" ], N
& w0 n8 `& c+ ^. f keep in 1/240( v; a1 ~* \6 r" s7 V* ]0 X
; B) \: ~, U$ F9 e" X sum v5 [aw =avol]
; ^4 C6 n' N& g" ~8 x
: v. z5 k* [9 L) g3 a# d gen mean240=r(mean) in 1
; a; M! e8 w8 v, s/ ] ) Z j1 S$ j8 h& @& M0 n( q: ^( I
*240加权平均值 mean2400 I3 \+ l' k% |+ G2 S V
1 n W' f/ G0 N2 z4 |
set obs 500 3 S* j$ w) m5 U5 C& `
$ L. j4 \+ c( I4 y! e# @5 W( p: _0 c kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph' {5 Y. _3 h, l
9 ^' Z, e( V" Z+ @1 p
*240 kdensity(dx240 dy240)% _3 l. Z) i$ y
* e _$ _ Y" r8 ?- r8 x sum dy2407 `0 d6 S3 o# F( Z4 [) r/ F
* W. H. R8 [7 i. A" U4 ]" B! R" X
gen yxis=r(max) in 1
& g5 ~2 K" A% {5 q
8 e( x c1 L. ?! I# s$ @( Q gen yxis2=yxis/2
8 t6 J! u9 I" e! G4 ?1 f# v- A4 ^ % H3 N( ~4 E1 z
*yxis
8 h, L! `5 \3 p: f4 ~
1 A5 ]( L, S1 T5 X- w gen dy240max=r(max)7 F$ I/ i+ ]! M. N' s
7 s& G1 ?; r$ V8 A$ v gen dy240minp=r(min)( R7 g- Q5 j: B+ d; v8 N. R
5 c1 J" H0 |" V# h/ | gen vtt=_n5 ~& I' m6 c: J0 Y B: Z/ g
( w2 x. |+ f3 F# q$ Q4 t1 {. E& W
tsset vtt
F" A1 g; u8 B8 @. @3 |6 s' C. o7 m" y$ b0 g
gen ddy240=D1.dy240/D1.dx240: u2 `( m3 B& w' A/ Z
. V+ k4 a, {2 Z; L
sum ddy240" W+ M# m% W' S ^ e8 U
8 Z% w. W8 L W7 X2 X+ _% f9 l
gen ddy240max=r(max)
& t% M, P! x2 e3 {
. n2 r2 R! o |# K gen ddy240min=r(min)6 J3 h6 y. ?1 w
, j: p3 {( _! A+ G a- w; J+ G
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ P0 K9 z! _: U8 K; e+ F9 I
4 N/ @$ k4 y* L6 S" X sum ddy240g; e. E+ E4 U) l6 m4 h/ j
7 {6 }* c2 o1 W0 J5 n
gen yxis3=r(min) in 1! P/ e' }7 K* ]6 R* ~) }* E* c
+ K" o$ C/ v6 i) ~8 R gen yxis4=0 in 1
: q8 _" ?0 G% p+ ~8 m# S 3 R7 ^! N9 d3 _ ~( e
*ddy240g
" d4 j; o" x" ]9 `0 |: f3 ?
& ]- J- @5 b# H( | % q8 o0 h5 F( A5 c
preserve
0 a; z7 _$ J" \- ?4 r% [; K
# {* @9 F# S( ?7 U) `2 s5 \' @& v sum v5 [aw =avol]
9 L0 O5 D# c' h1 R. i& w + {% f& v7 }% Y4 P! e9 ]1 r
keep if dx240<r(mean)
0 L2 i7 v6 N9 w
4 p/ i" i2 D) ?, @6 { sum ddy240
- I7 I+ P7 ]* v) w- V
: m, r6 K# X9 }$ M/ l$ Q if r(min)<0 {8 D1 g6 w3 Y" q
) C# U" |# g+ Z9 v, i keep if ddy240<=0
- J; ^% S4 f5 {4 R# m 1 B& d& }# s* @8 q L, _
count
3 ^" P* G7 n1 E8 m
/ h- S b4 Z+ U* o, P/ Q0 v if r(N)>2 {* b/ |. C0 P) S! W& a
) q2 b r( A5 W( y8 ^ pkexamine dx240 dy240- ?% z5 P, G4 ]# z
: h/ n6 n. C5 a9 t/ j2 P+ w% q& B local tempminp=r(tomc)
?5 g) X" n* j# m" Q0 h restore
9 S/ c' j; b# |& A+ ? }& x' c: H5 ~9 m, R; d9 `. |
8 @& F3 R+ p9 G! A else {
! W1 i& v( }% @2 F# Z1 p
# ?6 W+ f2 g# k- H; i. d di "cannot find minp"' o* e! F: O% n9 p
- r+ v3 l- ~% c5 W' w
restore
( E! a4 u: H# _' u8 c Z sum dx2405 Z5 o; \3 m- d o8 P& M
local tempminp=r(mean)
u; ?: A5 D+ V7 r/ M2 s/ _9 S+ b
: w4 ?. v/ c& h }2 Q; w, C5 n/ E& C6 u* {
}; u- A5 P4 j% }2 W
else {
& Q) E: z) K% S9 e. V b7 ~3 a ) e3 y i+ g7 I7 O2 m
keep if ddy240<=r(min)
( O9 l% i8 Q* ^$ _3 v: S; s 2 T% @* W. ^( k( ]
sum dx240
2 H4 i( I8 Z: A, {2 l & `$ |! d( v( J7 Z8 P
local tempminp=r(min)
9 c4 d: v% _, D restore
- Q) p% W* W* l3 c- p }
8 J/ `+ G# r0 {: r$ A; O( c1 U3 L/ O& L/ s* @+ B- i
/ h0 u; ?& R9 E8 q; f
3 |* z5 y/ [' c0 }$ K
gen minp=`tempminp' in 18 \; _8 H% `( L7 y1 h% ~
*240 minp1 r. w$ x$ }9 e; |; `3 k# ^
( n v1 k0 ?0 K7 l- P( x
. p) {1 W) ?8 u. F4 K h5 u1 t
6 U- _8 w& K6 w. n' d& J9 y' P& W/ j preserve
0 }8 k, S5 J$ W1 H! v / O3 j0 _+ z# F! I- w# M- J1 Y. h( t
sum v5 [aw =avol]" M \7 N' s% g* O, F6 X: u
# H/ i( j+ b0 g$ [& V/ q1 L7 P
keep if dx240>r(mean)2 M3 c e- T" Y+ j% e( k& P
6 G8 p' [- R: Y7 U9 o$ k$ `' G
sum ddy240( b, m$ E' b$ z$ t% C! `' Z! g
0 ?; D3 p8 o1 M; \8 q5 g' ]) ]& L3 B% ? if r(max)>0 {
1 t r! h) m4 h) F1 x; B% p + N6 h# [+ B& R
keep if ddy240>=0
! P* a7 k O B6 n8 c9 a: N
) l, ] |5 N, e5 M$ Y, h1 Y count/ [" `1 l" Q5 Z) W7 E8 N
6 n6 n; z& q6 c; u& R% ]5 R
if r(N)>2 {: I" U E+ ^/ t2 Y
8 [* u( _6 ^: x7 a+ h, g) I! D# ?
pkexamine dx240 dy240
/ X8 e3 Y' J/ s% Z( `
7 G% s9 M8 g5 |! z+ Z5 J local tempmaxp=r(tomc) 6 c1 Q; i3 e, g% }: E
restore
9 T9 m7 u" y- n6 ^$ y }) k# G3 o/ r+ \
) P5 d2 b6 k u/ D+ u, q
( L3 H6 o. m4 i4 q* K* j( u; _ else {
# i" F. \4 \7 x restore
4 l5 n, C8 c! m0 v* o di "cannot find maxp"
9 W+ Y5 i$ u; \8 U" ?. ] ) u& `. e9 ~5 h/ i. H
7 g' ]" U+ l# s& q b6 n" a/ m
sum dx2402 M& J- h0 d8 D& ^- c& W
local tempmaxp=r(mean)& _. q7 j9 f& G9 N8 b8 U0 ^
& q( _- H- }4 w9 g* K) b9 Q9 f }
# } N8 m! i4 `/ s& o; E# Q ' s) r) c! S& c1 t
}
# [9 D# a k2 z; C; f X3 \/ @5 Y
$ `/ Y, d5 i6 P else {
& y" h2 F5 b, I, G
9 V$ |3 Z5 Y3 i$ H keep if ddy240>=r(max)- M2 A; t7 N2 A0 q- v
3 ^7 s$ Y+ Q( v, O! _5 L sum dx240
! v6 P) Q/ S: B) g) J/ @
1 `; l6 ? f6 t j7 a6 _ local tempmaxp=r(max)
. j0 d, Q$ }0 V' P restore , p! E/ B- h. n2 K
}
/ R* t; P8 M; |+ z7 i, g
1 t3 n4 G' A$ X$ V4 j
; t1 Q p, c4 ~2 K) j! G4 I8 M & Q8 U* z/ O1 Z3 M! ?, k
: S6 Z/ w2 ^8 @2 W7 I8 I gen maxp=`tempmaxp' in 1; u& F. y" ?0 P
& e9 u4 ]- P: ]0 c
*240maxp
; Z7 J% n1 {& D( O/ @" b, k
W d( w$ m: |4 w, Q , v( j8 @& q- t9 u: k
*-------------ddy240pminp左侧高峰值-----) J( T% L: \' g2 J
, U. n6 l( X' ~: _
preserve , s( N$ w3 ~" ~$ |5 F
; g' q' w8 u& S9 G i
keep if dx240<`tempminp'
" K: z$ w0 c4 A5 W
# F" q. \( C2 K% o- f% L keep if ddy240>0
i/ N: \4 s- B/ j6 X0 ^- i5 H
" e4 |- w+ ^$ z2 {: y count
7 x% n. r! R- |" i: B. B ) r9 ]9 C6 A3 i0 s2 {
if r(N)>2 {
- B0 a1 T$ w% |) n8 S, A
; s9 u, V# v, l pkexamine dx240 ddy240" `; i: q9 a5 `% o+ H/ u: v* k
; w5 ?6 ]. b1 n8 V# A& d local tempminphddy240=r(tomc)
4 z: W; C( Y/ H5 C& ? restore9 L/ M1 ] R8 d" x, e7 a
}
) f7 ]" c; A2 l
( B7 J6 N1 X. k, h: L2 |3 P else {1 v5 y* `4 w' e' b# k0 Q6 `7 E/ {
restore
; Z7 R2 N: Y; U1 ]7 R4 E di "cannot find pminphddy240"
$ d. H* a3 I. f* O! d+ V) H. t % ?0 N' l& d+ r9 }1 W9 Z9 T. S K
! y% z3 m: Q" {/ D( Q4 x; y# A sum dx240
$ n( f1 u; V* F9 i; f! c5 r local tempminphddy240=r(mean) ' ~% x# M/ h0 F' m2 A
, l; h, m9 [' R1 d% x8 s: ]
- l% Y- g1 H' O- W& r2 Y) b9 T }2 |- Z& r+ C B. _6 V. P% q6 C
8 H: R: o! W! g2 q2 W
( F4 B6 W# m1 S
. s! n- k, D- a' D0 l9 \6 l* S
, S0 L" s/ R1 w7 |& o7 ]; c: p/ x
8 {0 k4 i, n; E% o& q# r
8 o3 t5 c* n4 c4 i gen pminphddy240=`tempminphddy240' in 1
. x) \ D# d0 M, j: }. `& O9 L
6 }' I7 F6 D, J3 z
* \% N2 b8 |6 D* L4 e- E4 n *-------------ddy240pminp右侧低峰值 -----------------( I( J* U$ X9 w- _4 `
preserve j% ]4 u' d( j/ `
, h; w5 v e& T ?9 j3 E keep if dx240>`tempminp'
/ ]5 L, l6 O" `, V3 G
7 k! f& a- I' m0 @3 a" C4 u9 J keep if dx240<`tempmaxp'
9 ?* w7 U) P! A& u+ C, F
/ M; [; {7 W- R' _ keep if ddy240<0
5 d2 H& A3 m7 \) Z* h% J ; s1 }- j( V6 \3 {. B. ?
gen temddy240=-ddy240+ P4 N. E- ?* u
4 s. l& [: L# W# |( l2 i% j, ^- a count( M4 Z& v/ G5 A; Z6 e2 b
3 g8 c$ t" c* G' b; j
if r(N)>2 {
8 X% C+ i4 B! Q
2 A0 c! J, J! X pkexamine dx240 temddy240
8 E2 }/ I1 D) Q; d: _( f 1 @. I9 \3 L9 T* s$ g
local tempminplddy240=r(tomc)
6 x. W& `& s% v/ m: o restore$ W' u" g& O( W4 f% S. V" s
}
4 }! P% k2 z' Y9 Y2 M& g & Q. \& x. V( r! f0 ^' Z7 B5 z
else {
, T/ N) F! s. l8 m. t p$ p1 k1 Q
7 L* \" g, F2 y/ L di "cannot find pminplddy240"
* c& R$ h. c% e, A6 G. \ restore1 Z( F# H: M/ X3 S f, w5 x
" p) a; Y& Z6 q0 v1 K# J$ Y sum dx240
2 p# z. u! G5 l. a9 V) i local tempminplddy240=r(mean)
! k; P) A/ D4 D. ` 7 x% j" X# t) ^9 w: e- ?$ L5 j
8 Z3 l# [; N' s+ T, _ }
- R) g$ ~0 M9 D8 M5 k- \% C q
; p( ]' D s* \" c, y0 v
5 M" j$ X+ N, A, p: B5 H9 b
0 E1 j/ ^' C* B& e: ?; Y) N n
* R# T+ P! E, K, h/ M8 W* F ( G6 W& m2 z7 x) ~ _$ L
gen pminplddy240=`tempminplddy240' in 1
% O t5 U$ Y3 K/ M. w$ q
) u6 ?- C% N. H5 Z; g$ f *-------------ddy240pmaxp左侧高峰值 -------------------
8 R- c! U* Q$ m% p% A- z, u7 V9 `* i
+ R* W, w7 \4 F9 g preserve
+ D4 c0 R, k# N& Q
8 l) ^4 z9 i5 I. z5 P6 ` keep if dx240>`tempminp'
# q! t+ i; t4 e' p/ }* R
8 N6 S g7 ]7 s' w; s+ k7 B keep if dx240<`tempmaxp'
e/ h4 x6 v6 `; ?& g) A 3 {& B9 @% a M2 Y5 K
keep if ddy240>0
: F7 ?( t' p- W1 A count2 I* u! j- m2 r& s8 u% x/ C
6 ?+ f& P3 @( k1 S
if r(N)>2 {& R7 K% a6 n; M* ^
; R8 ]( ?! {1 k: D E9 o. @: S; q# q
pkexamine dx240 ddy240
4 X8 B. c2 q9 H, f$ `4 y- S) w ! P- L+ J- b1 J
local tempmaxphddy240=r(tomc) 2 h% r% h1 {6 ]$ R. n; }- K1 E5 ]
F4 `/ ]$ T7 @( i' ?: f; e restore; o O& F: Q- Q/ M! b. D; |9 n
}, ?0 X1 {6 T& c+ C' ]1 Z& ]
$ c8 C1 F5 h% O6 \* d* |
else {
& s8 ^9 l; s8 T9 h& t4 e
1 j9 L6 K* m9 h' b& [0 w di "cannot find pmaxphddy240"
2 b! s `" \7 b& i/ N. q restore
. v. M; b0 Z E6 g0 a2 ?2 ?
7 T) q/ q- |) p; B3 R sum dx240
. @ k. m* v) T L. `0 ? local tempmaxphddy240=r(mean) 5 y: a. M. n8 D0 }+ v# W# Y
4 Q+ z m7 c# ?7 i 5 n; t9 W% o! D6 ^6 g
}1 {- Q7 ]/ S& T4 ?" K2 e: N
/ L: D/ L6 q- I! s! J
2 }0 I& \: N8 r* `+ }4 Z/ C 2 U* ^+ J* S8 Y$ a+ H7 o
$ Z+ v. @3 d' j+ r, K( S
# h* D; z. d0 m6 K/ H
1 r3 R% t; b: f+ `3 c# k gen pmaxphddy240=`tempmaxphddy240' in 1( u. v8 g& T( y- U
) ~0 b+ H9 i! B
2 r" ^5 j3 u- r" P
*-------------ddy240pmaxp右侧低峰值 -------------------
' \# n& O' y! S: [% Y0 q0 A
; m" {! N, E J) m5 [- N1 M, b preserve
+ n3 T7 A( D9 s! Z) c& Q* A3 x / M( ?0 w; f" j( [+ H* n# d) d2 K
keep if dx240>`tempmaxp') M, Q' d4 b1 y% u
* ?" }3 D, h8 E& Z1 A5 n
gen temddy240=-ddy2400 F5 @6 d: G8 l
5 s$ n, G- v4 i2 o, D keep if temddy240>0! M8 L/ }% P4 `* P/ \% q7 a' w
7 X/ D8 t- E: M0 c( i" v count
, ?4 H8 Q. d7 b U5 q# K 7 J+ a' M2 W7 g! y
if r(N)>2 {0 s# V R: R$ P; x7 y k0 b& h
4 @( q3 `, g5 s I" ~/ N1 ]/ k pkexamine dx240 temddy240
9 t1 Z/ l) @1 |2 a+ m4 { 3 ~6 t. |- j8 Q* Q5 T; M
local tempmaxplddy240=r(tomc) ) Z4 L4 D$ R6 z# x
restore
# |3 k; K1 E+ t1 w, T }
, _7 C. u) z4 k5 c9 N6 R* U1 A d% D4 d0 r5 e5 s1 j$ _7 U8 o$ u# Q
else {1 x) E* t/ X% x& m
restore
7 |! k! h1 {+ L- E! N di "cannot find pmaxlhddy240"
7 t; d% |" s4 ]- i( f% \
6 i: K# ]; p# A+ B. q$ g% X, `
0 M' @( V6 [$ w; y1 K sum dx2407 o$ K- A- c" h: G/ Q
local tempmaxplddy240=r(mean) in 16 j% r" k: {+ f
' @0 P' J, @3 Z. K; P
0 w, b% j# n1 B# D' u+ P$ I }
; _) u. |; E. P R8 w" Z k- y4 ], p' ~4 l' a- z0 a
3 o* u t/ ^- s/ ?7 m
) u4 H# X* [; g3 Z3 n% o& R K) N+ S p+ ?
! d* i W4 s( r7 v( i* Y1 n7 ^ 3 b' d' G3 L" h& Q* ]9 r
gen pmaxplddy240=`tempmaxphddy240' in 1; R$ X7 Q: j0 K& z
; D8 I- h/ F7 f, S' {. O *-------------------------------------* h) n" J8 _+ F9 l+ I) z& }
& I) R. Y* F T7 u5 x* G% N gen price5d=v5 in 1/20
1 e* c0 B% c9 D1 W e# L ! p2 H" Y/ w! F4 E" d4 X+ B
gen price5yy=_n in 1/20 R: U: E' X2 C: ^2 Z9 o
6 Z' c" H( @* f$ Q gen price5y=price5yy*(dy240max-dy240min)/20
$ n8 g D5 Q! B0 o% t
2 ~' K0 E4 o4 I% K *price5y &price5d
6 e1 l$ e2 W+ v& m6 k8 P4 c 0 J0 b6 K6 ~& b
gen priceny=price5y in 1; h& ^2 p5 g; l3 r. O( j+ ^
! V/ f/ q" {, ?; z: @
gen pricen=v5 in 1
- L( a- [7 k' f: _/ ?9 o# l0 Q
0 k) Q! a: ~" F; X" X
3 {: R2 p! }- n B/ t" j *priceny &pricen$ N! c) I4 J' ]8 ?, |# b
( p: ^/ X7 y" q: E9 X' d
6 y9 Q8 }/ r+ {5 I; W$ w
*-------------------------graph------------------
( u7 G8 a% |6 g; a9 v 3 f. ]5 M) K1 y2 Q1 P9 E. C
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)
9 u* Q4 |2 s) ?# U5 V8 _1 E" A
?5 A- D" V2 U4 ]5 k3 G* ---------可选项目----------------------) m @) j& ^" ~* C4 d9 X; E% |
( I& L. w+ [$ R3 v6 [. a}
. w/ i$ V+ A1 kend
( D5 r* t3 C. u3 H+ v |
|