|
|
改了一下,这次运算应该没啥问题了+ D' \+ V$ X2 v: S6 q- v; M8 D
: O$ `$ d* o. R6 t! a# o+ ~
# o% Q* H3 i7 `capture program drop hello& |4 w. j8 ?$ [3 H
+ p, b8 p, d; E+ X( q8 Z2 @
program hello" L$ D2 z, V# j* v. m6 Y4 I
, U" b8 X# T3 z2 S" N* w
quietly {
g4 k3 \5 u9 C# S& q( ~- k/ W+ d; x2 X8 L
clear" P* ^8 Q( x, p# \; [4 p( {
/ v; h# X0 g1 L, ]" T" b" [2 mcd e:\finance\stock\20110101\source
2 B0 B6 G4 W, ~* I- h& d# y$ D O' N1 X2 _! Q5 g
insheet using `1'.txt
+ o3 B4 J0 o3 v( @- D" G8 t4 D; b
keep if v5>05 L* y; N% U/ C2 S" t# P
. g V# K8 W$ h% k* H& |& n gen vt=_n8 b. M- ~+ g* O8 q
2 c$ m. o7 c. E; a- v tsset vt
' L( Y/ X! v+ r f
N3 T" J J7 | gen zf=D1.v57 e* c( z. S" Q" p- W% {$ o
6 S2 b3 u/ L$ T6 B7 a7 o: a
gsort -v1! h+ e( \6 I( Y2 R4 N- k; U9 I
* b; M) q; F: B
gen avol=v7/v57 G+ p+ ]. F9 F- J
4 h9 U- r$ b: M2 t; I
keep if avol>06 z6 m4 [6 b3 }0 k
% q6 c; g; _/ k( d3 A) A0 f drop vt
2 Q7 ~' d! `/ y5 @% M* M ; y9 p0 H7 F4 k2 q1 J- [/ Z3 b/ u
gen vt=_n' a2 g& \7 M- T$ T! u
' S$ M& y' G0 w& M0 Q
tsset vt6 T& g' a& b" d# M
* P' ^: M* H: O5 L4 _) d! a
sum v5 [aw =avol]
$ w! f- K" ]0 x' [9 w# D; _% @8 d
$ ^4 n7 y: K9 ] F0 m0 k8 p8 [ gen amean=r(mean) in 1
8 g0 Y( B0 ?! @ 9 C* W8 K- Z2 R! A
* 总加权平均值 amean; I2 Q* Z6 P* P; I v6 Y3 m2 s
9 X3 J/ W4 ?% A8 k$ H
) t# `' X) T. o6 j: l: w keep in 1/240
/ G0 `; ^! s8 U+ w3 N% e& D8 q4 x, l4 A2 `2 \4 @
sum v5 [aw =avol]7 @+ D1 ]: S# f$ S
6 q/ i9 _) G3 n
gen mean240=r(mean) in 1 ]: T- x; T0 ]; Z
- y: }- r% F! F, {) R
*240加权平均值 mean240
- B% M4 E! G* L3 m
: Z! r' f9 b" ]: @9 N2 J0 x# A set obs 500
/ W: {0 c* |* X2 g+ A: I% _ 9 ^9 y4 O7 g: _$ m
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
8 g* V% j# B. K; k
2 c2 i9 [# y# B& w- D8 V *240 kdensity(dx240 dy240); x$ Z* e% U% G+ W0 f
- ?3 |% ~& ]) u' f% R
sum dy240
5 @ Z9 f5 v9 |1 U- C. d0 `
3 {2 R5 E' x* R" v! A8 f/ q4 P gen yxis=r(max) in 16 j8 T/ J# | X8 |. p* D
6 E1 I) n6 j( P2 W5 C! d; S5 P- r x gen yxis2=yxis/25 U8 \4 s3 a, Z3 a# Q3 n
. H W5 U5 v) |( k3 A
*yxis
. d; x/ r8 s6 D4 Q( a. A8 O) k& |
* N/ }; y0 t' F/ h2 G gen dy240max=r(max)
: K( ?5 O& R8 A " y' ^- ]& T2 F7 Y0 j$ z% s& G
gen dy240minp=r(min)
5 }, [; w w$ C8 o
' ~8 w, ~5 ]1 }. q gen vtt=_n$ {! D9 R' j/ i7 _: n/ Q! j4 o+ a9 s
; e; O0 a) w: } tsset vtt5 D0 ]2 b1 T/ o0 f0 C
, w4 Z) t8 d9 D# P+ ~ gen ddy240=D1.dy240/D1.dx2408 ^9 s' D! _4 v- z* ^+ {! @( X
6 w! o* U7 m4 \4 O9 ~( C sum ddy2402 A; B1 s8 N0 N7 B* z6 [# Y( t
: S2 A2 M N m: z' x) V( Z7 c gen ddy240max=r(max)
! \6 ?2 N& _! F4 w+ U & {' q! y; ]8 i: a% m
gen ddy240min=r(min)) f% Q2 C# l4 B' }
- t9 P- x; W6 Q) o gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
, P2 B2 M/ m, w0 }2 h7 I! F! ^4 m9 j
# `) ~$ }1 K/ i4 q+ d# N sum ddy240g6 e/ U8 D, W3 C" h% F+ T
5 N) H/ z. @4 y6 P. V& o) T gen yxis3=r(min) in 1
8 a! p# Q$ B# y7 _3 n, t( m
+ ?: \5 O N& M3 R gen yxis4=0 in 1. d2 L) x, r5 z! x. h! c
3 ^( G, m5 Z; S0 P
*ddy240g
' C/ B2 i k, Y! @
1 V$ P4 Q! X0 N! W! S& Z + h" ]( \. @0 P1 V; B& \
preserve 3 b( O3 V9 d: P
" {/ k: J1 Y/ Y4 r: T) i sum v5 [aw =avol]
6 S K+ `! U, w. r! V0 J% w: g 2 z* U2 T& v. H$ I; E# |/ w5 i* S9 x3 T# Y
keep if dx240<r(mean). ^8 Z1 f5 z. S* X8 l& }0 p
* ^& _* t& h3 `. S2 U# ^5 [
sum ddy240
& g" {# z+ Y& k% L 5 x- j$ O! h- k6 N
if r(min)<0 {
m y" A, F# c, ^& h2 N $ C( U0 T( i4 y! x2 q
keep if ddy240<=0
9 v+ X3 l7 R' k! G6 p1 ~ 8 C$ Q, K# `7 s6 t% g
count
9 h. B3 Z, v9 H3 j
) o2 j& m- ~- ^& K8 {- Y if r(N)>2 {
7 l: d5 J4 c0 o1 ` 9 n, v: D1 g P% s
pkexamine dx240 dy240
( A( i5 B: Q3 ?9 D7 d( o4 o 2 T0 q. M* `* n D
local tempminp=r(tomc)
( y* l5 V7 v: J restore " C( j2 F: _7 G
}
$ O! A" ~& }% p+ F6 `) b- f2 [& V
& [' k; S: t& o- x else {
( k0 `, ? r& b # w1 X$ F' p. Q Z5 Y. h1 l5 O
di "cannot find minp"" L4 t: i; j- Q, Z6 S0 h, C0 M
# V! |1 F+ U2 _/ W; z restore # L- i4 X% w! g
sum dx240
& l- x- p0 E5 O- @; ] local tempminp=r(mean)# R8 O/ u1 {5 t/ A0 P j
1 a4 l% j# e, X% u' g2 d5 u
}& @ y0 V" R9 a2 d5 Y4 S( F5 ~; X4 V
}
3 l7 b: H, v( H/ U' Y) u0 Z8 I else {+ b; `% [& S, e& f
9 @# P' w( l* F* p; m8 F& S3 R
keep if ddy240<=r(min)
8 n# J) J& o! Z8 ?# | L6 ]
2 p) C. j8 Z$ Q- S1 @3 Z5 k sum dx240* {% s, \. `" b4 v
" y4 Y! q6 S9 Q: i: m
local tempminp=r(min), g' u/ _0 b6 ] `" q* R/ A
restore ; @8 g8 m4 E" X) y' ?: \! f
}
) @' b% [* s2 p: @1 h0 W9 N* e# ~
3 F$ Z. [5 [$ x) T8 p3 [, X
4 p! @% m9 h6 h& x0 w9 N% {3 A. B0 n; q' Q8 |/ M0 f
gen minp=`tempminp' in 1% S/ x, |9 t, B+ ~+ o6 X9 K
*240 minp7 P. H2 [7 v# v8 l+ z+ {$ {$ H5 H
. o, K+ {( a8 p! `* |' Q+ K- |+ m" i, X$ w1 v7 S/ X( R, @- s% _0 g
8 p6 U" _; V O6 i ]
preserve 0 q/ [6 l; T$ j2 c5 U3 E" S
% R9 `$ r( o. R( q& \% k2 n! _
sum v5 [aw =avol]
) y/ i8 e. _* N/ g2 d. o x9 K# i
) B0 u4 M1 N. ^( ?% \ keep if dx240>r(mean)4 g' r4 \( _. P" g, ]7 a* S
$ S" ]1 M9 G* z9 g
sum ddy2405 m8 w u) V2 C$ d X% ]
N1 S/ s' {0 l. Q; z if r(max)>0 {- n c" k" Q5 q9 F/ V
+ N; S; P* z2 H0 x4 r, t; H keep if ddy240>=0
7 S7 h% n0 A* Q# G2 y" G! ^ 5 K6 S! M# H0 i, S
count; d! H. F/ M2 R7 Y8 @6 b4 Z0 ]! |4 ]
+ @2 z; A( ^4 p: K; U: I' f% A if r(N)>2 {+ {% W$ C4 z: s4 z$ @3 p- R; S
: ~0 G) i& V) S9 j
pkexamine dx240 dy2401 X. ^5 y( k( z
' v7 v2 r; R" s local tempmaxp=r(tomc)
. H! X. U z6 `: R0 U2 q restore
- i' u, h# h0 [. d# `. A0 b4 S4 A }
" V O4 e& p( d* J
9 ~( F) e# M& t0 i" s8 F. T / c/ W2 `$ w% a) E+ o B7 [
else {2 I! |, F+ C7 H" D/ X
restore
, G5 v4 ~8 H8 | di "cannot find maxp"
3 n' E+ C8 r: P: _ 3 t+ l2 ?. C: r9 W; `% C# @+ _
, C5 s) s# k" Y: d7 _: D- \
sum dx240
' d) H; f6 e1 O& Z local tempmaxp=r(mean)
: B; P' w5 ]& ?0 I4 c : ?/ n( ^8 H# t( [" z% M; G
} A7 e; A1 B5 s3 k, U
% w. o) _, ]. s! [4 l7 s }
/ E/ ?6 ?% G9 q$ y! z5 @' P
6 p1 z2 L S& h* d else {$ h4 V+ l! \2 J# c- {4 Z; H l
+ j5 }" R( D+ E$ r6 d
keep if ddy240>=r(max); ?$ C2 ]8 \4 L y+ r0 z; x
; d! h- m$ G! E5 D% q( ?$ x
sum dx240* c5 y [7 G9 T
- Z" k- m9 b' F local tempmaxp=r(max)
* T |) }& c' J; k restore
- [! O$ F$ i/ R% ~6 Q }
/ h( Q7 T" t1 O& M2 C3 a4 n: T8 g+ L
+ _6 r( k3 O2 z7 s$ K3 D: O/ m( u5 q4 D- N, U: b! R/ X
7 h4 [4 [& U" ?5 u7 M) ?
; Z9 ~3 c( Z) E9 w
gen maxp=`tempmaxp' in 1
% {- a6 s3 B( p; a " o. \& \+ U' w; \/ v# V+ h2 I1 R
*240maxp' E" X. H& E+ b8 @ Q; P
, h/ V2 ]! o# U- ]/ m, p! I
7 a& h, t' C- q# }; f# Q3 z6 L *-------------ddy240pminp左侧高峰值-----
+ x! f/ G: g3 ~4 @ - Z& h2 \4 H, |
preserve $ B, N5 ~( E0 D) z9 K) A
, F6 U& w. R& r% ^ keep if dx240<`tempminp'
! c5 ~9 ?/ g- v% K5 s3 o
3 M6 Z" p! O, ]" k keep if ddy240>07 Q, y# S' n. M+ z( E2 Z. \
" f1 \/ `4 ~/ o! Z2 g( k count v9 h g; W! {, l0 D0 j
! o9 @+ Q4 [. u1 h* C: ^! i if r(N)>2 {
1 B. `5 O# V' E6 F5 F& D, n9 N3 v
& o) O$ ^' X8 v) K( T8 F pkexamine dx240 ddy240
' `* j4 t6 d0 Z$ P
& I/ w- N5 Z* a' l8 |' q+ ^ local tempminphddy240=r(tomc) 7 G; B6 e4 s' S9 f# ]4 s& i; v2 f
restore
' M5 M3 `7 ]1 v9 _ }
1 h" N# [# H7 m: y: _ 6 ~. { P9 [& |: O3 m
else {
! a( R" _1 W! C) `. G. i3 G restore & s8 ?* y. O2 R( L& M: N
di "cannot find pminphddy240"# D7 Z+ ^1 P6 \6 E
7 S! W: D3 C' k( u4 m( |1 R - Y0 g' l0 ]* I9 N
sum dx2405 b- N' y4 P7 z+ U& |7 D
local tempminphddy240=r(mean)
/ M. @$ v1 j6 _0 U V. j$ W1 i4 Q9 [2 a/ L
/ G# e. z/ P' F' l- t2 V9 R }3 A! b& p7 d B: H
" h* C( c+ a7 q. s 4 w8 x" ^* r' k+ p2 n. Y4 W
0 }8 _! r$ v1 t$ f- B1 P) Q* O! k , g3 L6 x) w J/ d& e) z
/ Y- ^2 n' T ~- F- n& Z6 D
* `8 y. l, {/ Z
gen pminphddy240=`tempminphddy240' in 1
) a6 S" l9 l) Q
1 x8 y: G& u) R0 \: q' h % b$ \3 h/ [4 K$ ?6 }
*-------------ddy240pminp右侧低峰值 -----------------0 \9 E! s W: T! s1 s8 a/ [
preserve
; C, A' V" S$ x9 m
|7 y$ I9 l4 p" e9 o. n keep if dx240>`tempminp'
7 M( f8 E0 S* w- b% E
* P9 m! L3 u2 A' `% c keep if dx240<`tempmaxp'/ {, s" Y- G6 x+ ~& x
5 g, O4 A# N9 W/ t( c8 q
keep if ddy240<0
& \( i* _& ^4 b6 \ 8 w7 Q8 P( V- D! \& A# r
gen temddy240=-ddy240
; L0 j; Z7 q0 D! y/ { % h l4 S0 v% z2 h
count
v; _4 {" s0 z8 a0 i
: p& z# k" W( ~2 F9 R if r(N)>2 {
# b8 }) J. f! q1 [( u) X
0 e1 v( v* _# ~ pkexamine dx240 temddy240
) C: m d3 ^. \4 a0 g x. z @1 x$ B* V& n: p' C6 \ Q
local tempminplddy240=r(tomc)
5 u n$ U$ k+ } restore$ ?) P4 g" y0 b
}+ A& E% I3 w$ C5 F) e+ S8 a
9 d6 a1 a) F9 W! \) X" d' \ else {+ i0 \, {/ J8 Z! \
, {6 X1 y9 ?3 @* J. T1 Y) ~# |" v di "cannot find pminplddy240"
' @ {! M1 r( V+ X/ [: Z6 W2 Y8 l restore9 g+ R* v, ]% k2 E1 N m
+ E2 T' s& w' J7 P- W K3 V sum dx240& g) Q# T" l6 Y; [2 J1 L
local tempminplddy240=r(mean)
! l6 D( k. R' Z. G
3 v8 t. B! h+ F5 f$ C
- F5 [# T: p3 N( [ }
0 V. ~6 F2 h: M9 ] 7 P4 V/ I5 y3 A* z$ T: N, B/ m8 b9 p
% r) p' s5 }$ j# m1 h) T) {5 C 9 G1 x" m9 u3 b! {8 m
) K! b+ j$ ^% P$ o: E; I& I1 V l
9 F' Z0 B+ _6 {2 }$ b4 z gen pminplddy240=`tempminplddy240' in 1
* x6 p5 R5 e4 G# `- i $ H$ m2 E& s7 y3 W& `- X4 ~: @
*-------------ddy240pmaxp左侧高峰值 -------------------7 f6 |1 T3 V# ^& z* f5 V8 V" V
- h* X! V, d5 N1 O preserve
+ B$ Q+ j" b Z" Z. y
. ^: Z" f5 |3 ^8 w/ s+ q" ]: r keep if dx240>`tempminp'7 Y% Z7 Z, G8 q' k' d
+ z/ h) \5 H+ E9 x. ~: Z P keep if dx240<`tempmaxp'
- o: ?# [9 n! w , u6 p; \& A1 L& u% C# u8 S
keep if ddy240>0
, W9 S5 T# s3 A6 G# l7 \2 l# i( t count. ]- a( t ?9 T, B$ `6 w, y2 `
8 z, }7 P- A, P
if r(N)>2 {+ C5 r# w7 I6 J
: O% L5 v) Q/ k8 W7 V
pkexamine dx240 ddy240
) e1 ^8 U$ n1 F& n- c& s5 X
5 l" p) v. i; k9 t9 ~5 ^( { local tempmaxphddy240=r(tomc)
- k* b2 \# t( A* d: D % h" `7 M9 X+ V. E9 q- q! h- k9 R
restore
0 e& y% u1 {# z8 O }
& j. F2 K7 V9 f: P4 [: G
1 n2 R! X7 w/ r/ |0 F! z2 a8 ~" W; a else {
! A! Q2 d4 f5 G! y5 p& Y" q ( P+ U6 A' W% K7 U. T, u& x
di "cannot find pmaxphddy240"" b# g0 M4 s$ c4 l# T* b3 F3 D
restore. `% g3 r* M ~, ]0 I8 W" m8 S
2 c/ v; V7 a' s/ [- [; d
sum dx240: q* s) a) w& x5 Z) T: d
local tempmaxphddy240=r(mean) 7 a8 v: N; D7 p$ `
& N0 ~: ~# z- ~$ S' p
E% z# v* R2 |2 o% X }
1 Z4 s% U9 R8 O , w; I; |' ]. O
% m" z/ q U, d1 q
) d) h9 B4 o z4 m' n! l
$ ~4 Q1 n; B3 o0 i9 J4 q! q! P
2 e/ ^, ~) O( S( ?- x
5 f/ x) [5 B8 u! f gen pmaxphddy240=`tempmaxphddy240' in 1
' T, |- K+ u% v 6 s+ H( w6 j7 o4 X# e2 S
$ w/ o7 K9 G& U8 x1 b |/ n *-------------ddy240pmaxp右侧低峰值 -------------------: S7 v! C3 c: l% j" l2 m" k
/ e# b! T4 _4 A, ]5 e! D c4 n
preserve $ B; @+ v# I+ K, c% _
7 B6 {6 [2 g0 @$ v) U8 s keep if dx240>`tempmaxp'
+ Y2 ]. f" O* B, b! o$ E8 `
& Q. _ Y+ S' _# }& Z8 r gen temddy240=-ddy240
- o6 `2 P2 l2 N" I8 j' } 0 ^+ _, c; w) @& m
keep if temddy240>0: m" M' q5 v* l2 B
, l, d* C( w# R2 `. W
count$ }% X( V# D! |& A: |5 o3 e
" a3 o. M. W, Q1 |; n! h if r(N)>2 {
; \7 M$ ^- b1 Z, b* Q( M5 s
0 p. W0 l7 C3 S& w5 f/ i pkexamine dx240 temddy240
8 z$ I: h8 m& R4 p$ E6 G+ Y! j8 d
+ U6 i3 U9 J4 W7 M5 V1 ? local tempmaxplddy240=r(tomc)
* X, b. j) H( m: U, O! R restore$ {- v, g; I) V7 ~3 O1 d6 J3 m, _
}# B5 f3 @8 g& X: N- H* F( Q3 ]
5 B) D8 K4 [7 m else {% \2 P& z* E' q$ U0 a# _
restore( H3 A6 P7 t- J( q4 n3 ~' W
di "cannot find pmaxlhddy240"
9 I3 Y. q' [! a- `9 o2 c- Q7 z! D
) L* N! {$ l: x% @ t! c' e$ P
( n3 n- F( I7 [% G3 { sum dx240
' A4 k% o' F" d, q: n6 ]+ ? local tempmaxplddy240=r(mean) in 11 p! E# Q3 o- p+ ]3 C. ?' x
! ^0 H( z ~; v: t! D" X0 J 1 E: U7 j' t* O7 r: V6 H
}" c) `! |9 u K1 J- D
% A! O c& u4 W7 M. c$ f
. Q! E! t: Y5 N1 L4 y7 z$ e
: h8 u5 b* `- E' i Q1 `
$ X7 @: K3 u; x- q$ i7 b& ` ( s' }9 C. F$ H) |
' l3 B) d2 Y3 ?! `2 r( }
gen pmaxplddy240=`tempmaxphddy240' in 1, x, N3 ~: [! h6 f% k/ p
0 Y6 h# u5 w/ i- D+ L *-------------------------------------
5 n. Q- H( E S2 M1 I- u; S
2 N+ V3 Z% j0 d% v; A gen price5d=v5 in 1/20+ l+ Q1 \- \2 v. u2 w; l
, _& e4 y3 ^7 I- i* \/ J q G gen price5yy=_n in 1/205 G) t- I+ O7 n6 r( N* f
" G7 U Y8 L _ gen price5y=price5yy*(dy240max-dy240min)/20
, `4 X+ o$ P* S; _
% q; a: O3 ]5 d8 Y1 s *price5y &price5d& E( J! j8 E' Z/ Z4 X/ F! z: h
( d/ J. I: `2 f; Z+ y
gen priceny=price5y in 1/ l+ u% x! p2 ~5 h6 {% h
9 |) x; R7 _" O( z3 C
gen pricen=v5 in 18 I; V& [0 F+ g" |/ m7 B
; t1 Z- U# H. s( X0 n% M& [ & a' U1 H G% \; [' f! c- i
*priceny &pricen
$ X' _' S2 z. }. w + q) k n( ~. s3 Q) R
- H) ?+ \$ ~0 P% _/ q *-------------------------graph------------------; |" S$ M* e% t3 Q2 @$ E4 j B a
3 v/ L, o9 ?/ e$ S9 L3 E 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)
5 W! Q) ]2 K. \) u6 i, u6 H% ^* p5 ?' c9 S* V/ [0 v4 u9 W g
* ---------可选项目----------------------
3 V2 q& q7 ?2 ]1 [2 V/ t
6 J. v) A6 T& ]. ?/ H9 c}
2 Q K) a% u0 {; \end! @- K+ d- @0 V: c: D" a! O
|
|