|
改了一下,这次运算应该没啥问题了4 O% l, {4 q* M: z0 f, S2 `
; g7 m6 s8 K2 y! H! c3 y2 A: c8 w/ W& w; z
' C* z" x: @/ U! e# r4 x1 g/ j0 wcapture program drop hello: c9 A8 c4 c. Y! I7 s( q
{+ [) v3 T+ _; q" uprogram hello3 n4 x2 p, W( B+ H- k( {- C
7 v7 {* G+ X/ ^4 `# \( D quietly {8 K( I% c8 t M# i; b
" R3 O- |2 ]( o1 ]4 z1 Jclear
$ A4 G: I, n1 a' |" D: N# G6 K! N+ [: Q. x1 }! [
cd e:\finance\stock\20110101\source
5 {7 x0 d1 a3 ^* Z7 g( [" h4 U6 K( v" _2 Y& `9 k* p- d% n3 F
insheet using `1'.txt4 U% ?8 t; n3 C
9 H1 \6 K+ o' c& B* Y- n3 p
keep if v5>0
9 y% H9 P: N: b* }/ l # x. E1 Y3 |9 y& F/ ~
gen vt=_n
; C: H8 T+ D8 }/ u7 {9 U' r: s% j
1 G3 F% K6 x8 S; z tsset vt
, J6 s* C# \ q& ~9 D6 I7 g {" t, q/ v& @+ R/ T
gen zf=D1.v54 ^' J% ]3 r) K9 N$ A
/ e; t3 X( `! S2 B; R
gsort -v1
4 J0 A4 _9 k* m* S) E A9 O8 @; {- W% H, u6 J' U( ^
gen avol=v7/v5/ Z b2 m! g/ ]7 s5 q* q9 J
$ n. y3 A" u6 y4 Y
keep if avol>0$ [0 P9 |9 j9 D% n. m+ l, f. z, |
7 |) H1 m; A3 ]' H6 E
drop vt+ N6 ]' T0 K. {6 ^
/ |1 ]7 @; S5 E( @# I# S% u' d gen vt=_n3 h9 ~) r5 G' }4 i
: p5 w7 s2 ^- p0 d0 Q. ]0 [% @
tsset vt
% @! `( c0 K; A4 N 0 K; S+ y( L+ T0 D* S G2 Y1 f
sum v5 [aw =avol]
% K; K' n5 h& |$ f/ A) w$ S* t- c" g3 F( v
gen amean=r(mean) in 1- c. K- T$ T; x& F! l
+ Y, R$ v4 j/ n& r% `4 Q5 e
* 总加权平均值 amean
9 w. ?; i% |+ [' }
$ ]- U9 E: U# p6 D0 K" Y" g' r 6 E& U; ^$ o$ |
keep in 1/240' T1 }6 \, {( L4 L# Q
) W' V" u: z0 B# E; P
sum v5 [aw =avol]
" Q. _7 w/ D/ l( }& s7 u" g- \8 A* y. f" Z, v
gen mean240=r(mean) in 1
6 }7 w- ]: t: v/ j- H- F) u 0 e# u6 b. `' u s6 `" u
*240加权平均值 mean240! O$ o8 b; j+ G* A6 N+ \! a: @
1 j/ u" F j, R4 b" B4 ?- q+ S! u set obs 500 + V+ h- J: L0 b
- P$ J3 V4 m. q kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph3 J' `. u5 Y. |% \: n% U, ~" u% Q
+ H3 X2 `9 O" B6 r2 f2 E
*240 kdensity(dx240 dy240)! {, f" G: M: b9 p
/ X) G( {# X, q3 `* v sum dy240
o( o. d. i, {. h+ e
0 j+ |, i. N$ N gen yxis=r(max) in 12 w. g; r0 u" Q- T6 t
) L0 q9 I3 a3 {: {- @7 O
gen yxis2=yxis/2+ {* L+ D* h4 B( k7 f' H$ i6 [3 l
1 ]# U# w1 i3 N3 P
*yxis
1 h6 f: b$ V" B8 @# ] # \, m, L+ r1 Z
gen dy240max=r(max); Q7 ~2 V6 t* T9 l
- _! B/ W5 h) N( A3 Y) w1 c( ] s gen dy240minp=r(min)# C1 @/ p( W1 ?; ? W# t4 C( ^
% |6 t8 `2 Y7 i. G gen vtt=_n
: a+ u) a: P6 e+ W
/ W* X) u9 E& l6 T/ d2 P tsset vtt8 I' @2 _5 @) o- u( K
) e3 I6 c1 K: t, M: R5 z6 l gen ddy240=D1.dy240/D1.dx240 P' x K, Q/ h3 w1 Z$ _6 G2 y: } X
. S- R7 l! Z5 [$ O' _ sum ddy240
+ O( A. R, g& m* V
1 }+ r' \0 n1 W# H* s( Z* } gen ddy240max=r(max)
k) f; a. g; r4 C1 W1 c + n6 D) Q' W0 C0 M e% G
gen ddy240min=r(min)8 Q2 N+ N; k7 p) H" T# Z. H+ S2 a& Q
0 Y; ]3 Z; k4 m gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- R& }, C, e) k2 i9 y! P1 L$ E
0 A! W" D; u- |4 l sum ddy240g
! e% \* |" S \% [0 u# z- p5 h8 Q/ E
, l3 H) y! V& T0 ` gen yxis3=r(min) in 1
' J) Y; _' @# G2 z3 y E
& z- v" q5 I; P gen yxis4=0 in 1
* T2 @5 ?$ Z$ u( Q; U " t% f4 U0 U: Q# {9 C8 I! w( t
*ddy240g + M9 }" N% B! }9 e K
3 O- A) h7 X' _3 w9 v" i % P& |+ }, v9 K
preserve
- b) B3 ]3 ~, l1 `- Z $ R% Q3 [. A# S7 p$ `2 ^
sum v5 [aw =avol]
+ h% t/ i- I8 Y9 o+ M }' m) J
. o$ d* k8 l+ f keep if dx240<r(mean)5 m+ W2 h1 W( M3 p4 K8 g2 O; U
/ L5 Y2 y0 t3 K& D' j* ~$ L sum ddy240
2 P; C' r2 P# ^ 5 E* q c4 S$ X; p5 x( p ~
if r(min)<0 {
3 l- K3 l2 o4 z& ]" C ( W0 {1 i& a; }; E
keep if ddy240<=0
# r8 G+ i# H. q0 I2 ?& d ( F- m& w# v, a# W
count
& C# N8 |# ?% t7 s( a2 E + F5 V' U6 E( E+ @, e2 k
if r(N)>2 {
& \2 y3 R2 u$ O0 C& \. ^
* e$ [9 i2 p4 n! T- |- w5 q pkexamine dx240 dy240
% F' l- m" b; k7 i 1 Q7 f) m; `" R4 v
local tempminp=r(tomc)6 q* h0 Y. P; L6 X
restore
% j* w3 D5 h. S$ C' _" ~4 w }* m2 ~# @4 W, d, b6 ?+ x3 V
5 k* X, h6 V8 {" {( m8 ~: l
else {3 J7 A8 L1 Y3 E
: t9 i; x9 \" q ^
di "cannot find minp"
/ ?! w9 b7 s& K; M6 W$ A9 W" `
- n( D5 |! I2 N restore
+ C* o+ f7 I1 V4 ~1 l sum dx2406 t5 l8 _8 \7 E7 @4 ?
local tempminp=r(mean) q6 F0 O8 @, k3 m$ D
4 A0 [4 F6 i R; O5 @ }
. t- w3 S! c: n& p) u) C0 d" y }* G7 \, R% f' J- ]' I" n4 g" J
else {
8 x# t! U: _: ?. n- X# q
4 }0 d; ~3 E+ B) S8 l2 c keep if ddy240<=r(min)( W8 |, N s ~# _+ R
2 L" K7 T2 W+ ~
sum dx2409 L" _( l! U; k8 f+ @) U! y
- _4 i4 O0 Q) Z+ _( q; H. ~ local tempminp=r(min)) c7 H# Q7 X% E- B. y" C
restore
" |; C/ D2 X7 h4 U }
. n; N" i, m6 a% W# U: p% w7 o5 {# U1 A$ n5 f5 b" Y- s/ n
5 }! V; c1 H; r2 Z$ p1 g6 N2 E3 u' T
K! }, j. l! { gen minp=`tempminp' in 1
& P/ ]- F8 k: Q4 f. L9 r *240 minp
/ t/ x" [) X8 R! h4 Z$ i. j0 S; _$ ^! `) }4 y
4 n4 o0 l# ?) |
: B- d) M8 s* b: k; V preserve 6 Q: O" \; y5 r( M# M" j
0 p( m( U' J' A: m1 c
sum v5 [aw =avol]
1 O! A1 d5 @/ R4 L4 F % C V, i4 v. {: I7 w2 ^
keep if dx240>r(mean)% }! \- V& p, a( z1 I2 ]# ~6 j
; W+ j9 [2 t5 e: V) E sum ddy240
9 `0 W. t/ S" P$ H" h
, }0 e+ w/ ~; j1 F% k4 g- ^/ E if r(max)>0 {
8 V# B- d; z9 d' ?) a# H5 h$ u. l 5 l$ v' M3 P8 x" M
keep if ddy240>=0" n* H2 _, c* K. |6 `. s) T; R
) ]( g' a* m5 l4 Z6 R
count9 M+ y! F3 N) P5 m/ o
" A7 c J' b) \" ?. q# ~, @% N+ X8 U
if r(N)>2 {4 S! ~" m% j6 j' ?: g$ V M
7 j2 ?6 [; r! l pkexamine dx240 dy240
% K, k6 _( D2 j& ?5 b, L
# N a5 ?# l* q) V7 `# Z% j. y local tempmaxp=r(tomc) - m) p% N% w. |
restore l. F3 D5 W. E! `
}6 Y+ j6 B7 y" T/ g
; g% O7 |( N' I( {& R' c# d & W+ }0 g, x$ e+ M/ X
else {% O3 ]. P: S2 Z4 H) `
restore
8 C% H0 M* J# e di "cannot find maxp") `$ g. j5 N0 ~* K, S: w
6 F* z) t6 x# L2 T2 N/ o 1 T Y# h# e3 v. g0 {5 ~ J; }% |
sum dx240
8 G7 i+ v% f5 q/ {, \( O local tempmaxp=r(mean)
$ x; L4 V/ U. n% {
; T6 m% N" |2 ~ }
# }3 J8 Y- G+ c9 t3 S j: n$ O9 X4 ~8 H
}
6 U' B; I5 B4 z
. z6 j9 E+ V1 H7 L( H$ t else { R5 P* I( \7 h7 E- G9 g
7 L6 M, G6 g: z$ f% e) {3 @9 \
keep if ddy240>=r(max); ^" n- @/ z4 _6 q2 n# l' z% [
9 y& o$ p: j. C! q0 V* a sum dx240" H6 h2 \% G" M+ A9 _# l
% t& ?8 J+ J6 Q local tempmaxp=r(max)
4 M4 k% |$ }5 y* P J restore 6 t+ m$ O' p! O% d* _/ X' D$ K
}# k# }$ S: z7 @& J
- ?6 p+ \, N! C: ~
$ Y; ?0 A" ]# I" ]8 k& I+ ` / q1 Z& l9 @3 c
6 z7 h9 j; Q/ G: _ gen maxp=`tempmaxp' in 1. ~% F3 M+ ~& Y: k6 ]/ ~, k
+ F! c3 o4 f8 P; o
*240maxp
# z* K# E# M9 `" {2 d) C # l: N( p9 L, @5 x( Y
) a# Z$ N# g5 O
*-------------ddy240pminp左侧高峰值-----
$ {( l" {$ [8 C3 h! p
5 H- Q+ S# D1 x: O preserve 7 J* D+ ^2 P+ F$ V
6 j' D0 U; J$ w" R8 n keep if dx240<`tempminp'4 D. A5 D) u N# {. T# c6 e' I! a
& `6 V$ M9 ?% j; U keep if ddy240>0
* y7 o7 B& Y; @+ |& L6 H) b7 n q
+ S0 b. j2 l) Y; Y count& E& Q6 P1 f7 G% ^. j/ `8 [
# O$ Q2 Y. a. O. ^5 D% l v if r(N)>2 {7 d; y# N$ W: G% S" K+ w6 M5 @
! L" D) ] r( x9 J1 r" |( _" ~$ W
pkexamine dx240 ddy240! X, i; A+ k9 W
" F& K( _; V+ j5 R2 t local tempminphddy240=r(tomc)
1 O2 Y7 N# k( A/ w) f6 V restore
/ i3 O% R; Q" _ }
+ s1 V3 \+ i% O" d5 f
' U5 p! X2 J, D else {2 K* ?4 V4 `7 y9 z8 w
restore
6 i4 _3 S$ w( W! W/ c di "cannot find pminphddy240"# }# w' N9 j, U. j( L
A7 o2 Z7 l" X; e: H* ? a
- L9 B2 i d/ ^7 C0 ]1 \
sum dx2408 Q3 \. W" U7 Y, O- p0 D% l8 b
local tempminphddy240=r(mean) # v5 x, y& l$ [7 b1 A. A
: I. n/ R5 E: t1 F W* X2 }
6 p. V' D+ S7 {# ]/ \! D" i }
* j: \0 S6 T5 N 7 i1 }% n9 c: k( j ]% B# x" ?2 u
5 j1 E6 R; V) }2 M7 [$ a+ g: f
! d; ?* h; l" D 6 X, F w# z! \& |" D
; k! c0 p5 J8 m9 d3 r
4 J0 t. ?* X; Q) ~* y7 f gen pminphddy240=`tempminphddy240' in 16 j3 H/ `' z+ | L9 ]' o6 \
! }: G' k/ ]' C" ]1 v+ y
+ k, k6 f; y V
*-------------ddy240pminp右侧低峰值 -----------------
8 W, B" P( J5 d3 [, O; L preserve
8 b2 t8 t" P" Z3 [% V( k p0 x- l ) V6 b, K. T3 l" d: n# {
keep if dx240>`tempminp'! F# z6 F* }8 r
# m5 G) A/ v5 s- f- B7 V keep if dx240<`tempmaxp'
% K# G2 _. E0 T8 R
7 ?3 y& [# z5 ]" I keep if ddy240<0
+ |9 a; U* d9 p5 @. j
3 U* x& f! ~( J! T$ _# H; X+ E6 I gen temddy240=-ddy240) Z9 r3 y6 e8 d
6 j6 s9 r! d! y8 a% K1 E- ~5 E0 C
count
; f! f9 d! F: T. D S
& n# K1 M9 m8 U% ~' L* |+ o& k; z if r(N)>2 {
$ K. g/ R" R: v+ W/ `+ F. S. c5 n
; e, P: Q1 L$ N- k5 \ pkexamine dx240 temddy2402 Q$ t: Y9 Y" Y( V% `7 `
( Q2 f# e8 G/ M2 s9 F! \* U
local tempminplddy240=r(tomc)- M4 {- l8 w5 q" q' o
restore
! `: J4 s5 Y/ a; n O* {# _ }
( T( v: W7 [) Q0 { & U7 {8 `. k8 A4 \- t7 \' Y
else {
# h* I- c$ B0 I/ ] i9 M/ [ ! M i/ z5 y& c
di "cannot find pminplddy240"
0 `& @- H7 a* P5 D+ [ restore7 V% u; ]/ ~# b f8 I) ~9 e
6 r: ]7 D9 Z1 m0 c& X; r. M: u& x2 ` sum dx240
4 B& G2 D$ {' _ local tempminplddy240=r(mean)2 w+ q3 b: C8 \% h' F: Z5 L, U8 V
, h7 T8 i+ S1 E! S0 U8 g
% m% N0 Y* s; [0 p
}" ]- p9 y" b! k1 Q
% b0 X$ ^" ~% }* Z/ _+ m, j' s
* Q% H( N& ?# N( H0 a4 D
) W* _, r' q! y4 a; S* o& {, O2 J
" b4 t. R; c+ M; r% V
2 Y( f2 I1 ^0 n5 A0 v W; v1 G4 {! c gen pminplddy240=`tempminplddy240' in 1; D% \# ]9 m: _7 s! u* y6 n( F1 n* c) Z
$ X2 p& V' V* i$ ~& i; c' C *-------------ddy240pmaxp左侧高峰值 -------------------# [/ m( N w) k8 f1 q- U* P
9 b2 S; _- b ?' L8 I' D- |
preserve
7 O$ Q/ L* @# F( W4 ^8 I
* m: ~% F# J$ i5 y keep if dx240>`tempminp'9 d0 k2 C9 \ F2 m) X
F" Q" c' n& p/ J
keep if dx240<`tempmaxp'
e, v" l5 U4 F+ |, _6 E8 C % B! u5 p: e3 |' K% V4 o+ f
keep if ddy240>0! X% x+ k3 S& k" Z0 g2 a, T
count' s3 [2 n# S% m8 K
7 n/ F9 p9 m/ S if r(N)>2 {0 m7 D( w# K3 ^% z1 k9 ]
8 W5 y4 U# L8 n9 ]8 d1 G! k$ h. v pkexamine dx240 ddy240
# {* d" M, M3 Y% F1 L
8 n; p: Z" P; u& T local tempmaxphddy240=r(tomc)
7 C8 o9 z& K) C% t* `! J2 p7 S
7 h( v: D0 t! }1 x$ ?% q+ ^ restore$ z) o% u. g1 k# f: y: c' b4 U% M3 h& B
}
7 b3 d4 L; _0 _' r ' @; G( p- Z9 Q
else {
, E# G4 Y& D. S( x! B7 f 8 Q r' k6 J3 ~4 @# e A8 r
di "cannot find pmaxphddy240"
+ ^+ y# C4 f3 A8 }' g7 Y restore
9 ~' W, ?! n0 F7 T0 N # P5 o% q/ I' x& y' |
sum dx240( O$ f3 C% U, s
local tempmaxphddy240=r(mean)
, z# c& ^6 O- ~( m! ~: | ( B* c6 r+ |; g8 w' W5 U
' g. _ b1 g5 X# o }2 q) M: b6 }! g) A, j. p
# ~8 G0 W: u% v4 t1 Z
! q- a9 e1 N5 i; w
0 I0 O+ {" [5 O) G. ~
$ M0 J6 l6 J l& M: p: E/ Y
# u! l6 p$ P& T# R* p
2 J9 k3 \# }- X& ^* r/ g gen pmaxphddy240=`tempmaxphddy240' in 1
1 W& X. F& i5 x3 [' X8 c / u: C. B9 `2 q8 ?
' f& H1 W3 i3 Z* I: ]4 E& u1 C
*-------------ddy240pmaxp右侧低峰值 -------------------# l B' u" m* q: P5 A0 o1 A
8 L% X7 M0 R1 d$ c6 ^
preserve 9 W9 [* t3 v6 O2 \$ ~2 p
. \9 U, S5 t5 ]2 j: t0 A% ? g, h
keep if dx240>`tempmaxp'5 ^$ H! W& @( [6 ]" \5 C v3 {
7 m; g) [9 G; h7 U# [, _, W! t gen temddy240=-ddy240
) u8 L. U0 A/ h8 U" \7 m$ b" l
; |6 H* B7 ^+ f0 T keep if temddy240>0
% C2 v- I9 M# K8 g& w G! ?
: X$ n7 G: A9 q/ o/ ] count# R& `5 Y8 ]. k7 j9 C
% m# {; M& z; S o& O if r(N)>2 {
9 h2 Y1 C& [) R! M" Z% Z( C% r1 [
. q, \( s3 Y$ _& m+ f# k pkexamine dx240 temddy240- g! v& T( [' @. A Z5 K/ N
9 K6 w5 I J% o2 { local tempmaxplddy240=r(tomc) % P; s3 W5 Y4 W$ \$ q! _ {
restore- v, W) `* W6 v' l
}
0 O- }: |. M% u2 z/ G
! \! S* J$ W/ I% i9 z9 U- V7 j3 t else {
, v7 ], y4 N# h8 ~0 W restore7 Y; G* t- d& Q6 u5 r7 S
di "cannot find pmaxlhddy240"
' V1 ?! \' `; Y6 x7 V # @4 Q1 K3 Y/ l& D: i: L" `
- x2 Q" P/ a$ ^9 Z4 N sum dx240: [6 y2 V1 G8 o! s
local tempmaxplddy240=r(mean) in 1! W3 q$ e# v" K+ a2 F
" O3 t; O' @! |" ^
3 u/ t5 d9 S$ D# Z3 U& k }
2 l8 k. v. |5 z, K3 M$ U4 `: G
$ Z/ s; c" T7 ?! M
( `4 K W0 L. y/ C. R6 t( k: t: z % H W8 i, u$ Z
9 v \3 r* m' d) |: n
' e a* y1 l" J9 X) x' Q) u
% R; x4 |6 ^# X
gen pmaxplddy240=`tempmaxphddy240' in 1
. l+ ? S6 b7 M% b ' D. z1 y |# z
*-------------------------------------- }2 z2 q; B; Y2 _# d+ B8 `# ?
3 s. ~3 _" q& j" @+ N- W3 g gen price5d=v5 in 1/20
% d ^1 a+ w4 d) O r% P1 o
) c# d' v3 d0 e* o0 u' S0 j$ z' u! z gen price5yy=_n in 1/20
. A# }9 u/ _+ Y- L+ H* Y/ H - ^2 Y+ }, z* u7 |# L( b8 l
gen price5y=price5yy*(dy240max-dy240min)/20. f5 w' k" F7 m( J& @0 O( Q
# r8 C0 V3 a* @2 A( b *price5y &price5d! ?) ?5 h3 Y3 Z- a
$ y1 n4 x( e0 c! |) b1 C gen priceny=price5y in 12 q& S9 V! _8 p& T. G( B- o% s4 ~
4 `- v k% e9 S( U5 m, a
gen pricen=v5 in 1
) ?: z& g7 x' c D+ c$ Z i8 {) r5 V
0 E9 U$ N% L* g$ h7 O8 {6 [ *priceny &pricen; V7 h L9 N. p2 {
. N2 t6 [3 @ \1 B
0 W4 a0 i E3 d1 w& V L *-------------------------graph------------------9 z$ ~- K0 s7 e+ W. L$ x0 ?
! K4 y$ G4 v, _. R- m2 v
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)
% D o, q+ d3 v: ?. x" @9 v& P! ^/ h$ Z$ u: R* P
* ---------可选项目----------------------$ [! `+ i; K6 Q' i% s8 ]
7 V; T, G& l$ C1 W% ?: J( D
}8 [7 J+ ~; l6 E7 [+ E2 i
end3 t4 G! y3 D' W9 g- H2 G4 y
|
|