|
|
改了一下,这次运算应该没啥问题了" Y: y& W9 P7 k, r# u6 @9 `& d
7 Q5 R) V* M; g& h+ o& p& I8 s- n
3 ]. Q3 S# q5 P2 _7 ^2 I* q
capture program drop hello2 ] ~# i* e9 }
* Y7 d/ @& L# M; [
program hello9 i$ E( e) y( C: B; _, F
1 @. r7 I5 M }9 }0 U+ d! R" C/ r quietly {
% X3 u* |* V& q% {* b5 G/ S {3 E) i! J; V, ~, {
clear6 Y1 Y8 p( H# O5 |- l- T: [2 d1 a' V
8 k" `# }. I% Z' ~5 e8 |
cd e:\finance\stock\20110101\source9 v1 n7 w$ Y* O- v% o" ~, ]
, e- i$ G; ?/ r0 e' z: hinsheet using `1'.txt
' ?# i" e% Z$ a5 w$ |# t8 O+ `- s! G8 e$ w; d
keep if v5>0
; F4 v) e0 D' D / v/ G$ {+ ?' U! W. G2 P
gen vt=_n
+ {, A# W# H# }2 D$ K9 y
7 f* A) |; a2 }, D" L- K tsset vt
& U* P: X0 \3 c0 F1 @3 U+ j2 E( t3 {
gen zf=D1.v57 z$ N0 G1 w H" L
. \& D) h W1 E: ^) a
gsort -v1! M) m) a4 w. i% F2 K, _
5 j" n" e- d6 r+ Z/ p1 b6 Y- V. l gen avol=v7/v5+ q7 _4 S0 v% e( [
; J/ E/ z' w* T/ Y8 K/ n keep if avol>0$ u5 u, i0 B4 g& H+ n' o- a
9 p6 V* r: v1 o* o. V# `4 F
drop vt# D: M M4 B* v: Y/ o
, E$ D4 K4 h, l. Q
gen vt=_n
9 d5 D4 L1 U; `2 _0 @2 Z: ?- E; s" {8 W
0 d9 o t$ ^, h; L5 z tsset vt( T, R5 }3 W" F9 i% W0 s
6 {) Z; G1 J) l' Z' Y- P- r
sum v5 [aw =avol]
% t4 h6 @6 f$ t; r% ]+ ], ?0 m/ k6 _; j: a$ ?/ o) q+ T; b
gen amean=r(mean) in 18 q: L# B$ ]8 J% T' x9 y$ b
( t- E9 Q0 g# H9 f4 y2 P
* 总加权平均值 amean
! [$ |) K7 W- C7 D% n4 ?( F ! ^* h$ v. Q) G4 @- v; ~
, g' Q% w {3 A' a& Q8 ]
keep in 1/2404 O5 H- c6 y5 O4 R$ z) g1 ?
, s/ K% d: a9 S! @. m5 s) o0 U sum v5 [aw =avol]
2 H# `6 n6 }5 P, J1 a6 K( |& g7 k4 B9 F% v$ y
gen mean240=r(mean) in 1! P T9 W( o0 k/ ~: Q
# x' B, c/ ?" O# P6 G2 p' z0 i *240加权平均值 mean240
8 b! Z+ k, T0 Q, T' `' F! d
. @9 `" _9 @5 c+ ` set obs 500 , g) k! ?/ c6 A/ a2 f- n
# ?! R8 o% o: F. G( J. d1 ^
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph% V4 f7 ^/ D& }% D3 {
! ~7 a i w4 i8 Z; d
*240 kdensity(dx240 dy240)3 X, U! H6 E1 b
^7 _9 Q) M4 f r4 @ sum dy2403 P( `/ z4 U7 y) O
/ L: U, v o0 Y! v! M1 h
gen yxis=r(max) in 1
/ @1 c) }6 Y+ g% d! w' M% J0 G 9 v/ L0 d7 j# K
gen yxis2=yxis/24 t4 T" F# V7 n) t- c( V/ E# @
! l/ P- t4 |& P/ L* o* `* ~$ O *yxis
0 o+ q- y: g$ m 7 t# |+ C/ D2 u
gen dy240max=r(max)
6 ]7 E8 _5 E+ i& D) {6 [% a
) l$ b! r" ]9 R0 n4 I$ C gen dy240minp=r(min)
& g6 S+ \7 v; @0 K7 r" ` 7 _8 f4 x9 {3 J" {6 a* V6 o
gen vtt=_n* A* u! o! Y7 N4 V
1 L9 u2 d) H0 S3 G1 J, k
tsset vtt c: F- D- U6 ~- A+ z
& a) U `$ e5 g7 F1 b0 j gen ddy240=D1.dy240/D1.dx240
1 k8 s/ [7 x' u' j& e5 N. d/ x
4 \8 W8 L# \2 B6 I% [* O sum ddy240
. @( k* N( f$ P" F8 ] * Z6 ]- \; x' M- X
gen ddy240max=r(max)
2 i) c( s1 t' T
$ i$ g# ]" I! Y% ` gen ddy240min=r(min), f7 Q1 q e; M5 E6 @4 b% `, A. {
' E: m" S% \8 Z$ h3 Q F" [( m+ q' q6 b
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
5 h1 J: L- b5 F; y6 \9 j. W % N! r5 i2 ?1 r# {) a) E& U
sum ddy240g! u9 K3 C X1 \; e( Z' D( v7 [
z# B: r/ V7 o3 i
gen yxis3=r(min) in 1
, F( B1 ^6 d* M$ J# b/ P
6 H z/ p! W- W gen yxis4=0 in 1
5 V/ S5 U0 \% I: i* p/ x3 S( o F* d
/ z& ~0 H' ^5 [+ _* K. z *ddy240g
1 I% K! o/ P( F! @2 g, E * P/ D) Y1 R7 N% ~
* Y, l! d, x8 B: N4 m' o/ \5 ~: a preserve : p. }1 s5 E, b$ q1 x
1 y5 ^ A) M0 V
sum v5 [aw =avol]
# Q/ v8 g3 I& _ 0 U _. c/ a) y- f8 W4 y( `" X7 u
keep if dx240<r(mean)
: E# f. {2 C. ]7 P& z& M# {; [' u9 q
# L' G1 P9 A* R" Z: g6 R/ p3 O sum ddy2404 L/ B2 a! X. ^
' A% i0 A# u/ Q7 @2 a; R if r(min)<0 {4 z' L0 G+ b4 G) v
: p! W' W6 J% M( L& S! U @ keep if ddy240<=0
7 |4 F, {# D' c! r 7 O+ J2 M9 W& b5 s. Q
count
( |, c7 R& C7 V6 e: W - I' N* i# J+ y- j! `
if r(N)>2 {
1 B& x6 T3 O+ v7 G2 q
) `/ c1 U/ d% L* C! C7 \5 l pkexamine dx240 dy240, S$ C8 S; H' T8 G$ u) I k
5 O. M, e7 y3 F. N local tempminp=r(tomc)& G* S9 T3 I3 s* s8 p9 j) J: I; w1 X: v
restore 1 x- M9 g/ ]" o3 @
}
/ R$ Z- Q5 C8 w' l' n
3 m$ [9 J3 T: U) W1 J. D; `, \ else {
; E, M' X# ? n" P( M" ~
# X" L& |8 ~7 _( W$ F di "cannot find minp"
& ?" f2 |9 p' L; x $ z0 \3 E' p) q* ~1 Y
restore
8 r) h, E! S8 q; `3 n% r$ E sum dx240
# S! V/ d3 O/ h/ A+ S local tempminp=r(mean)2 H, i' Q) j4 [# h
0 _, s) u) I! H& j6 {- J, ^# H }" m1 D! Q- O; g' c
}
: [3 F/ ]1 f7 e- y, E else {* f7 p/ [0 Y5 e- u
: `% R) ~: ]8 ?6 ]% c f; J- H keep if ddy240<=r(min)9 w% O- K( y: l& q% L
9 }9 X1 g1 |, y' U9 v2 T
sum dx240
" U/ ]6 V, [4 W# u% V7 d l% ?1 B
8 d0 @* c2 \5 x local tempminp=r(min)" U6 A7 b" N% @. d' o) L7 }
restore
5 b; O* J2 a4 T. l7 t }
. R$ |" ^0 u; P. j7 X- _
3 m+ w; ^% T+ {( i' k3 Z* o7 u2 \' H
" m$ s6 _8 G- p0 U
gen minp=`tempminp' in 1 \8 y, X0 M( \" W/ S$ s2 Q: p
*240 minp' D+ V/ f0 O4 n2 C- d
3 E7 S/ k. u# x9 z6 |
" D* _ L% W0 B A1 n0 Z( H
* F: t3 E2 B2 t. l
preserve
6 e& ~7 q4 e* M: {8 V6 p4 J 7 ]0 k$ Q n! \, a$ T4 [
sum v5 [aw =avol]
1 O* z" M( I, j( W ! U% T Y" U, \ l
keep if dx240>r(mean)
9 o: E: P s% w$ G: n Y
. g) P' |# d7 C5 [) Y# a7 ^& N sum ddy240
+ P7 ^# @4 u, L" G( V % `3 M1 a4 y& N& D9 h9 s4 A2 h
if r(max)>0 {
i5 Y! E! E. ?+ U7 Q4 e% |7 d$ _ . }2 {# ^/ t7 W! {
keep if ddy240>=0
5 m" D. M" J. \1 Q3 T! k 5 F" L1 L4 P# c5 v/ }: t
count3 j" c% i) C9 j2 O
\6 F3 z3 H9 e) ?$ w* P7 m% h if r(N)>2 {
1 [+ z9 Z% y0 [) @: ?
: ]% S' g7 @3 A pkexamine dx240 dy2403 j) V5 I% L7 l) `( Y1 A
6 Z' F4 J2 u6 w+ P9 D; X. ]
local tempmaxp=r(tomc)
, U" c; `8 k; J! u7 L) m- K restore
g# u; Q. v+ W& \" p( x" W }
$ v. d7 C: U. \ H
* F9 j2 Y+ G2 E. e% } : T* d& T7 G3 z0 f
else {
- @. W" u* h: B- m restore 9 B% g/ T7 k0 E/ J6 Z( r/ U
di "cannot find maxp"9 q, `) V% t4 E( X/ Z0 T2 f. k! ~( T
" t2 [) W5 O( [7 V& E
$ |1 o# S; V2 ?4 f' r ] sum dx240
4 }5 M4 \- [- h$ S3 n; Q local tempmaxp=r(mean)
2 M" D5 i. ?( B' g- E9 q( o Z5 j' @
/ i2 [' @" |6 j1 {- J7 g }
' I6 X, e2 i6 @5 p 2 m9 r5 f1 S+ z
}6 ?3 h: _! i- S* s4 P
8 e' h% M- o( u/ T8 k9 @' a9 ~/ r
else {& R! K, C/ i; F' ~
/ b- Y0 K; B7 |9 p7 l9 z keep if ddy240>=r(max)9 W! Y) J: S- \: b! [7 C O1 S+ q
; U8 t" _; a" \+ a e0 a( p
sum dx240
, v+ C2 s8 G5 |, X
* R( l. P2 J; G3 a9 z) |) {; a local tempmaxp=r(max)
5 l+ I/ @8 H( `9 O4 B7 V5 S restore
2 p5 o" |* ]1 e }; r( E& |. \, J) ~0 Q4 r% I
) k0 `: _ A2 s' N6 ?3 V2 {- j7 Y6 L8 X( ^) ^6 `1 C
8 @. N& e4 o x, o# n: ?+ K
0 k& _+ p3 O0 U; ^+ ?4 w8 [+ j gen maxp=`tempmaxp' in 13 M* D# |- D4 D5 i7 L: w4 o1 M$ c
( {# _9 D6 Y4 a) C6 Z# j
*240maxp- Q2 U, [& W7 W' [8 B1 A9 m6 u; u+ v
; Y, D# F I |& s7 @
8 }6 I* d" e+ C *-------------ddy240pminp左侧高峰值-----
! _# n' _+ m- H* z! \# A ! L* ] [7 S6 V- N, |
preserve 0 h" X+ P+ x& x; a5 t: E0 ^) G
2 i, \) R' O3 a
keep if dx240<`tempminp'( ^2 I/ q/ C% x% a
+ z4 S6 s3 }+ \# x
keep if ddy240>0
" s- d. {: [8 b! K * ?, G- }8 e6 i6 f# z4 w+ w! Y
count
# @5 u( F1 o6 b" W/ ` 6 x" n* ]+ D, Q. V( k* x9 G* q4 e
if r(N)>2 {
6 x6 w8 w; U7 f! h8 k7 F1 C
7 _6 m9 N& ?9 R- w4 n pkexamine dx240 ddy240
2 k3 C* w- c$ Y: a4 j) z
0 O) i+ S! Q& J, K: t1 @# q H5 h local tempminphddy240=r(tomc) # B+ k% T! q. i
restore/ b4 J3 ?9 w% t! L. W
}
% H2 t8 H; ]9 h' a1 U- n9 M: S6 V
8 M& H& G9 g0 x% J* W else { n, K8 h( }9 @& T( S
restore * M7 R9 S/ I: l9 T4 a( }3 M. E
di "cannot find pminphddy240"
2 v: b! ~) V* u6 }# h2 n& a " Z( E w6 f+ q
1 _2 O9 q3 f2 x% ` sum dx240
P [/ t h0 [* H* o( y, o7 V# y% S: I local tempminphddy240=r(mean)
1 p9 |# J0 @' T9 g $ j1 e# X `, K- L# J7 M
2 m5 g F4 P3 [/ l1 x3 r: w }
" B/ F# \5 M! U
. i# k3 f! s4 F7 V' f6 Y
5 j6 a8 N$ b0 Y! V
, l- i" t( N, U ( I7 x. ]) P1 b, G! ?
: v8 b, p7 f$ t4 Y5 u& n9 m$ e
( L% Z3 g* @" h+ F4 b8 z9 k) F+ J( ` gen pminphddy240=`tempminphddy240' in 1- ?& c1 [) @! }- W
/ D0 }, l: N+ ^2 q' m, f# B; q
2 Q/ h$ g! d, d1 h7 S6 G *-------------ddy240pminp右侧低峰值 -----------------
8 j" \6 f: M$ l \ c5 F- H preserve
6 l/ s! k4 r# r" i& p
# ^! _; L6 z" d4 w0 H6 a keep if dx240>`tempminp'
" F+ Y& s0 ~: Q% G: I - N/ h) {3 n; n( c1 }6 C$ l/ F
keep if dx240<`tempmaxp'% ~ \: e# n. m' O( l
4 `! e8 T& y+ R) m
keep if ddy240<0
. l# f) z5 [0 y9 A3 W: M: y
4 U1 S/ \7 s; X& G gen temddy240=-ddy240
7 R) e% y5 |! c! A0 K% X6 o, F. T: z
- s) }+ j( i, ]$ T count
3 T# |1 D0 S' o [
: L4 v1 K" a, \1 V' l+ k1 S if r(N)>2 {
0 B& ~! i4 f# r; y9 m, V8 g4 ]
0 g; x! ?2 i6 C' f: g3 b" c pkexamine dx240 temddy240& W" [: I2 K- A" i
( V& x0 d: R' P local tempminplddy240=r(tomc)
6 L( e8 n7 W u0 b restore
5 p* x% J: N1 @2 t0 t }
) `. ]. e" v+ v; y
4 l$ C& `8 e1 f0 ? b* G6 h$ Y else {) n6 f: d6 H7 w, J' |* ]) `
- Q6 z. n! [) Q# W di "cannot find pminplddy240"& h1 e7 l( b+ T+ s7 K/ q
restore8 g. A% ~( _* m0 Z% }! b
5 w! k) t) |5 @) C* s p+ d/ C1 I m sum dx240
( f# Z/ u2 F3 ]9 ?# f local tempminplddy240=r(mean)2 {' m% ]5 I+ A6 K0 h, q
/ T9 m- c- d! U w
+ ?5 R9 _; B' q0 a$ w3 {9 P7 P }
8 c6 X0 i7 s/ }6 I1 C/ c
6 ]/ n! f# y {# ^" H( j : v* R6 i9 j! c
F/ d1 N" @. R6 l3 t& ?* \
% \ H9 V: C) |3 G# w! u/ F. U0 g " ?) }- k* Y- a# ]( N
gen pminplddy240=`tempminplddy240' in 1' z7 {8 E( n Z* `' L5 [
3 B& Q. }8 o$ S% }, t) M1 [ *-------------ddy240pmaxp左侧高峰值 -------------------
6 O, J) `9 o( k( i$ V. s& T0 k* `' l
& V+ s* i' S' t+ D preserve
8 b7 s/ u3 h& E) S2 S! f - r X& R# J* Q: c0 K& g
keep if dx240>`tempminp'3 n2 K0 o+ E+ q* t5 q
0 R# T z' ~3 ^5 G% C
keep if dx240<`tempmaxp'6 h/ F7 d0 v. }8 X
/ C+ R5 k K& ?# n' a0 C
keep if ddy240>0
9 x5 t3 F9 x+ t8 N7 g count4 t$ j* ?6 f) F0 e/ X! k
& e! J1 w) O$ c* ~. v5 M a
if r(N)>2 {7 k2 c( E- \7 O3 i/ q
7 ]( n) F g. y! k, N+ D/ l
pkexamine dx240 ddy240: H4 L) Q9 N. q$ G2 K
& ^7 n4 @& A) Y' p7 s X @ local tempmaxphddy240=r(tomc)
$ c( D, n, p; S* _
9 |) r0 P/ g4 M" s( C* n" p& r restore+ m" r7 f% _( r. Y6 k
}# p3 @- K* z0 {7 Q: R# ]1 t7 j
' M# x5 F+ g+ I0 z; v3 i+ ]
else { C+ A* ]0 j4 `( w: t$ S
/ I2 N* r/ j* O3 i
di "cannot find pmaxphddy240"* B8 Z, s+ x- c8 A" I& m7 z- ~; @: y" L
restore
) u9 w* {" D8 `$ @8 T2 {+ ^
; ?" {, e. ^# I- x/ s3 H sum dx240
+ }/ |. H3 n+ E/ v- } local tempmaxphddy240=r(mean)
7 ?4 s7 V! X: }' y, C! A
) W8 I1 d1 G2 c& V3 o' M2 ?7 K ( f' `1 Z! g# \
}
6 o1 D. P! _, u' N7 O. ` 8 e8 E! _( j! D$ m& k* l$ f
6 Y( x! ?& V3 o% G2 y& k+ |' ~. `
( |2 `1 Q6 \; K) b4 U 3 x5 Y u3 ~/ h
- s2 r0 b; u! U+ }2 }
# T U. x* ~; F' [$ q gen pmaxphddy240=`tempmaxphddy240' in 1
. _6 j$ `! q# r1 Z+ b
; H9 W6 q; p7 b# S# i& m. I& l7 Q
( `9 o1 L" |7 h5 w9 P6 k( { *-------------ddy240pmaxp右侧低峰值 -------------------3 z+ K, a" v3 X+ Z* Z# z0 d
8 \2 N6 G) D) w. C( V# o# O! M preserve , k0 @- G7 T" F" T
' k# x T5 w8 R/ E
keep if dx240>`tempmaxp'
5 t- r( j& ~1 ^2 J! F" \ 2 ^/ ^0 R+ A) h" `0 M) s7 o
gen temddy240=-ddy240* c4 @. ?; b# y$ |, i
2 L( }# q5 X v& S7 i& j" Q/ P keep if temddy240>0. Q @% a. b( n- V' M
6 i% a; x0 R$ p9 B( `" [5 m; g count/ ]8 j" F# K6 Q- L. y% j7 a, n+ v
8 N4 B6 M* K. ^% O0 c3 x
if r(N)>2 {
( l2 c" J" J( F8 L% Z
$ _ y' M$ F7 ?: l8 k" E1 ? pkexamine dx240 temddy240
" h7 }* Y6 i1 D* J! K \
. }7 ~: q5 F4 B: L) ] local tempmaxplddy240=r(tomc)
. o( L$ P6 Z" W/ n, R7 Y6 O( W2 l restore
s8 T) F* r) i }' i2 S" ^! W' z3 c
" d! R% f$ H5 V8 |: Q
else {8 u, _& {6 w" g: p( ~# a
restore
1 r! l9 v4 y; n0 [& K" p- A& @! S% y di "cannot find pmaxlhddy240"% s/ ]6 |* b. \0 U! H( S
! V0 g$ r5 }, g6 T
3 q. ^, u( K* w6 s% q/ t% ^ sum dx2403 A8 ~3 F" C# z: |7 d6 d
local tempmaxplddy240=r(mean) in 1% X4 D0 u9 {! ^/ K
1 m' R5 r3 l: q8 @, x- H4 o- ~ s1 L0 d6 j/ J% X5 K
}( Q6 g0 C N0 t6 y1 }& J
: w7 N4 ^2 p( h, B2 B. n% ~) P
6 R6 A! I9 A! I' ?9 c0 u. V
, c& u8 v& j# m) n a7 v
5 Q k; l! Y4 l
& W4 l! `$ |# e" g q# d! }0 M, v
& c- S9 l4 R; j5 u gen pmaxplddy240=`tempmaxphddy240' in 1
6 F- |/ v( I# K8 s- P" @
3 x" J- `9 z# |2 l *-------------------------------------
u# c1 r' A. E+ y( Z: ~5 D( Y# H& V - ?! h5 [0 A3 X$ e# k! C
gen price5d=v5 in 1/206 j! v8 H4 w+ m( L1 ?5 a, E8 r9 O/ `
9 u1 {$ M- ~* J7 e1 z gen price5yy=_n in 1/20
% q8 @1 o9 F5 t( o; J/ ]) K
: C& S! l% I3 M) I- ?' N gen price5y=price5yy*(dy240max-dy240min)/20
7 }8 x! a/ Z2 a( }, `* n8 b ) U& H6 D8 j7 X
*price5y &price5d
! T8 B3 Z3 K; B( O* K" ?& y2 n5 g$ R% @
0 H; ~' A8 S0 u4 { gen priceny=price5y in 1* ?. c5 B% B% ^2 ~
1 d: F2 L. a) q3 ~& B- q gen pricen=v5 in 1
X8 E7 N1 l9 }. ^
8 a: v3 w: L; s6 M( y+ l' { 0 M3 [3 r5 w% f& j s" t
*priceny &pricen9 s* r3 T* v0 a: T1 K
% _2 t" l( M' ?& z
% p0 |* I/ A5 s* P' F *-------------------------graph------------------. I* u5 V: u, l: Q- A
* k q6 d" o0 y+ P) n4 \
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): w a" V$ H' b; _
# {6 P7 Y$ \, [4 T7 ?3 m; E
* ---------可选项目----------------------
! z0 c) k2 C1 [ }- h& C5 k/ q7 o1 S' Z7 `
}
! V B+ \: U( C$ M5 @, bend
9 O8 v! `' P2 t0 B |
|