|
|
改了一下,这次运算应该没啥问题了
, C% a/ k' X4 E6 o; d1 p3 h; `9 V. S9 w$ x2 ~1 f& }8 N
% p: L! {" b2 B2 j, ]6 U' B
capture program drop hello7 h3 d- s4 ~& K+ M
8 x G' |/ J& z* w+ w
program hello8 X; s" l( L+ k/ Y4 H3 ]9 @
+ ^6 r' Y6 t0 g9 P* a quietly {7 u; Q% K( ]3 d
2 Y" ~. f& F; d
clear7 f- w5 p' U- P1 j2 j/ {
# D/ z) W0 F/ L8 x1 m3 t3 K& n- ocd e:\finance\stock\20110101\source m) H6 j. \3 W* p
9 ]' S2 j, m# q* T
insheet using `1'.txt
' Q" }' i/ d8 A( ~
3 c; V. z% u- A& w keep if v5>0
* b5 D. M/ l& J / ~: c# X# f& Y! T, W0 Y# B
gen vt=_n
: f+ a8 t* b, g+ T* C s - X6 e1 z+ d1 C" l
tsset vt; v+ t6 ]; q2 {# ~$ ^ [
, Q. ~. ^" u6 O
gen zf=D1.v5
( q+ g: f' a+ b$ ? @- M$ z- h. m( X: M& i+ F+ g
gsort -v1, G7 C" p5 ]7 \. ?; A( U6 C0 [' e
- L1 k/ J4 p* R! q/ L' s, H
gen avol=v7/v5; `5 o. s6 ]! c# ^, O: U
, ]; j7 u& c" z( v# l
keep if avol>0, @5 R3 h& J4 B1 W/ k
7 @1 z- k" [4 Z5 O d7 q drop vt$ g, p$ d9 f. f& I! I
& P* @- p& l; N! g* A gen vt=_n
# b5 u# g4 ^* h9 H& }
* j1 I6 ?* r- \1 v tsset vt
3 C. N) j. s3 e" k( O; r( m / d6 \2 g+ n$ e$ J% m* j5 J
sum v5 [aw =avol]
3 p) a+ C+ M T2 e: x8 N
$ l( K8 Q6 H/ y& Q( T- `2 W; J gen amean=r(mean) in 17 n8 U/ b. _0 b# x ^
4 }: b5 k6 `3 q" l
* 总加权平均值 amean! ~; V- B; Q4 F# A' Q6 A
' t& p2 n$ e( [5 ]" \
H. a9 ~+ |% A5 Z9 h. T' {
keep in 1/240
8 o1 v% M5 i6 _2 i2 N
2 } o- B" _, u8 }* s9 E sum v5 [aw =avol]
! d: @$ u% N% r9 L9 i. |6 G+ i M5 {7 l3 s R% h. T; t- Z
gen mean240=r(mean) in 1
( R8 N' b& h" u! l ( N! L2 ]3 z! R q; s d3 e
*240加权平均值 mean2409 m) L6 q7 ?* S! M
1 {# o0 e. i7 }7 S, i5 q set obs 500
+ I, W5 _, G' \1 b! i. q* G- ^. S
8 _* W% \0 N! V: c kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 O, q8 V1 G/ S$ A
+ B$ k! \) W% ]. |4 u9 U6 l" ]
*240 kdensity(dx240 dy240): ?! N! ^1 [; r5 T
4 Q- q9 D2 f; Y6 r sum dy2404 M0 [+ i( G3 b6 a7 q7 L7 _
" q% o8 N8 _# a& X# K, L" {+ D
gen yxis=r(max) in 1
0 t/ W( Y# U; _ w1 o, @
. R1 @- W. q+ U: w* @ gen yxis2=yxis/26 Z, u0 F9 O8 @( Z
( ]7 ^% i7 }4 p9 z- B
*yxis5 Q5 g. u" g- K" c% K1 _! x8 z' _
9 U& y# w# ^2 [7 d. Q: l& X( P$ ]
gen dy240max=r(max)
/ I: Y2 g1 a v3 f$ E6 t . o7 u8 P, }4 V
gen dy240minp=r(min)
2 Y1 ~: I% x9 X
9 H2 S( }$ [5 n! U) z/ y& ` gen vtt=_n
/ {% ], o" O9 [4 J7 Q% D0 l/ i8 h# ~
tsset vtt; X( _+ c; v6 h' Y# R% g# i
& P/ L: K; S' r/ T2 ^* ^1 Q+ j
gen ddy240=D1.dy240/D1.dx240
& U2 X: ?6 N v; p* }" k$ t
0 a/ Q+ W4 D; j) r# w sum ddy240/ n* I$ P" E: U3 n* W& H; c
5 {9 [& T$ a/ z( I gen ddy240max=r(max)
- V" \# |. j: i {. `7 O- r! G
) Z3 R, v3 k% \8 ~ gen ddy240min=r(min)( D% w2 h2 D* y @
( c; [% }: L. q
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ }: h* v$ V! c# }
/ ]7 S* K2 u) ?8 A+ T* Q sum ddy240g! b" {$ @$ w0 j6 m. K6 L
L2 n2 {7 E$ ^% l2 z8 E gen yxis3=r(min) in 1+ R9 X3 z& S! w. T3 c1 F
$ D0 p1 ~5 `: X
gen yxis4=0 in 1
- Q. |# q% ?1 e: D% `5 y4 m 3 X. A$ V. K; r8 i+ \8 B! |
*ddy240g 3 _( e( h3 E5 h, j( U) b6 I/ g2 x
# b8 u7 x* Z B( q# O
' [0 x4 q$ ^1 O3 O. x5 x preserve
( r% @# F7 Y& ~! H " l# \: J" X/ v
sum v5 [aw =avol]8 h2 J7 t( m. }# D/ e( X3 ?
/ ]/ {- j/ V G& ?1 K
keep if dx240<r(mean); @0 W ^* s1 M9 K; b
, h+ @* i# ^! @% e7 k7 o- D7 ~0 Y
sum ddy240
, j* V8 t8 h3 ? G% R; q2 S
0 p* v f4 d- r, g8 Q if r(min)<0 {* X! Y# f+ l; m Y1 \ k7 x9 D) v
i: u& \$ O4 ^ h keep if ddy240<=0
' [6 Z* N) N% O% S/ x1 w
# X l7 e- \, `9 D count
" F9 y- @# K9 `, L6 O+ z" }; d . a6 [- m! U1 o R6 h4 W: m
if r(N)>2 {) q2 f2 ?/ |6 M5 f- a" t
! @+ F) X# z+ t# Q. t2 M pkexamine dx240 dy240
4 }0 W* m% m% i$ u6 g- [
5 U/ a* g2 F' W5 e9 \" { local tempminp=r(tomc), I" X3 f! u) e+ |/ G& w3 w
restore - C# s% w( N4 [. _
}7 g# m0 j v+ _# e, C( k1 L2 A
/ R! B; j! y( @' N8 M* O- Y else {* Y7 Y. y- k- {3 v: [4 ?" l
) R" V" S5 a7 s/ ~0 B3 C di "cannot find minp"
- }# E' i/ M' {6 m6 |9 N4 h
3 J9 f& E# \. C; l5 ~6 Z/ Q+ C- ]4 \ restore # G: ^" A5 D E
sum dx240$ j/ |; r4 U" [0 U' z3 v
local tempminp=r(mean)# ~! o2 `, }& F! l$ ?" b. t
. g9 q e5 D1 S& A" C
}
: U3 R1 f6 X# o0 E& s" ?; c }- t1 z; E4 |0 V5 ]3 ^
else {
- A1 ]# E3 G+ y4 L7 | 6 T. w! I5 v8 I- A' x- K/ T; }
keep if ddy240<=r(min)
0 v b5 [1 O J6 I4 |+ I" w6 W. ]7 Q & K; n6 f# {) h$ P( ], L. @) v
sum dx240
+ e) V0 K: P0 j% U& Z ' r! J- p- L* o* [( O/ u
local tempminp=r(min). k9 C- O5 P8 ]& h3 s+ a& w
restore & F6 ]' q. [3 K
}8 X( q* U9 ^4 l N9 |7 @+ _
4 D5 O8 G3 d- E4 m% |
. o, O% v( ?. e* C2 F& D
4 b3 b( S! s% M: R9 j9 E0 F gen minp=`tempminp' in 1
) p1 o0 l2 K d8 i *240 minp5 L- m% f) I( d8 @5 Q. L
: r6 ?, }; k/ R! y+ d
9 U* j$ B/ c( Z; z$ Q2 v! ~9 x/ z + A1 j7 P( H" b0 M E: Y! b
preserve
2 @- F* r" z4 X8 v$ J% f1 R . E0 ~3 Y; Y+ J6 ?9 E" z1 v
sum v5 [aw =avol]
" {& c9 Z4 s6 ~2 L* \, `9 {- L
$ f4 [7 F3 D9 j8 [ keep if dx240>r(mean) i2 ]' d. q7 V" A3 ?2 V* v& ^
' p+ l1 a8 M4 C sum ddy2404 N& i, }5 X9 g+ H
, j7 ^ @8 Q6 |2 o# h3 Z4 `0 i
if r(max)>0 {
+ d5 z" w9 ^$ l3 P: @3 \ d
; _1 C- U% a5 @) j keep if ddy240>=0
+ D/ j$ O% T4 L) L, W# w
+ H0 z% `1 }6 F; ]$ L' p" Y( ] count
! \! B# r2 _8 ]" Y( [ f
; A# K/ Y6 s1 R4 s if r(N)>2 {4 b. N9 a3 a2 Y) a2 Y
/ {( f c+ c% ` u& A2 B$ A2 R pkexamine dx240 dy240, N, ^6 h* \* \' `9 ]
$ o" x% }: ~ w$ }+ {7 m0 L local tempmaxp=r(tomc) . Z$ k& L, b q
restore
[* z7 X9 z# B }; \8 w8 r0 b# N8 q6 H
" \' e2 B- i/ ^ Y- ~) H % d9 D5 j! M+ Z: d9 D0 `: ?# z! a
else {. j4 ]2 W0 Z* \
restore . A* b" m* q( P5 _3 U9 A/ {# j$ J
di "cannot find maxp"7 M; N% h" N% L# g3 O5 b/ g
2 K/ ~6 p: }% ]6 m% P$ G! `8 j2 q+ W
1 J1 W- Y- R' [' | sum dx240
$ E+ e# N3 l- K6 ~. Y% r1 F# @, o( l local tempmaxp=r(mean), [5 k- u! X+ I: A; R' ]- z8 j# j" l
, r& B3 b! | Y5 ~- E }
& X' Y3 D. ~2 K6 G! s1 d ; n/ f' X4 E5 U3 ~# O+ s
}/ @. v- \* d2 c! ?7 ]7 p' Q/ x" |5 C
% U! n0 a# ^6 W1 W5 U else {
4 {% q7 F% f8 J, ^+ d
- J& S8 q5 }0 J- X% ^8 Q; k keep if ddy240>=r(max)
; x4 @- e9 H2 o * X X! Z0 x+ @. w5 l
sum dx240
4 P) j/ y; A) D1 e: M
* \3 {8 p! a7 t5 V' C5 |5 g, G local tempmaxp=r(max) , R% x% B8 z: j) A. Q7 Z
restore
2 L2 N) A6 V4 [1 a$ P/ W# t }! S/ G+ C5 ?$ ^8 T: X
1 V1 a0 M4 W: W% p/ q n
1 W# \/ A, X% V/ \$ t k
; j" _. q9 I5 n1 f7 A6 I% h* c; W$ O3 L
gen maxp=`tempmaxp' in 1
4 ?0 Z, W* [: |5 y3 _% \. z X% B2 a) }' g- E- U/ i! W. D) P6 z
*240maxp0 ^5 m' ?3 \" g4 x& c" r( f% _! J
/ N: @6 Y- T) N1 ^1 h
5 U8 ~* F' R" o
*-------------ddy240pminp左侧高峰值-----7 y# @2 N4 ^* _$ j' V. A
8 M; M2 F1 Y2 S! m' t) U
preserve # U# }8 \' v! @& R. z; ]$ l
7 V/ t) t* H6 M keep if dx240<`tempminp'
8 x! T) l9 R) b5 V8 E, s: W7 g0 _
, t, q! d* d" ]3 p0 \( {6 d0 [( h keep if ddy240>0
5 h; f3 h/ A9 U
. N. _& F5 r3 H count
' e& ^& |* t& e; |- I* a) S# F. T* ^ 4 W5 P8 A( E5 P
if r(N)>2 {8 Q5 s: W% o4 R! z0 B
- k2 L3 a7 c% r# }" P
pkexamine dx240 ddy240
+ o' J$ L6 ]- r" K5 ~ " ^# e# s' y4 q! B. z, B
local tempminphddy240=r(tomc) % C! k6 K6 B$ U( |- G9 w1 Z1 s+ P
restore
! C1 d9 I2 H# B, I }% m3 `( l( D' ~' }3 S
) a6 a- r. A% | else {
* d. x r# M0 V5 _. e- \2 q- @ restore
' t) v7 c8 D8 m4 N' v. N3 c di "cannot find pminphddy240"$ x3 p: Y( d5 l7 g0 A) b+ c7 [3 [
" |3 V/ O# H0 G% O; V+ ~; \$ y+ a
5 r1 f1 v5 C/ e4 `, { sum dx240
" s( i* s+ s# J local tempminphddy240=r(mean) : z0 t7 x1 Q3 Y* B
2 k- K3 ~, e2 ?% ^% g2 _' J* L6 I
1 h/ r9 K: A; N8 n+ S! N
}2 r8 m; R- p3 L6 r
; B( f6 \* z5 `4 i! _ / Z9 ^! N& _0 X0 d
; i Y+ f6 w# j
9 [. Q# k+ R3 i! u O0 a
" f2 [4 f1 P$ k) m( g' B , X5 k1 n+ ^5 A
gen pminphddy240=`tempminphddy240' in 1
. F) L5 d; }4 e) S2 X; @9 } 1 [0 {/ ]& Q$ D; J) ?; F7 K
+ C! h% K" ?3 v0 V1 b7 y8 L *-------------ddy240pminp右侧低峰值 -----------------2 H7 f, Q7 B. c' _3 h2 }
preserve
2 m3 ^$ h2 X! Y / w6 T f& n0 U7 \* e V: K) X
keep if dx240>`tempminp'6 |/ S9 d# B( B9 V. A
# W4 [$ e- V3 e
keep if dx240<`tempmaxp'
# G- B1 i* }' B7 Y' @7 u i1 e* E5 U
5 c) F/ r; M2 ]: v. E keep if ddy240<0
/ |6 _$ T% S0 P1 _' r
: t4 h. P- f8 r7 i5 n( l gen temddy240=-ddy2403 H* P' \' z0 G$ Y2 i4 R
9 e1 j2 Y* i% J( i0 {+ J" Y6 m& u3 }
count
4 k: n7 P x5 v( Z" H
! X" A# E' s- A% F- Z if r(N)>2 {
w6 j7 s2 B, o- N8 [1 C + D9 T+ |, v" w3 ^% }+ U
pkexamine dx240 temddy240
# U# f8 F* U- j/ k 9 X* Y0 Y$ \: ~2 e5 n
local tempminplddy240=r(tomc)$ ]8 A9 f8 {+ _1 l4 d3 z: x
restore
( e- u1 q ?* h+ ?: W' J }
7 r7 |" X/ z5 S/ i2 Z" i! e! | ( R& ~% d- G( \' U7 @
else {
, b/ n5 N R" \! S0 L) k% X$ F6 F B) V ) E% K9 L% ~4 c( b7 T' `
di "cannot find pminplddy240"6 y0 v% C) I. V! \5 |$ P
restore0 b8 G \! B) D# ^- V! H
3 Q2 L# U/ S2 J9 o3 I. d8 ]5 d e
sum dx240* u, A, H% G' ^; a% ?( l
local tempminplddy240=r(mean)
4 Q6 ]* t _# R% f" t # q f7 P H9 D' q; a; Y
, j8 m1 M1 u& O6 s1 K1 A
}
2 T, T7 Q* j+ Z0 q: _& ~+ @: c
3 t' n$ L# I0 u 6 Z; E* b4 ~/ K! u' Q. G" @7 n
- T; |# Q9 p5 r, s3 m0 f0 q$ s" M
2 d3 t1 [' ?$ ~4 u; O # E& w8 J9 b p) j0 y+ ?% `
gen pminplddy240=`tempminplddy240' in 18 H' D, |0 I4 b4 g" }# V. \: e& `
$ v9 p7 h0 P9 G1 O7 H" N0 i
*-------------ddy240pmaxp左侧高峰值 -------------------
9 U) b$ L; G! Z; ?* k
# E8 h* r9 o9 R- S preserve
$ \5 Q, o/ x U3 w% H: x1 ? ; u3 P2 U* \" c2 j7 C# b. u9 \
keep if dx240>`tempminp'2 u5 u1 k3 R9 @. ]
4 @' G' B+ d; x+ s# e, R keep if dx240<`tempmaxp'& G9 Q0 a; H; S! _; ] k. l7 `! q
j; w& L0 d/ L+ z- \0 k
keep if ddy240>0
; i% v) E0 Z- O count
* H" W( n6 K5 R( k* m( X# z& l8 v
8 O1 ]: s( V3 @' R2 Q8 O if r(N)>2 {# K7 O4 j2 r9 O2 b, S/ V8 X
; v7 O. t! C1 ?- ^, e, g4 H
pkexamine dx240 ddy2403 B, w( u+ j$ i
" g) }2 C+ H, `' b& G& |
local tempmaxphddy240=r(tomc) 7 v) B3 P) p( t8 Y
( f% L1 v4 i2 \( \ restore0 S9 J1 k8 S9 C7 x
}2 M9 _* j# T& o
5 u! d1 _3 c3 L! A
else {8 \' ~$ _$ m) A
) i- v5 v; J& @) m$ a1 A di "cannot find pmaxphddy240"4 i S' H+ R- p' w
restore
7 u% o7 ^9 l; e 6 T$ x& M1 c, w, g
sum dx240- l. z y# g I, O7 n6 D5 X1 C, S
local tempmaxphddy240=r(mean)
+ g" ^! }+ J" s9 _' y Y7 ^0 b
* f- a0 |8 Z F4 a$ D4 C
3 Z2 ^) i$ }) Y0 u5 ]7 z! ` }! j' M$ b4 J$ N( E; P* C6 y
. a7 t3 ]' a3 c
0 q- H/ ^. I9 u) F( {& n 7 ?% O' N7 Y$ }/ q5 ^
# N) p O) i0 i' s6 `7 A, A
4 g! e2 m2 ]8 ?6 h / S2 Z8 \$ u. K" f4 f
gen pmaxphddy240=`tempmaxphddy240' in 10 ^ C- Y2 [, {/ P& {
# O3 {0 ]4 I/ t
9 P/ `1 l: A6 b J' U u
*-------------ddy240pmaxp右侧低峰值 -------------------
4 \. K/ }/ O& E7 n. S 3 N, K A. f/ ~- i/ y3 r
preserve & D; ~ g% v$ S; G: b0 S3 m" O8 T
0 w$ ?, }' t Z: z- W keep if dx240>`tempmaxp' L8 [4 f6 A3 K3 n7 T% d
, w! J- O! s- o
gen temddy240=-ddy2408 ]! N. R J0 l- z x9 ^" v+ q
. u/ ^9 B) X' B keep if temddy240>0
1 R2 i4 D0 q: s& S
A3 G) P& f2 w% N% {9 q count8 u2 F+ {# C2 F$ v3 m I6 B
/ S' m- c+ |$ l( S M& R) t! N if r(N)>2 {" N; C, \! g3 f' C I' k
5 f) X2 r$ S% u0 L& l
pkexamine dx240 temddy240
. b: b7 D0 L2 H$ ^ L2 i! n; d- H- k. U
local tempmaxplddy240=r(tomc)
2 G% o% y* b5 {! B3 ] [9 ~( C restore Q" z4 R" i& l3 n4 f$ H% Q
}2 h. Z5 H! M1 f( T4 s9 B
9 P& X4 z% X3 b
else {1 q/ u/ n1 E- ?0 p6 Z, \' y& T- p) D
restore+ c$ y8 D: ~. W) Q+ m
di "cannot find pmaxlhddy240"
: R" i3 \5 V$ `3 M
/ w% T+ t: J7 z( d
/ V7 `0 S) ]9 c. _! m0 [ sum dx240
- P: @ `3 P3 z v9 Z" z8 A local tempmaxplddy240=r(mean) in 1
1 F* ?: o2 q, ]' H' g 3 L6 |+ l1 t& h1 d2 z7 Y5 J" {4 j, D
# s' f* m6 e) p7 y9 k! O1 o7 ] }
5 N. b% U& e; { L! p! O ; I8 x' \# y" K; H, k
% m* v/ d! n% y8 m2 _5 \
; E1 T2 `# |# s# Y) Q
+ T1 F- B/ e( I( a* B7 d
# z( m( `; X0 Q; x ! [1 W0 I( ? O l
gen pmaxplddy240=`tempmaxphddy240' in 1
, l% A) F1 R# b" J2 K {$ V2 m# G
6 N" l9 `3 k5 Z1 \, S8 O7 s *-------------------------------------! g, g# j- N: N+ k! N4 l+ Q6 J
3 s6 b6 N, n: e2 x: F7 i' A7 ~1 \ gen price5d=v5 in 1/20
- N" o" s; c0 W9 |: Y) @0 ^
% ]. O3 k! P/ A/ p. E" R' n gen price5yy=_n in 1/20; I4 P' J! C# q% M' N' j1 p
3 M: z" _4 l. i8 T$ b gen price5y=price5yy*(dy240max-dy240min)/20
" f9 Q/ j4 }! L; E. t " c6 O3 T, @8 l' g/ m
*price5y &price5d6 ]5 X3 }2 @! \. g& z
5 G+ V( e" ^. g. r2 c
gen priceny=price5y in 1+ G) O- R4 e1 \( U# n0 X( `
& x( I7 ?- l+ [& w9 A gen pricen=v5 in 1
+ q9 d7 }# p; g$ X( p3 x a2 z) ?) M3 l
, i9 d( K1 o/ W. U *priceny &pricen
7 O3 J2 o. E& G* M8 }" V& Z * T! Q* ?9 E: B/ D
' f' @0 n0 |; y+ w& M
*-------------------------graph------------------. Y" ]$ F9 X$ S" R4 ]2 Y
5 i) C# X7 [2 n. _6 z% H+ d
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) @; j* Q6 {* d% V+ U
4 S# c& ?0 d: D( B6 l
* ---------可选项目----------------------2 I5 X. e" M5 x5 M+ F
4 T; P6 L8 G& T
}1 L$ y7 q8 M9 U# u) h
end
9 d/ w! N0 J4 }4 o9 F4 g |
|