|
|
改了一下,这次运算应该没啥问题了' s$ o+ a* i" F: a: ?; @
4 t$ x! T9 h1 x1 A; J6 l3 P
5 k2 K; m* T, [ L: ]
capture program drop hello
, Z+ j9 q, R: a9 B- V2 U; n9 }* W) [8 Y( P( m& `
program hello
" L/ B- b& c) L- L6 {+ V% l2 `2 t0 e- o% s" g: ]0 b6 s
quietly {
; a6 C0 G6 }% x) z# r5 U* G! X0 e3 h* ~; s
clear( {8 o+ s2 d- n- X& S
: k! c4 m: V- C; w( |+ ]cd e:\finance\stock\20110101\source4 ?: A4 v. R& N& x
4 W6 E( h' `+ \: ~3 ?0 iinsheet using `1'.txt
/ @: ^6 K# Y# _4 w% G! g/ P0 w7 @# n- G2 J+ u# m" v
keep if v5>0) }* Y9 D3 v; M2 r, O
1 a$ q% n4 m t6 J+ |% O. c I
gen vt=_n6 S$ c: Q6 N4 o
) J9 t0 ], c' F. ^1 v z: O; |0 m' X
tsset vt
1 I+ e# T+ v; Z- r9 f# J' p" \5 X5 r5 k, e; b4 Z: I) m
gen zf=D1.v58 y& @7 L; q0 O
l* e* P: d$ w gsort -v1: U' ]. {$ N2 v# _. \5 t R
+ w+ j- @& j! Y: _- |% z
gen avol=v7/v5/ \, I, Y$ z& h. x+ a, v `; Q$ ?
n: }, d" ] y6 d' r% d2 ^
keep if avol>0, G8 b a8 @, [; c
; z! X- Z6 T" H
drop vt9 s8 F" l( ^8 ^" {' L" q
: t) ]) D# E% M7 b& ]% K2 t gen vt=_n& s) ~9 u/ j5 |% a: j$ ?9 O
3 k8 k) z' v& i tsset vt! b f3 s, M) z) I
) x; {9 u8 l9 I6 o/ D. y
sum v5 [aw =avol]
$ t7 ^* Z1 Z2 {1 \" b- k
: N9 \$ I& W# } gen amean=r(mean) in 1' ^3 h" M8 }- K
- a7 F. t4 U4 h/ |# ~" z8 D4 ?" ^
* 总加权平均值 amean
3 z- _2 E, x2 D% r' o4 c' X
0 b9 {+ o8 s* p4 N- M7 B
+ R( K, v' i+ o( n1 x0 w4 ] x keep in 1/240
+ k2 p, ]! J1 Y! B$ [& I# p f! i9 L
sum v5 [aw =avol]* H+ h; u+ d2 M
+ g/ d; I( ~! a( \ gen mean240=r(mean) in 1- [, R9 x( o9 E6 w3 H) Z
7 a0 T/ ~& }( @: ?
*240加权平均值 mean240
6 y5 w* W# N4 `: p0 K% U ) ^. D+ E# h1 |8 F) [
set obs 500
4 [4 [1 S$ o3 L, x- \/ w" t
: |$ r0 b; g. H V. t, m0 L5 T kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph9 u2 e. `- u8 [3 z$ @ U
/ j9 G5 W' h/ t: f' d$ S
*240 kdensity(dx240 dy240)
k& ~* _8 t; X , v9 H c7 D, ?$ y* s+ g
sum dy240
3 P6 }9 _0 k9 i" w: f4 ] x! Y3 M6 I+ G# ]+ \
gen yxis=r(max) in 1
& g: V$ N4 }; p' _ & T9 H/ s5 F$ P" Q# g( n9 ^
gen yxis2=yxis/2# s0 B- P6 v. j. U- i- m9 x
A8 p* u9 x* y& x' m
*yxis% ]) B) z' j. h5 x* \4 D
! s1 f8 Y( B1 T- a0 j8 d7 E, y/ W
gen dy240max=r(max)
* C. L2 v {+ x$ G3 E [* L 5 t% T4 ~1 a/ B
gen dy240minp=r(min)
' E X2 I( i- [ x# d8 I; A1 e: O. S$ k
gen vtt=_n" g+ A6 f% ~: X; {
1 L. t5 @& y3 W6 R3 P
tsset vtt7 D# f$ `( w: z# v1 M5 Z" g
. W+ G- d6 l1 U! P
gen ddy240=D1.dy240/D1.dx2407 `8 X$ P9 R) z2 L6 O2 @) w
# r2 I1 }% ?6 K" l
sum ddy240
5 a% `' O6 v9 p1 M6 l: d" f) r1 R
" L) \6 U, Z: x0 f; n+ E. D gen ddy240max=r(max); Y& H; B" h R
4 ~# _/ v; L4 M* O+ i- g$ L. B/ { gen ddy240min=r(min) g4 @, T* O1 F+ l5 f
/ A) v7 p+ A8 L! | c' A6 v
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
4 Q" G9 ^3 A) Y/ v8 W) T
2 q1 q* i' s" ^, \5 l sum ddy240g
2 {2 p' `4 v& R! u0 U3 Q" x- L) J , k6 D' ?% ~1 _) U J$ ?5 {5 w- i
gen yxis3=r(min) in 1
# w* h& A5 j9 A& H7 g1 e
$ W O! v, j/ F gen yxis4=0 in 1
' V$ s! D9 R% n3 I 0 A, G; V1 i q0 l* Z
*ddy240g # i2 b% \/ i3 l# M; B& k1 d
, Q) x$ { V7 {9 b) r+ I
0 s( ~. h7 B( m' j/ X3 m) Q& y- v preserve , V" `/ L! P$ ?$ @
, y6 t* I4 }' s4 L, t$ ]
sum v5 [aw =avol]. E. S0 L# F" N6 ^
' Y m2 t2 s5 n6 y: I7 g" H7 U keep if dx240<r(mean)
# R1 C8 Z. l5 z% r! _5 m; P
' `3 O2 R4 W7 F0 k* d8 }* g sum ddy240- u0 r" _6 b- E. Z3 X0 q
+ M# K& b* f. y, y; f* b- p+ v if r(min)<0 {+ `6 ~0 f7 Y! \
4 w, z# v) \# {5 h( ^' K
keep if ddy240<=0' I/ U' y( p4 T' F- H- W
# d! z' X: x8 R2 w9 _ count
; H! Z" F$ q. j* ?. p- Z& u
0 H1 l% C# b. e" h9 Q5 `& X' W if r(N)>2 {! W3 q& n9 m; ~) o/ P* V
* _/ Q, ^7 y; m3 v: {
pkexamine dx240 dy240
2 P' y2 ^* |: C1 F8 M, N) Z V : i1 j2 c9 b+ @: G
local tempminp=r(tomc)8 M3 g9 Z/ |6 y3 A% K. c
restore 3 I, p) S5 @3 h4 J0 P
}
7 e) ?" h. N5 j V 7 H& F' v- g5 T9 G: C
else {# c7 W& b8 U; U1 y. k
6 U' F) I: J* V5 b, Z
di "cannot find minp"
( B/ D2 E2 e! g7 w; d / ?2 x0 W4 E! _
restore
+ h( j' e3 a$ W sum dx240( k1 n: t, Q* ~3 @; G
local tempminp=r(mean), L/ R! ?) ~. `: j
' ?# m2 r; S, T9 s1 S3 r7 F
}
& }4 j* b: H. @* q. z. ^' n }: p( M% D4 u: W* y4 A( D L3 L2 E
else {8 b" n+ C$ X% D" F4 y" z. A4 p6 j8 o
3 O4 q) V% N) V+ f' N$ w keep if ddy240<=r(min)* v% L* L: C9 U
6 N! ]" c3 v6 O6 m1 `" Z3 |
sum dx240, j+ L6 b' u1 J7 j3 h
% X9 F) ~+ d7 L3 m8 m. ?3 y9 K5 m local tempminp=r(min)0 {9 s" s$ b0 L2 t4 Z
restore / d4 {" ~) V" p) e9 \& p- o h) F
}
; C1 w' t/ w3 E# d0 E4 e
. N8 c5 v7 m5 Y) k. w/ L, V
! b0 i1 j" y/ G
8 T" s1 b4 Y# l+ r" v6 @+ q) C gen minp=`tempminp' in 16 J. r: A# f' V, |7 d" C7 j( e
*240 minp( ^& h- O9 p# y0 V( O# ]8 l" m
5 j- ~: L0 a. \+ p. Y9 a% z! Z
! J( g J, j8 ~" L & k( I4 C2 K' g( d2 m) {: w
preserve 4 q4 H1 G9 b; L# b" W
: ?9 Y) d) T6 ^" ^
sum v5 [aw =avol]# o& C1 \2 H, |% U" @: {
" \/ k& H2 K6 N; i9 o1 ?# e4 r keep if dx240>r(mean)
7 Z8 _1 o" k$ b5 Q/ ?" {* i g. ] , i8 u2 O! ~# m5 U' q1 B
sum ddy240" y. U, p* [3 e7 q- `- }! u9 t
6 Z" P. K# a1 P if r(max)>0 {
, A* `. u |" {$ l r5 l. k 8 |# Q, A/ i% l( i6 j9 e+ o6 K
keep if ddy240>=0
! [# l3 S, z6 S/ t. V7 n 4 `) G9 |% K; o% f
count: O! x, _4 g$ a7 `' k2 n6 X1 j4 {
/ a$ V1 g5 {6 \5 R4 q8 z if r(N)>2 {
8 s8 {$ h6 k9 C1 w
2 d# p: G G! S% F pkexamine dx240 dy240
m) G( X6 l" X( O . w7 G- ~6 h, D0 Z$ V% b
local tempmaxp=r(tomc)
. g" I) P- i( z# w/ A) n F" @ restore & G s, o) a2 J
}) f- U5 Z0 C; Z4 X2 |9 V. H
q! K/ N4 |0 k- a7 u4 i& s
. B: ?$ I$ O ]* d8 E& v2 ^8 c4 H
else {
" u( A( @ v# ~$ ~0 g( J7 @ restore
( B6 G1 P o6 t2 G( e0 s di "cannot find maxp"" F9 z/ h6 ^) ~6 @. a N, x
7 ^/ J0 G' M* u8 x# `/ ^
: E: ]! f$ u+ R/ g2 x( Y* m. f sum dx240( E& E0 ]' N- ] S
local tempmaxp=r(mean): s: {; m! o, T3 r
$ \+ F1 @7 N1 }. V1 e7 A) D }, R7 V. S5 G- v H9 ?6 C. `
1 k! n1 H* V: r4 x; R3 E
}
8 P h0 e; f6 ?& |0 u & H) j2 s* Y' R5 ?
else {
( v" d' k" N6 P' B, H i% V9 ^
* Z9 G* P+ G, X) h8 ` keep if ddy240>=r(max)/ t) Y/ X9 w* v* I% K
$ a8 S0 H% z3 j0 \ a3 ?2 v sum dx240
" k$ ~% `2 _/ c, I 1 s# }9 a3 M- u5 [: k. |
local tempmaxp=r(max) & o. k' ?4 R- F6 w! h3 o
restore 0 `8 B. |% S7 a! _5 S- C6 h
}
/ |4 @# {8 b: ]! Q4 Z 0 v; r" G2 @1 e
6 ?% p4 j6 k# L% g# P
2 r- b/ Q0 _* r: i' K
8 x: n7 N) T8 ? gen maxp=`tempmaxp' in 1( s/ m/ c/ B( C1 B) u
( H3 |/ k1 h9 D9 D V) v1 { *240maxp* R$ \# ]* @$ u3 |2 b
# M8 J5 l6 z4 `2 |5 p. ^
* T. ^; \, }- Y/ r *-------------ddy240pminp左侧高峰值-----) n. J, V6 j, X5 Z3 S/ B; N
% d4 [8 G5 T; A- f& j0 Z' @) O
preserve 4 ^6 i8 ~6 F- _- H1 h
8 q( y3 ^' i, P keep if dx240<`tempminp'3 J* |' l0 M9 v# K
; b. t4 }& e* Y3 h* H keep if ddy240>01 o( q5 [' q) Y0 {- O0 z3 f
" X+ { B( m" `% {6 @: F+ i
count
5 R1 |' d$ `# d+ z* ]. a , \9 X. V/ O: t4 {! @0 l
if r(N)>2 {
2 m! K5 B7 F J3 @: N. ? : A: y" }* |3 I! U. u$ i" s' [
pkexamine dx240 ddy240
7 n/ s. J. l4 A: b& z
0 f! e# G- Q9 i: Y7 h, x: z4 O local tempminphddy240=r(tomc)
. h' K, n: `) `" { restore4 h- J- T4 F/ \. |
}; N) E$ S. q! E6 Q. b, s% ]
7 W# M' i, A9 W8 @9 |
else {0 ]4 T- z8 [; |% |# b q
restore
% L& B. q- W6 \- m. P/ |; F4 g di "cannot find pminphddy240"
; L- o# N- s7 x2 a+ u3 R& ] ; ]4 E& U7 ^9 l2 e* ~
! N: S1 B! c2 C4 ~" ~9 r3 f
sum dx240
8 r4 M8 d: e! U! i5 R local tempminphddy240=r(mean) ( S6 y# ~) V% ?1 M
V/ M$ R2 y, d! s0 T
4 R/ \+ E5 e' y8 \2 z; W7 S! A
}
0 d8 r" }6 t0 k* j: _ " G0 G4 b; Q1 c1 ?; d9 o
. v, W; W" t2 y F1 Y" E
' M4 I5 B6 n- P) d. ^
; U; Z' \$ Q4 v# L. p" `/ M; _0 M z
' O& @" f: ?- H2 D! B) o' N
$ u. R, j+ C" _
gen pminphddy240=`tempminphddy240' in 1
$ L) q0 N$ d" a' l ) p4 P1 y9 _6 G4 I% e( c
" z0 |. T- B0 k3 Z" | j) h( }% x
*-------------ddy240pminp右侧低峰值 -----------------
% J( X/ v4 Y E% a preserve , _4 }( o v _; Z
2 U2 I4 L/ c9 \& x) B& _* C
keep if dx240>`tempminp'
* Y; e; n7 q/ p V, t. g 3 E5 q D; z6 e. `# `
keep if dx240<`tempmaxp'+ t2 Q* J! B$ {, Y/ Y' W3 S" P+ r
; k: n7 d, y3 [& p
keep if ddy240<0$ r+ Z' D/ r; r2 R
4 v: [1 B. W. U( H( C& A
gen temddy240=-ddy240. V7 R: G) L" c; v
2 }* p S5 v1 [' J
count$ D$ S3 ]1 @4 T5 G0 l- {
' I/ ?; I7 O& B$ n% s
if r(N)>2 {
2 y* g; T1 Q% @6 f. [ 7 f/ Z2 z* E1 I% F$ E: E( M
pkexamine dx240 temddy240 _$ v7 Y& N1 G! o: f- w
' Y, S! P4 F+ {. `2 s' W" D local tempminplddy240=r(tomc)2 i5 u, ]! Y: h! D" @ o, r8 h
restore0 ^+ t0 l* p/ I1 G T
}8 I5 d u% f8 O5 J
) T- N% m. z! r2 c% C
else {/ p/ t: J% n0 ]; h2 [- U/ X
* T* C0 }, W, u& O
di "cannot find pminplddy240"
9 w1 E+ [4 k2 u* ~/ i restore( c8 m7 c% Z* L. c8 r
) r) I) i! w& F* V! S% ^$ L( ~
sum dx2405 V3 D7 L) o( u0 x6 [6 _
local tempminplddy240=r(mean)# S x/ j/ v) `4 `3 A$ \3 v
! b9 ^1 c0 q7 l
& {! p/ }' B: g" F" U$ D }
' m8 k, O+ p7 }: u5 s# Z
A" P" `/ i7 G o + T- d5 F: _5 A: A' U6 L9 p$ J, B
* Y8 `) L' T9 H6 X
+ a# p( C3 y4 F4 @2 q 4 w; W- ^+ F, z& c
gen pminplddy240=`tempminplddy240' in 1: B' ?) C* P/ n' H
9 h' ~; n- F& Y; S *-------------ddy240pmaxp左侧高峰值 -------------------
: l3 H: ]4 g; m9 r1 o) ] e& Y& J) F2 Q8 O& `' W
preserve
( f' A* B5 `8 F! i% b9 N
* K" o$ T8 c0 ~" t4 n& X% x2 j A keep if dx240>`tempminp'
# r" @# I) h! D , G a7 d, m. n1 S0 p
keep if dx240<`tempmaxp'7 r- E- |) P! v7 N* e
: Z: n$ q1 m$ ]; l/ U# c keep if ddy240>02 ?! r/ }: t# W: x9 b
count
! R1 Y5 h2 n* z [
& S; s* A5 `. f. ^* i if r(N)>2 {) i) {" A1 K8 z' l$ {) A
) Y6 {7 W3 X0 z! }, ?5 { pkexamine dx240 ddy240
+ f6 N* r5 A% K9 k: V* J8 p" o) ^- T & I/ }5 M7 {- M, G: T! s
local tempmaxphddy240=r(tomc)
$ I# C9 z9 K8 ~0 C( s3 P2 _ ' o% C2 a; S# L8 k$ l5 h
restore( H5 ]% H; L& r. n
}
5 B8 c& @( _9 S
3 A& T, N- L6 L* R* f0 e; x else {
& z& d& R+ N4 P- N( ?& k: u) j
# y# f1 n+ E+ S$ Z2 ~ di "cannot find pmaxphddy240"3 i( m1 \, k, N- j* d9 `% Y5 ^+ A0 I* k
restore' t* O- O) U0 j; K4 C' ]) W* c
' ~+ X! s$ B q7 @
sum dx240
. v$ I9 s1 ~5 O/ F local tempmaxphddy240=r(mean)
- K* d& m2 o% {# N( m
; h+ u0 M' _6 I/ h 0 O0 S' k; E2 g; O8 ]! x9 b
}
- o* }: ~: f$ J' f/ W
8 r' X. X4 S; j1 S+ x7 I( P2 C$ e, j 5 E P1 Z5 k1 o+ v; q6 u6 w
& ]- u+ i# v5 i9 G4 s- ~# `" T ' L5 C7 R3 g5 D' W2 `( I: N
. Q& V& j* v: H5 j3 ]5 L% Y 3 N6 U' U+ Z" {+ s: G4 X; `
gen pmaxphddy240=`tempmaxphddy240' in 16 B8 b! L3 D, X+ g1 @& w
% s6 O8 u/ B4 n# V
4 R4 f! F7 T H9 ] *-------------ddy240pmaxp右侧低峰值 -------------------3 ~6 e# z% F, \
! W8 [( n Z( H5 `9 O3 L& O
preserve 4 n+ `5 e0 _* f4 i2 e6 P; p' Q
0 L7 X w. Q% u8 k9 Z" B2 _1 g# a keep if dx240>`tempmaxp'2 ` m) i# s' P; R; Z
9 C2 u! U' v3 p gen temddy240=-ddy240; u, u* ~: K! g, y
$ k4 ^* a) Q! l keep if temddy240>01 @) w2 c' x8 B9 Q' F8 O$ D
/ X' i: L9 ] c5 z0 R
count
* `1 s/ v g9 V7 j/ B2 X$ b: d# P' P; o ; o- g9 ]+ z# h; V. ?
if r(N)>2 {
) d3 a4 b" R1 M& K5 d% \: I2 H* v 9 y* k' Z% _& V, K: s" j- m
pkexamine dx240 temddy240' ]; X8 R' N4 E" J; e
3 R3 k$ ]) v# k' @. v local tempmaxplddy240=r(tomc)
0 d E% q4 K$ d' v7 D4 g0 E& w; l8 ~7 p restore
: R1 F$ ~0 U0 ~6 t }
# f; N7 {- [( y) ?8 n6 w
1 ~9 X5 Q( F e: T+ ?! e) g' { else {
1 R$ c( D( t: |8 K' \ restore
6 D& K0 U4 ?: \$ v( @- B di "cannot find pmaxlhddy240"
$ `, x4 E; m! C6 B9 F" J1 K7 V; Q: k ! T- o; ~( G# z- I
5 w9 O0 o" K9 s; X! O sum dx2408 H( ~" `% _+ Y2 b' u R$ p: ? F2 [) c
local tempmaxplddy240=r(mean) in 1. w$ E9 I) L' ^4 H5 Q, R
) l" x( V4 C8 |' R$ }
3 v* u7 @* n) f% r. G: w
}6 B) L! }4 s: b9 d, B& F4 F
; M. K: K4 X+ c. a# H: I
/ W* T6 |4 a% V% W% J! T" D; ~6 f
0 q9 P+ P! {% y+ j
V" u- X( e1 t
" ^- z; v7 ]3 y' b
; k/ u: r1 j: T( N* u9 d gen pmaxplddy240=`tempmaxphddy240' in 1
: S+ V. \, R- N9 {. N d - W3 J, T! c6 ^; `6 X8 b7 Q3 F
*-------------------------------------
2 z% c9 Z5 l2 _* b " P4 }! q$ ^7 q; O t
gen price5d=v5 in 1/20
; |9 b- C) n1 z
' f2 E/ _7 `+ Z x5 X gen price5yy=_n in 1/20' K2 s- ]8 E' {6 }' s
, @8 p; [9 I( z4 E7 m8 T
gen price5y=price5yy*(dy240max-dy240min)/20* Y9 F3 P# j* a/ |
4 `" d% i6 p4 } Q *price5y &price5d6 Q' e8 r* P7 E3 V
O3 E2 c) n, Y/ f
gen priceny=price5y in 1( r) J3 h0 h1 \4 b
& k; d9 L: I' a- m
gen pricen=v5 in 1
7 P o. E/ m5 l* k/ S" s: }" B# w" D
1 \- W3 w. m7 Q9 D+ | *priceny &pricen8 H9 F- @3 S5 ] c. j% C
; l" e/ u E" q& y: Z! v! n3 @) H
0 |, h* S! V% x8 a, e: u3 ?- g
*-------------------------graph------------------
. {( Q: d w& I9 U& Y . ]! I% I0 i5 F6 W0 M7 h$ U" l
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). p, \0 R. N" d& V$ H
3 E0 l* [& _! t# f* W* ---------可选项目----------------------
8 A8 h) A6 Y0 q: m
$ q8 v% G* R; [! o}
( m9 R$ Q( h7 y: l' ]) c" ?end' G! J0 B* X- ^$ y
|
|