|
|
改了一下,这次运算应该没啥问题了
% K/ O _8 g' [2 L9 [
8 I3 V# [) t$ g0 p5 g9 o& Z' B% q2 B5 q4 Z& V% P1 N2 z4 o8 o
capture program drop hello8 F# d/ d$ f( |6 U. a
/ @+ o" v$ h! i# ~% t8 @
program hello
& \1 a3 m7 o9 z
# [4 l* [ C. H quietly {
. g4 ]0 A1 _- a7 i" i# e6 ?$ n) I6 v; t' y2 d$ m
clear
3 v9 a, T/ y* D5 v
* i5 O0 X- I( }1 Ocd e:\finance\stock\20110101\source& M& W5 {: v8 A- V( X
) I6 `/ N+ @5 g- [* O: N Kinsheet using `1'.txt4 T; K+ d: P# x& d
, A8 ?( x+ Y- O5 X% [9 S. R4 c5 E h
keep if v5>0% D% E! @% P6 b' O
2 @; O$ _ w/ X
gen vt=_n4 B2 C( B" s+ m0 u, V& d4 l
# m) F. N& }* k4 B: y2 i6 R tsset vt6 F- t( F1 R% x
1 S4 I1 G+ S; x" r' G( H gen zf=D1.v5
+ t1 b2 D5 x% I% m- c5 {" }# w( h7 k1 K2 G
gsort -v1
. y; i, I* `& L d8 m6 v4 p( l# R4 d) M$ L
gen avol=v7/v5. P/ O% L9 g( P# k8 Q: i
1 G5 k8 ?1 p8 K- r, m6 [$ A# o
keep if avol>0
( A6 [9 s& C3 c; H Q
1 F* Y' ~* u' F& i% z& Z drop vt
, v( K: L6 O/ k7 h& T/ r! z" k 6 J4 N' n% [# I7 b, b$ Q% j9 E
gen vt=_n, d$ A: y2 q2 K7 @' z! }! H
! w) M, c. n1 E( v, K
tsset vt3 q; \) R' X6 ?! m! T: y: X
" N2 s$ n* [- s# T sum v5 [aw =avol]
/ L0 {! K2 a8 e, d& |: O, Z" Y8 s" b) L
gen amean=r(mean) in 1
# h1 r& q7 h/ u+ Q e, W
3 p3 l8 p, f, v! X3 r * 总加权平均值 amean
$ m3 R' y( @" m6 o
" K0 v/ @; W+ N* q
, \) l* L# S4 j: V keep in 1/240
: W5 M+ U& U9 J0 [' b$ e, ]+ W' ?7 a5 P! v3 i# X+ i
sum v5 [aw =avol]* T; E; y" n1 V: ~; Q& s
) \- `1 @3 t2 b3 m0 E1 D" }' i gen mean240=r(mean) in 1
5 G4 h \7 E. R6 s7 U6 |& [ 5 g) S# X+ x' D/ V
*240加权平均值 mean240/ v, I+ Y: L8 {/ y' F9 f
: V Z4 `! Q" c* ?7 {: \# N set obs 500
" C$ |, `/ I. ^ 7 l8 q! I. |- V O+ B# Z$ F, {
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph' T* Q2 w6 h. \3 v& I
[$ U# p5 v( p3 V+ J9 `0 e; A
*240 kdensity(dx240 dy240)
' v i$ t- A X" r7 h # d. s0 \0 K) _; t/ N
sum dy240
$ M& I( }+ u% _5 L: Q6 |* s4 ] F( w8 {9 C+ a- r$ D) ~
gen yxis=r(max) in 1
; h1 }4 `/ x9 [$ b, J: { Z* [# N3 K z% ?& L
gen yxis2=yxis/2
# {5 r% ]$ ?8 ^4 v! T$ _3 ^
* n3 V, i p! V: d k *yxis
$ O# g+ h( [, P0 A
$ c* e' ^1 F- ^* }# l# ^+ n% {) m gen dy240max=r(max)9 E( W$ L Q: _" c) g
+ n+ j1 o2 J" i0 x. d7 e# W
gen dy240minp=r(min)
% T1 {$ {9 U' T7 a( r# m$ @. U& _
8 R7 ?+ P7 n0 }- ^5 g* q( k gen vtt=_n
$ l2 O# y0 ]0 S4 W. X: p# B$ }. e* X1 N8 _4 T: g* D+ [2 P# _: a
tsset vtt
$ k+ E: n( m) D
1 j5 a! w6 s& X$ Z0 Z' o/ e gen ddy240=D1.dy240/D1.dx240
9 @; ?) D, U6 g: M8 E! x8 Y
, K1 C3 e; v! n sum ddy240
3 P. F) b. i% V, Q
6 s K" Z, r5 k2 a3 h* k z gen ddy240max=r(max)& ?: n9 ]% E) l' i
& K* @7 h6 r, s3 {# M
gen ddy240min=r(min)$ `6 ?6 ~* N# V, e
" C& |; x0 s) |, t8 s+ J gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)& J7 Y' m. S3 P x V* z# S
! a0 i- E; ]9 u3 |" m7 Z W4 C
sum ddy240g0 Q8 q: b! r6 q1 D& D+ l
: C/ S4 `4 T' U% ^& g: l4 D; @8 ?
gen yxis3=r(min) in 1
. e5 \) q4 _* z) F, [ ) ?* q: |8 @0 [$ [) X
gen yxis4=0 in 1
/ C( s1 ?& C$ ?$ M. r: t \6 X+ l( u& y
9 Z, I6 L% N" p *ddy240g
+ _" ~ \' k/ w) \- B 8 }- ?- s% p# _) c
; M- u9 m {; Q' a5 r preserve
* M8 s0 j* g' ]2 g, @; p) i4 v( y
) T$ I& J' o# V" ?- Q/ E sum v5 [aw =avol]
3 R$ r( B1 J4 b: o- s' _, D S ) S% X- @( N) O
keep if dx240<r(mean)5 }0 ?- e9 X/ `9 z# [( B
% v5 C$ g8 w1 j, z
sum ddy240; P/ n4 I1 o6 I1 c1 L! [
! Y# G6 f. [/ @4 R2 g& q W: y/ r
if r(min)<0 {# {3 T1 P* g$ o7 [
7 Z6 p. p7 Z; @ keep if ddy240<=0$ u0 K; F$ u1 n' V) E
0 t W; o( X3 L t+ {0 K& ?! ^# ]4 X# k
count
/ `7 |! y+ A n0 S/ z 2 t' d2 o& F2 T8 A. z
if r(N)>2 {
. d( P/ f! X) T% x4 Y/ i/ \5 N
. I% u2 c0 O8 }# O( C pkexamine dx240 dy240$ A' E7 F. Q! ?; f4 a
. j+ W0 V+ r) L! N. q/ R# _, \" A
local tempminp=r(tomc) ?; q; F4 ?0 C; J8 |+ X2 F3 c
restore ' \$ w% s, f' V" D9 U* Q
}
+ \; ~, ~( l$ b2 Y$ O% N - F) a9 s) N: I- R. Y2 [
else {: ]! }4 g" x0 j% A# P% B" V1 R
; z& J K3 X+ ^' y
di "cannot find minp"
7 E: P0 {1 H3 }6 H! y6 O4 ]
' e1 q' F, P, _; |" X9 j- u7 Q% [ restore
$ z! T4 u; r L7 A: R sum dx240
/ ^. C+ B ^( `( B local tempminp=r(mean). |5 r1 G& T( `- p ?1 ^
- ], a. W% Y0 p8 L) R) m g- c
}
+ }3 P8 w2 S- X% {1 V* ~* I* [ }" h9 o$ Z9 V, ^. |% [" v) [3 g4 L( d5 R) Q
else {
2 l) e9 ~# Q% k0 a" f
+ }7 d7 k6 t" [ keep if ddy240<=r(min)
( G/ U! ^& M, R, j # j6 f/ @; Y& P" n& E0 K. \
sum dx2402 o8 v; T5 C' `
0 o( q2 @3 q# K1 s+ U local tempminp=r(min)
5 e( o" R8 R2 V% K# r9 o- ? restore [% z x' ?5 \- g5 i3 H7 H% z" c
}7 V* ~' q3 J+ o9 v% q
; ^- ?. T0 n: o) [& k) y- F9 D9 ]
2 @; r4 _3 r4 J. C! }2 l1 i4 j! p
* F6 H8 E6 Y9 S# w2 s gen minp=`tempminp' in 1$ N' A D; s, W3 ?3 e* [
*240 minp1 G0 W) _2 Q# o5 {3 T) [. v( |
@0 d* u1 I f! `7 x0 |# n
0 K# z- M# d( w7 c1 x" W
1 h# |& y' q8 g1 {0 Y( q preserve
! x; V' d) i" [4 o& e( V
- L9 _% J/ ~: y1 B6 Q+ J sum v5 [aw =avol]& A3 ]7 e. N) }$ `2 @# ?) B
3 E* }0 p9 G4 ^0 A6 s) m8 Z
keep if dx240>r(mean). q8 g. a" e3 E% \7 _
' t) H& H2 n7 P3 m* a! D1 d
sum ddy240
; \# @ k- J0 k' [* J
! u7 u' s. ]9 h) ], [/ | if r(max)>0 {
2 V' L! d5 M+ S+ A" a* g; I ( J% F! K0 ~; D
keep if ddy240>=0# [3 e/ i8 E r/ D
) j8 E3 F0 w: m1 z: t! F
count( U6 k4 z: Z) |' q4 h( M( Q8 N
. a3 {" ^+ v; T7 B, o
if r(N)>2 { E5 M+ Y/ B" n/ {/ D6 G0 Y3 s# k% V
; _) ]5 K# X C+ A pkexamine dx240 dy240
( A% j8 e/ c+ ?8 _- R# f
- U: _& a5 D, }0 D2 M local tempmaxp=r(tomc)
4 a% l; T1 v2 A, S6 b# ` restore " R" f! m' n3 V8 r
}
' b; G+ R* y- e- [ ) ^3 z" B" M2 b: { z& ^" |
a% j5 Y7 p$ {- w! w* X) F else {
o- R5 ?8 |: i1 ^4 z restore * q# N# s, e) J& l4 \! c
di "cannot find maxp"
% o7 X- P: h. F ) W6 r# s/ G; n/ I4 N" z9 J* i
7 M9 d6 v# _7 Y; O! v! d' W
sum dx240& ?' Z9 c* E, t8 r0 S9 W H
local tempmaxp=r(mean)
0 _: `* v. h6 C7 ~0 [
6 F5 ]) z1 e$ Q Q2 D, V }3 C* l( X1 _, q1 ~
' d- b9 S* m/ z; H \$ G5 W$ z }* P" `5 ?6 I: v* n( a6 K0 ^ Q
. U6 }1 t: ~2 ?; N: W
else {. j+ p+ L* n4 ]6 d/ h
2 H' Z% y: {# ~) y
keep if ddy240>=r(max)% _- X# |1 U1 J" J5 y. ]
5 ^: g K8 J7 z, g% T1 J
sum dx2402 j5 t" R7 T) N% l3 j7 ?
4 e" H: ] H+ w {+ Y8 f( L& b6 i local tempmaxp=r(max) J- P; ~2 U" R1 f* H9 Q% r5 W
restore # q7 J+ H$ S5 I `0 K
}
; @6 S" D: E( W% p" S, D3 ^
2 {. u1 H: X( @1 u1 u: w$ n% h2 }* a
* m: c; _6 ]6 l- r. Y( p7 i$ I) h) F7 g0 d1 {9 i- F
gen maxp=`tempmaxp' in 19 m7 g* @" e8 V# V
' e) ~ Z' ~& R *240maxp
4 Q! e: e5 J- g7 t- w i 6 z: Q) r$ o4 y+ W( _( u v6 _+ B
; j+ e8 c" r* ? *-------------ddy240pminp左侧高峰值-----
( M' F. d. C* s6 g" o/ z: @- R. H
s; {+ }( Q$ W8 M, Y! \; W preserve ; ^1 _9 n$ }! V7 E
2 o5 W, u6 H- Q/ N7 N- W
keep if dx240<`tempminp' R( E& [( C: X$ b% D
: i! r+ L5 _2 [. Z. W" _! {8 ~ keep if ddy240>0
8 q! Q& q( |, L4 \* @) M . C* i5 f) o: I- p& j
count
# x7 e3 g0 ?% b7 |, i& Q/ c4 @
0 k% A' n% J) B8 {4 U; | if r(N)>2 {
' B E1 H, V- i* Z8 E4 X0 T$ x% Z9 f 5 c0 p w- H L& G0 V* _8 x/ Q- R
pkexamine dx240 ddy240- x; I2 {- i0 K3 p1 p1 D1 B1 n W
2 u, r% H4 X3 G" {$ k: E local tempminphddy240=r(tomc) 7 _6 I" F" [2 ^3 I) u- v
restore' ^9 l7 v+ c7 s0 j+ h6 [
}
2 H+ x |5 x/ } ' m+ x4 }9 Q$ m
else {
" C$ v/ w! ^& U& ]0 x; x restore
: p2 S. U- f6 V+ L di "cannot find pminphddy240"4 v) @/ k. N7 N; b& ?
1 e# D' H8 |# e, {* f& Z
" f9 E; _' _* |. L* E sum dx240
% {5 P, n; s; U local tempminphddy240=r(mean) & {9 l% v* r! E+ u* u
( F, E/ ~1 h/ ]! {% `! f1 s
$ p0 a$ @3 }# S+ ~' Q }
/ p& H- X2 F2 d! c7 S; h & k% Z# C" U3 V
G7 U7 p; Y+ S+ `! y. B, z3 x2 } 2 c, O% l3 H9 a- e8 ^
5 `1 x2 v& ^4 [& [$ O! w/ Y
& L$ g1 z* U# ~1 {7 m , a+ A+ I2 M- k- F9 v; j1 `
gen pminphddy240=`tempminphddy240' in 1& X+ T+ M# z- z6 v5 k- f9 f) A
7 h8 V. y$ k% I
* I$ c1 Q# P$ A/ Z *-------------ddy240pminp右侧低峰值 -----------------
. V0 K4 J. G" y$ W5 D& G1 J7 | preserve
+ t- k L& { ^$ y % i( F8 n$ P# `" o" t. @; ? g
keep if dx240>`tempminp' E* ?/ x! i5 I' a8 E) U
" f' q) x u/ x" [, v1 B
keep if dx240<`tempmaxp'9 z. W1 F8 D! G, R- l
# I, ]2 ]3 o2 O. k& `7 o/ G" k
keep if ddy240<0
! C4 V i+ D. m9 u 1 ]' e m9 F1 f+ B) l
gen temddy240=-ddy240
% A- t6 w0 w2 Z1 h
6 B7 q" ~* w9 r& x, i5 Z1 I count
6 x* ] ?; l2 a) t1 h a% j7 m, s9 a l9 w
if r(N)>2 {
7 V* U; a2 e7 f7 l 1 E3 f! |4 U% s
pkexamine dx240 temddy240, W: S; d1 N: ~" I; o2 U; @8 \. _6 C
, m5 n9 }) k' r$ ]( w9 y
local tempminplddy240=r(tomc) V7 s' u5 g2 N
restore: I& b2 Y. \- M9 P
}) ~7 v: m! f. f4 Y a; [
- n9 v, I$ R% o+ j/ p4 Z
else {
@7 C9 W4 E" Y3 E+ G3 M0 \, \ & V- i% f% M1 K% @
di "cannot find pminplddy240"/ H. c* _5 J" [, L X3 b" @6 {
restore
7 @1 u0 U3 ^8 p 1 E0 Y. H( C; h5 x8 r2 |6 y3 i/ ^
sum dx240
5 a. |0 [& ]+ l' M7 @# Q local tempminplddy240=r(mean)
! L: V) J" s: p, R+ ` , g1 r5 p7 w% _' ?& A0 e
6 b0 I4 V; m2 b; Q% `6 j3 ?
}; H. q/ G. {, G% [) V g* L
& Y4 P( d* O7 ?$ k; }. y
: u( E7 L6 b x, ~" l7 V3 O 7 }# y9 c" f/ ?' W7 ]) K K
( G' A) _7 E) d: Z3 R8 S! J' n
0 e7 W9 h9 {4 `! F" M: V gen pminplddy240=`tempminplddy240' in 1" H6 x. v, s9 \) W/ E0 I
" ^1 ~7 Q9 u- B* u *-------------ddy240pmaxp左侧高峰值 -------------------
, z2 f" U. W: H. q2 O `5 ~
. o) f* _/ `; `/ M preserve
, z5 w: K9 M' m5 \' `' y
5 F/ u- A9 G! i' D: ^: B$ n keep if dx240>`tempminp'
0 ?: ]3 P& u3 |* m
; z' F6 ^; k- g5 }$ e keep if dx240<`tempmaxp'8 A8 M) \3 b7 u- K! h
0 G8 ~+ L% j K1 r/ s J
keep if ddy240>04 e' @! r4 [' N
count
: h& ?+ C+ |# y' k- ?0 d/ K 7 f0 [0 R, y; L& D! V- X( W
if r(N)>2 {
4 g! S6 V; s1 Z2 O7 d: E
; A, b ` U! [% e3 x9 t( L0 ~ pkexamine dx240 ddy240! {2 g- U% y9 j- U( G8 Y# F
6 S5 K5 y* x2 t- M) `
local tempmaxphddy240=r(tomc)
. ]$ l0 D$ b% j1 m
; s$ p7 R+ f3 {) x; p1 D restore9 {. m5 C% t0 G3 f5 a# i" x, b6 Y
}" m4 l( O: v9 [( W% h
; Z) g; H/ d2 ? else {
$ R0 Z2 @" I' Q
* {, ^& e" O. Q, K, E6 s9 v! H di "cannot find pmaxphddy240", G( h' u/ ?: g5 o! V: r
restore
. ]3 o2 g! U# W2 K 5 i$ G7 z, o: \5 C! o
sum dx240$ u5 ]% t5 g0 f& h+ s* ^
local tempmaxphddy240=r(mean)
# D, \4 ]; j. k5 f4 ?! { f2 m& P- ~, z; {2 c5 Z
: ~6 F; Q; Z$ B
}! I0 y' S0 ~" q1 v1 Y$ p6 e
8 C2 c9 S" N5 s + M3 ~( F+ M% F- b1 t; _1 U* m; O
! G ?3 k, t N9 [7 `# f0 X9 ?
% [! U1 @+ U& Z3 n: A- M4 z + u/ Q0 W$ [0 b! g3 H
2 _! Y* G& T9 u gen pmaxphddy240=`tempmaxphddy240' in 1
1 c7 V$ T2 E( ?& Q$ j6 m. y& v ] , A& h2 p8 Q) X8 `. R! X
% e* I& \3 j! H7 U$ W6 b3 b
*-------------ddy240pmaxp右侧低峰值 -------------------* _# ~7 x; o' E9 i2 g% m
5 W+ S" x1 C X; e. X; e% K2 t# ^, I
preserve
. z/ U% {( p t8 ?, Y 6 V' O* s2 m2 i, V
keep if dx240>`tempmaxp'
! r* q' |3 m# N/ D
: i6 y E/ Z: P( {1 T; y gen temddy240=-ddy240$ e N3 h; [3 ^; |2 d i3 Y! E
4 i" S6 r2 R$ g D4 O8 g keep if temddy240>0
! `$ @- K$ @ E: i+ J+ {
4 r. Z A' N5 i; Y6 s, u# S count1 D$ x1 `5 |/ G1 i5 @
& v. R# {0 s# R$ N5 B
if r(N)>2 {% M; z! D0 ~1 M5 Z, t" J) W1 X
2 d9 l' z8 N, H2 b# H9 @$ V' U
pkexamine dx240 temddy240
& m/ j1 |7 S" x5 S' P6 _' F
4 Q f5 t$ z/ w& m/ M* p local tempmaxplddy240=r(tomc) 4 A4 T7 k, `( A/ ~8 b+ P! k1 x5 F
restore, I/ ?8 @9 x2 G, T
}2 u; `. _8 i6 a7 P! a* C9 M
6 t; `4 h+ }; P/ R4 W
else {
4 o$ I8 m. S$ D restore4 j# x. y% J, r8 l5 Y
di "cannot find pmaxlhddy240"
) A% c4 j) i! q3 @1 b
' \4 p9 ^+ F$ z7 N - F F4 ^7 \: h9 _/ h8 M& R2 L" m
sum dx240
# n. D/ y* @; K9 u* _ local tempmaxplddy240=r(mean) in 1, f( M# l) f/ l5 P
1 g! ~0 |2 a2 X9 L$ r1 E
j3 ~: A ~' y8 v) c }: z$ v1 t. J/ |% P8 C
2 C( {+ g* \- W
3 ?0 S3 |' r& Y8 x0 _
- q/ X0 k% j% I( r. D1 k' F
5 E" J5 @, v" O1 w" w7 v5 X
$ g/ K' U* l3 p" @3 f; |: v$ N
, z" a7 E, b) u' x% ~3 C gen pmaxplddy240=`tempmaxphddy240' in 1( F, |, J; X6 ]2 s' x
5 t6 V% b9 B" C: G, g" S* l5 ~* F
*-------------------------------------
# z6 F, p. ~( j( | ! D9 h; U! j( ^% g% A* l
gen price5d=v5 in 1/200 c- p/ o1 c6 Y5 z; w9 k' I9 I; \# | l9 H
! l! e( ~: {: F1 |3 C0 }4 j4 C gen price5yy=_n in 1/20
9 V" J) z, H' F: I) c . U. i% N6 I! u v: d
gen price5y=price5yy*(dy240max-dy240min)/209 {% P- u% ]. b* \+ l. d x' {0 |
9 }( G2 ~. D4 t$ _1 c( p *price5y &price5d+ e* W3 {! W/ z! Z7 F/ l& m
0 s6 G% i7 j5 r& d
gen priceny=price5y in 1: Q& u1 d& I: u* m
6 g3 V; x% B8 _4 N3 k( X: u" r) W
gen pricen=v5 in 1' f) ^: r' `2 g1 l+ p
! H: ^& D! x* }
: s$ g$ A. f) B" Y* P" w7 `; Q7 M/ _; o *priceny &pricen4 G0 f u% Y- S* {/ p
9 v8 A9 Q3 V- T0 j: L% r
# h. b3 m" b8 n# {$ Q5 e *-------------------------graph------------------/ v4 C) ]8 Z- ~, p2 g
3 @+ }+ Q# J( P
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)
( {# v; \, s+ r+ F; u% A: g6 T! B' ~+ V' p
* ---------可选项目----------------------
}4 ^, f+ q( c1 e5 Z: O8 g
( @3 Q0 M# X. n8 a) f' L}
1 f3 K, s: G6 J# a9 [end
" @3 y5 r) m- S' F% t* _- W |
|