|
|
改了一下,这次运算应该没啥问题了
. n) S) X' \0 P9 y' R" Q! y! n7 M3 T; B1 I0 n
. I& u" q' i2 B" j2 e
capture program drop hello
! f" a# |+ K" N" V$ q4 ~# g: n" S3 a9 `+ b! f
program hello S4 w8 }, M$ g) \
7 ^3 o5 P6 y6 q+ g$ o/ F quietly {
- a- A( F, n8 y R) i' _
$ W% y+ `1 L/ D. U+ E }clear
% [3 q# P$ h* R/ r- z/ g7 o. e
" `+ k% M! A3 b' J2 c: r8 H2 P: h; vcd e:\finance\stock\20110101\source$ @+ b" ]* l& ]8 a4 T& B" `/ J
- a& w1 i% g1 m: z- F, y7 d7 G) I
insheet using `1'.txt+ P2 J0 Q- u/ d0 _) s$ x
3 J3 }5 [* {7 ^: W7 l- P/ D
keep if v5>0& p0 ]8 X4 x$ D1 e+ n! Y. }5 c2 V
, X) X' K/ a4 ]2 y' S. t0 Z gen vt=_n/ t$ {5 p8 b8 T3 {
% ?- l$ P% q1 } Q# D
tsset vt
9 R; o* F( m; c( z/ ?5 l a$ x- r; M* k1 v k/ _
gen zf=D1.v5* l/ o7 G" G6 K5 {: h
/ x; A" v1 G5 H: i7 i4 \ gsort -v14 w7 C1 t$ R" k* J) o' ]
9 j! Q, d" H ]) @
gen avol=v7/v5
3 O l- _: N; V! Z ) [. B. y0 j' ~- ?- T5 `
keep if avol>0' f3 V# z1 i7 H2 L; A6 }
" }0 G/ g7 e# k/ }7 p& n
drop vt
+ m0 i3 X% ?9 V7 \: C, |
) a/ [* B+ N% Q/ g gen vt=_n
' f. R. z9 Z/ c- [
6 {, [! r' j) e8 c- S tsset vt
, g0 X4 q$ b5 D m4 e1 c* R4 m' b: J7 \ 1 s9 R$ k5 ]. d
sum v5 [aw =avol]
2 }& X9 h) c" O# N" f
8 P4 e4 q8 h3 o9 S: V' S0 P, ~$ T gen amean=r(mean) in 1" X$ y% C" h1 w" i; z3 t; b" X
) d A: w" q5 g0 z% y3 d- @5 g
* 总加权平均值 amean$ L' ^% k2 L; D! {
6 l7 D# B& o$ B: _
( P2 c, G0 r) T: l
keep in 1/240
6 V% a$ U {. y4 z
# n- k; G. x! y sum v5 [aw =avol]
0 |( M' y" Z6 p% d
$ r) R, A$ o" s; |* I: a" {% G) k gen mean240=r(mean) in 1
: [) }1 b/ f7 X# @% l: I3 [ ' `) E A/ G0 I1 j
*240加权平均值 mean240 `+ J1 W: S* W
, E, {: J- V" J
set obs 500 ; Q4 ]/ X6 ]; S9 _
' C$ L T# [2 Z8 B4 Y! M) g4 {
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
9 K+ S9 Y" H( k }
2 Y, E' A/ M1 i6 x% p3 g8 G *240 kdensity(dx240 dy240) x8 {1 V/ [- X3 ?
4 Q! e0 @( J4 D. k7 G% J
sum dy240
7 o; E& }$ R0 `/ A ; }; K& a5 ^ v1 J. J
gen yxis=r(max) in 1: p) I2 w9 e: i2 l8 D
\ U" Y& R# ~& h0 j: U A h' V
gen yxis2=yxis/23 s, x0 E0 K4 `2 S+ S' O+ ]* @ n
/ s$ V: E- x7 A2 F6 D5 B* c *yxis' c, j7 B% I. Z s( e2 L" O# ^/ b* W
4 [6 F7 ?4 q( C `1 X; d; g$ i1 m gen dy240max=r(max)( K' \6 M# u0 N! b8 u4 g0 r
; Q v" O) B+ P& h gen dy240minp=r(min)
2 q5 ^( _! G' e. n ; C: ?. _7 T7 f" ~! z
gen vtt=_n
, e/ I3 T" V7 p" I
( Y+ q7 ^: Y. v* M1 ~! k4 I+ E tsset vtt0 I$ @- A a7 @% v
2 u6 t/ J" E1 y* M$ }3 `+ i( o2 G: K gen ddy240=D1.dy240/D1.dx240
7 @9 v7 J' f- c8 j: \/ f- J 3 Z4 R# _. h- Z; Z0 L6 ?( s3 K
sum ddy240
% ^. ? m/ r4 F4 j) a0 k4 ~ ) x7 M2 }! _8 N y( G* { L
gen ddy240max=r(max)* P1 C% S6 s- f7 c4 s" R4 M
8 O0 A- _* ?6 n5 s5 Y m gen ddy240min=r(min)5 \, g# o2 H2 I; e# D4 q
, G1 O: W7 E c- [9 N: F) \ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)) ]4 `3 Q& V, J7 e) t; P
0 q: \* v& _- m$ Z+ A) X
sum ddy240g4 B2 Z0 I' g$ E* F$ d1 S0 _+ T
, o& G& M8 g' i1 m4 t0 `6 w' S
gen yxis3=r(min) in 1
; }- w w( m9 Y1 k8 n ) m2 z5 K9 z" S* s+ Z& L3 Y7 ^
gen yxis4=0 in 1( W# F' Q3 e1 i
) P' }5 H6 j F& B/ w8 O% b7 _" s% H
*ddy240g
8 Q# I0 [. J* ? / e5 w8 ~" ^$ H( \& n* |$ S
4 A5 h' A+ [" Z, @: L
preserve , d1 Y7 D4 |) z# L/ b$ x
# i$ O, A1 v ?) S
sum v5 [aw =avol], f- ]* s- g* W9 S) P7 f
0 N: O) B/ U1 W: ^9 O/ e# G. K# V keep if dx240<r(mean)7 @4 i1 f" G8 s# Q
* X; ~" _8 h. V2 y2 A6 @& J
sum ddy2400 C: b6 r+ z, I
- x! |: |4 e9 j8 g
if r(min)<0 {
2 V% O5 ^: A9 x) R# b( z 1 @9 ?6 X3 {. q8 O
keep if ddy240<=0
4 \5 n5 ~" t3 Q3 q% N
/ p. e! h; x& }2 ^6 T( y7 b- i8 o count/ m5 Q/ E$ B0 Z6 K0 _- t6 f, Q R
( r! T# c5 H# o! ~( n% u& \; s
if r(N)>2 {2 ?7 I6 b t1 K. o: K
. }# Y0 ]. U5 j5 y* \. | pkexamine dx240 dy240
( t6 F/ n+ h' s. }5 [% Y
$ s; `1 k0 y+ S/ U3 g2 z# I/ v local tempminp=r(tomc)5 a: {( i5 {; ~+ }
restore ) Q7 f, u. i' w; T7 K/ m
}- G* x; Y. a/ j) S
8 @2 }6 ]' O- N- Q$ q! Q else {1 q, U2 F9 ~' m
9 h, `4 y2 E+ M
di "cannot find minp"8 r; n. |* r2 p' e9 d- p
7 D2 g' T" D# D* i/ i" J
restore 9 k% k( n5 o2 R* p7 a# y( j
sum dx240
2 M5 S* P# N9 @2 F local tempminp=r(mean)- d$ i4 s9 y* {# p( `' Q
9 C8 i3 {" U2 q* E5 ?' y' R6 U: n5 n
}
1 N. m1 g2 x2 N/ u, D: x }: {4 @# k2 h# G* \
else {: c4 K) v9 o5 @: O/ }% T% X
% N `1 h, b& o0 O3 x
keep if ddy240<=r(min)0 {$ p* N7 D1 L& t
4 w/ V2 I W! a7 c9 E3 m7 X sum dx240; U2 n! P1 h6 i/ U. r5 X
0 y2 Z, v J% |) {
local tempminp=r(min)' ~( I1 ?5 V/ i; U& }; u' ?3 S P! G/ ?
restore 6 E! S3 h3 N5 p1 `8 o' W
}! g. c+ k" R, `! [' t6 t# ^/ B/ i& Y
0 ]! v) B" h* \+ q- t
- Z1 D( I& P+ [1 W. j0 g1 B; ?& x
gen minp=`tempminp' in 1+ T/ A/ K" u2 U( \( Q
*240 minp
' g: C, z+ Y8 J# O
# |3 G* H0 M9 C, N+ @3 a# i* K& J# ?4 p
, B0 T# q7 K# H3 r3 I( y preserve : P$ ], R; i# E- R* m P, \# U
! A% g% B! Z+ T2 m- U" Y8 ]$ { sum v5 [aw =avol]
: Z& d: t3 Q* Y+ B7 a. n / q, Q& u3 P) I/ e$ Q
keep if dx240>r(mean)
! x) _# x1 g% U! q. a- R+ e5 l% | + x* w7 n! f3 h
sum ddy240
! x: y2 J/ f- H& G5 O ' j; X4 O8 o3 B# N
if r(max)>0 {1 ?- C2 r/ x5 g# m u
% J' a6 y- X# X/ e8 }/ F3 @ keep if ddy240>=0
' Y$ v2 C) p* D / F3 `# `& i0 p; e! W5 _3 V
count; W1 [5 `6 y. V' t, u; }; _; K
4 T( C( k0 f( F/ k7 E8 g- D8 c
if r(N)>2 {
4 m. v8 m' L( ^: s ; p. s3 B% m- @+ X0 m
pkexamine dx240 dy240/ A% e$ t' Z t7 c
0 Z! I3 R0 d+ R, R b local tempmaxp=r(tomc) $ S u5 t# P: r& |6 o$ r" F
restore 6 O& l% r% ]* X% n8 }4 s0 ]
}& c7 a7 j2 Y, I( M$ I8 B
9 y" ~; n$ }, D4 G! x9 @ 0 u) |, k0 W+ B' T
else {7 C, @4 M5 T' B- m" V9 K$ r
restore ; A% K7 A" X/ U9 J$ f
di "cannot find maxp"
0 w0 c: E" E8 g. u+ n {. o2 ^- [' Z' ^/ f C
7 T# B% b _7 f1 m* D0 V
sum dx240
5 I) V5 D# R% l( |/ d$ O local tempmaxp=r(mean)
_ ]: v2 R W4 d' j! u # Z3 E' ]7 G2 B' b
}- O6 j( F* @" X( i$ P/ E$ [& W0 ?7 [" A1 m. X
& Q* m9 l" b& S* Z/ b& ] }6 Y/ w- H! @4 y5 O& ?4 \( C
( \3 c8 O9 v+ J" A$ W- Q; d! z# J
else {
|: P5 I9 U: g5 u8 ?
9 _1 A2 G9 A: ]) [8 B keep if ddy240>=r(max)
6 R1 n, T9 |' e9 M( p+ Q7 S " d2 p" d" D% \
sum dx240" l6 T- {0 Z% E4 _! q% Z b
) z9 s6 b, h+ }" C: s5 Y local tempmaxp=r(max) }) T0 L$ _% w$ Y
restore , {9 C8 W1 Q7 @# ~) z
}) J* D* D" g& Z! X3 z- b; G
0 _. j' C- g. o8 d/ q6 z8 ^* q
T: P' g5 u K
( K. a2 a* v. O0 k9 V1 [# s; P
1 {+ a/ m# T- v- S' h gen maxp=`tempmaxp' in 1- Q1 u. C$ O; L, A9 T& y4 `
5 K2 g6 y2 Z/ u5 j- F% T5 t *240maxp3 |, h4 X4 B) F2 s
# L4 E! t5 w! S9 n4 E
1 A, P9 `) @" i9 M3 Z+ J' _ *-------------ddy240pminp左侧高峰值-----
) D8 i V* M, \" F2 C3 E# x' F, U6 q: H 4 ?& ]. K4 H5 k$ _
preserve
# b; ^, e3 { c1 e
$ | K* l6 U6 J keep if dx240<`tempminp') ^9 n& B0 p# f
0 ^* P, S7 s5 |) ~& Q keep if ddy240>0
' g [# [' V+ I* g+ n8 c. G; z 7 E: ] g: }; I3 d V' C/ D
count' q* d5 e; t& F' O" |
* f5 b8 a/ e+ D& K: o* C) T) Z
if r(N)>2 {4 j' B2 |$ @6 v" e- f
% O. D* Y1 v8 C" n9 u
pkexamine dx240 ddy240
7 a4 ^- w! D% R o0 P
. N0 W2 f* w4 q7 c local tempminphddy240=r(tomc) * L) _9 A; A( L7 _& o* e8 ]
restore
% u; }, M( G1 Y" F3 U7 m }
& H3 T: j1 l' H& ^. v & {; s1 B+ U' a3 ]+ N X* Q+ T
else {* s5 t" d7 Y1 U4 {
restore
/ J" `$ M, j8 }3 L) l1 i di "cannot find pminphddy240"
8 F0 k% d+ z) `, n% c" r- D
5 D2 ]; V3 L1 v j, f 0 n* d, |; H2 z- D( r- c& ~; X
sum dx2402 }. }0 Y( u6 j2 T3 R
local tempminphddy240=r(mean)
. I @: |$ \8 G, O, ]% l2 i
+ ]* ~ E5 c/ ~$ O, n
& S ~9 o7 X) ]# U5 B- q, E9 e }1 S, A$ @, H- G! Z$ c5 E
! [! I# D+ _& b1 p6 ?# P9 b
+ U9 b+ a; j p" Z4 z& `2 w
4 ]3 w% I0 H8 L ~9 M$ S5 @; @* k
! X0 l* Q4 }8 s3 r8 m/ _
9 V& w& ?, }! h1 i/ U7 x
; Y( [" @( f) f0 U: p
gen pminphddy240=`tempminphddy240' in 15 f7 i$ Z0 a2 k; b4 ], E1 c- {& f
' t3 J' l- Y) @4 `- X' \
- ]6 f& E+ _. e. j( P% c+ _ *-------------ddy240pminp右侧低峰值 -----------------
3 h. d) f8 k0 S5 U# Q* o$ n) o8 [ preserve
5 e- F; ^2 Y& d% g 8 C" i8 S l6 K+ ?- f1 B' t9 h: j
keep if dx240>`tempminp'
: N+ y- t, q2 c. ^
) R8 ]0 r* R1 N% o' f+ d5 ` keep if dx240<`tempmaxp'
7 n& W+ Q) x' x8 M+ _2 }- ]6 f
/ q- @2 G8 {2 s) G7 v keep if ddy240<0
6 B/ ~) o$ l. _, U 0 u/ Z5 r! {% P9 d K
gen temddy240=-ddy240, S$ c5 U, L! i4 d4 N! {
' l4 T! U" h5 o4 T
count0 Q2 b) d( J' L6 X
! \! ], F2 z: k: J7 h9 C$ X
if r(N)>2 {
8 M' G {' O3 t3 }5 _- s' O0 D
7 c+ Q8 Z# U5 [ pkexamine dx240 temddy240+ z1 Z2 j# V! M' l. L5 {
# b2 m9 t. x1 K
local tempminplddy240=r(tomc)8 @4 N# v+ O- f6 T+ N; a) C, f
restore: Z0 I1 ?0 w8 W& E: T
}* A( ]+ \, D. s: i, J
1 y' |' c) X. a4 p- U else {. ]" s% ~1 i! R2 {' C
% z3 E' g* h% t ~0 s7 j di "cannot find pminplddy240"
) f/ s4 \$ n8 U r restore, N3 v$ H6 ~& s1 A- P' W8 x
. B$ H, i4 h+ x9 l2 R ^- i sum dx240 D0 L& c0 Q% m! C5 T- I* J7 F
local tempminplddy240=r(mean)
! ?) S6 A( f2 C6 u. s
8 x) X1 o2 R6 ^# Z) H6 F+ d
6 i% I1 ~2 A+ s8 |, H `9 \ }
( ], P; u, }5 s3 i3 Q
8 z K* k: O2 C& h2 @5 i$ D
+ Y5 [ U6 I, [* M$ J8 J2 O 3 }8 v( i+ ^" }! n, m: }; J, f( c
6 ^! j1 @2 h0 X 8 b0 x$ d, t9 [9 @
gen pminplddy240=`tempminplddy240' in 1
3 z# C l- n& g1 D! i / O/ V. a4 K; y K; E, K
*-------------ddy240pmaxp左侧高峰值 -------------------5 j; r- T6 _/ C9 N, G- J% F. y
k/ \4 d( B4 q& j: L8 \" q preserve
2 P! I J' N" I% L
/ c/ |( A! q! k0 h1 r keep if dx240>`tempminp' C# M) b2 o: ~. L. `& Q
y" ~4 i9 L2 a0 t9 t
keep if dx240<`tempmaxp'0 d$ a# W! a, ]6 \
( _0 C, q9 f$ m! c3 Q4 ~
keep if ddy240>00 L$ a# v8 R# N9 q. s
count* E$ Z2 A5 [ `& t7 T8 T) j
2 D. r' q8 z; f9 j if r(N)>2 {& M; q# b: W# _' Q- I
* i) b0 O) @5 n# `4 d
pkexamine dx240 ddy240% O2 b" d; u% I2 g
! ]$ W3 }9 h+ @
local tempmaxphddy240=r(tomc)
* d. p+ q4 e8 w% c" Q # u% U; Q( B' H8 E
restore$ H4 k0 E. e! l4 f# O% ~9 T* g
} K' n, e' x1 j
2 |/ M: P, J# y0 z, m. H9 M else {
+ U5 ^8 t& D9 i! b$ I, P9 G& r0 L : H0 N, s+ D( l8 _1 r
di "cannot find pmaxphddy240": t# g- w- m+ J7 e0 c8 ] A4 d
restore
$ ^! O$ p- I l" r. N: b4 w# L 2 u( S2 Q' W6 k. r# }0 P/ P5 m8 `2 ?
sum dx240
& \' w% ~. v: j& r @ local tempmaxphddy240=r(mean)
Z" D; f+ W$ R, r
! }/ T4 Y1 @' u
! |/ h; ^/ ]% g8 t. n8 R% x. i( _8 `) ? }
& i3 Y. W/ j `* o. O
9 g. ~; M0 i& N; L
1 R* j1 V) ^" ]" O e4 @3 U5 d0 |& d+ I
! X$ ~2 H$ P& s% p- N4 V. A& I
B) B! I0 x8 A! M: J( e' }0 |8 U
! W' `* ?/ V) }: v. W gen pmaxphddy240=`tempmaxphddy240' in 15 i; L/ o) K _/ Q3 `8 t
y) m% w% n$ U$ Y. G) R% S: w# Y$ W
+ C* K- O/ i! Q: D/ M' Q+ r
*-------------ddy240pmaxp右侧低峰值 -------------------7 Q9 k, S4 T# m, H9 Q1 d8 S
# F, B# T6 k- I1 z1 u; d" Q+ m preserve
" f! y6 }4 z6 }8 ~$ ^
( r( _! `3 v6 M7 F2 c keep if dx240>`tempmaxp'0 u0 x \1 ?1 D% [ O' P& b# U: Z
/ e- Y" n: Y9 |; E/ F
gen temddy240=-ddy240
P. L! B. ^5 q ?. e7 j O! b3 F$ H ], V: @
keep if temddy240>0
: \* A: o! ?& q , e7 T1 Q8 n8 h8 ^8 b- v
count
( w$ `7 y! t' S/ p5 `4 R) v
1 t0 P6 y$ I; I if r(N)>2 {! [' \3 l: S. S2 W7 G0 O
, q( y: [0 e* E* h. Y% k1 Y, I pkexamine dx240 temddy240
; |/ c, U$ H! ]# v
9 i, U) s1 E8 I4 Y local tempmaxplddy240=r(tomc) ( _! s& T# e+ w$ ^# c' l, y
restore
/ \" C& q5 d: x" k) g! g/ Z# O }
/ G& F$ j0 f5 w, `
+ C& B l# X, ~ G) w. ~ else {
2 T& Q3 C) S8 |0 t# w6 f1 T restore6 n. _/ W) B1 @; s. L( B
di "cannot find pmaxlhddy240"- W) y( U- U+ [4 ~) D
* b0 F9 E4 \' S; W, o& `: Y* W
2 r- q, _! \! _3 O9 g* I2 I" j9 I
sum dx240+ `, z( o7 r3 k6 R8 {0 \
local tempmaxplddy240=r(mean) in 1+ l5 w$ l r, G
7 m3 s- z6 B( k( X
4 M( u5 \- s- a: O. e: L }# J X) o! R+ i" N) A
- X) T6 _4 X: c4 o! v
7 ^3 P5 T) z) n! L+ S; h" Z' @1 ?% R
) `% p. Q9 R. w$ s3 i/ U- y
7 E. ^' F8 c% G# M+ C
* j! X9 }( U( G4 {
/ z( ?$ R+ t1 v& r gen pmaxplddy240=`tempmaxphddy240' in 1' o) D: X7 ^, M1 B& N
6 k9 C7 K7 h7 P& I1 t" {8 h3 U
*-------------------------------------/ v# W, n$ r1 |1 z6 B: S
\% x7 u& x6 V: k- I: k3 w! X gen price5d=v5 in 1/20
; c5 J7 m) a' M0 u
1 o. f9 p6 V' ] gen price5yy=_n in 1/20
9 o/ H0 b2 q* m, L J' W
9 K& K* r# r3 o4 v gen price5y=price5yy*(dy240max-dy240min)/20
, L, _# v9 o" B5 V - F) D" S6 I' c
*price5y &price5d
) n+ {1 ?. B' S' s/ d& o" o
; J5 |# w9 X7 Z& F gen priceny=price5y in 1
% s3 f) U( ]$ F3 V, O2 F $ G" |' i, U& |/ b+ u9 [
gen pricen=v5 in 14 G$ B8 n8 B1 T/ G; J
8 T. P6 i, m l7 K
; U) W+ L, a4 m8 d( a *priceny &pricen1 a6 ]8 `: |. p! u0 E: z0 Q- T# S
6 r, a# b o0 }4 g7 f- ?) R. x
) h* Q8 F3 h0 ~
*-------------------------graph------------------
k6 b1 u5 f7 S t+ J0 R) Y # G. q8 t# b5 N. c( Q4 a% Y Z
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)
. r% w9 z' t& Q/ c" x2 A5 h9 A) k$ Z# x3 D: y
* ---------可选项目----------------------! Y% c+ z9 C. \2 d4 S) g, e# Q
& E7 |0 G C2 Y: ~9 Y' ^; ~0 i}
; C5 [! v6 }9 V: g) pend. u7 [, l5 z( `' y# r
|
|