|
|
改了一下,这次运算应该没啥问题了
T( b) `( |- ?4 D, U) w. j3 E
/ K% W |# @) f! U# l* @# H M% q* u3 ?
capture program drop hello( T7 ]0 M, r$ s
0 K. C* N B5 Jprogram hello& c* M& G0 h* P$ W
+ T- m4 D* Y5 K quietly {# f1 l. k+ |2 P6 x8 D7 z. a
4 k. Q, \; f# L9 e
clear- D& L o- ?% o6 ]% {6 k
# u3 K4 {, @: u* W$ r2 T9 ]
cd e:\finance\stock\20110101\source4 B/ A) V# P! |" S, U: }
P/ O# t; d, v) C- y% M# o
insheet using `1'.txt
0 r. I5 o& ?% |; z. j
! `( z; A* b( Y* z keep if v5>0
' ^" A, m; { y0 P, r & E+ ~" ^- @) z0 w
gen vt=_n1 A/ g% h! F/ l) i
7 m. z+ r5 c; V$ @
tsset vt
6 T& m1 L* @* I( x7 e9 \& J( }& ~. F& R% H
gen zf=D1.v5
8 J# r7 u3 ]$ v6 _! P
! V% l9 B' l& z8 W+ A" \. x- W% v gsort -v1
/ u3 ]* M# h2 O2 W. j* e5 v7 b! C- w1 c, Z. I) F2 c
gen avol=v7/v5: n/ H* v- f# j6 S& c1 `, n1 D' ?
" k+ I8 G) Q$ x M! @& E/ F' L keep if avol>04 h% F4 ]+ z! T" M' C' D
8 x K, U: K' x drop vt
8 S4 _. ~1 V2 @. \( M0 d 8 L3 h6 Z) H; l0 |" f$ i4 r1 Y: b
gen vt=_n
- [, S* U1 {* b% G
3 O1 {) x$ F% K/ D b4 u3 r% a tsset vt
8 |0 v7 P& T9 H8 Y. ^. O % m3 F3 _9 V7 G; U8 |. W
sum v5 [aw =avol]( N0 u4 I- ?5 T& E1 j+ _3 U% k
2 a" O2 ]5 V6 f. n3 `$ F, Q
gen amean=r(mean) in 1
3 ?5 Z5 `0 }- W/ O4 n/ p
( u$ x+ z) L. J * 总加权平均值 amean- s2 v8 D& o. r O
% z6 K( v2 q( ^) a9 y' @- ]# W& U1 W
2 b" h: ?6 n' J# F
keep in 1/240
: Y4 }: J% ?9 i* I6 i( ^
7 f/ u" e# |! m# Z5 p, q) B sum v5 [aw =avol]/ p7 ], w. H; Q' k6 P
; m1 M: S4 T- {# g1 E- [
gen mean240=r(mean) in 1
; J8 p: R* `5 M/ \6 n8 |
$ Y; ? J$ Z7 Y+ C1 @8 C) [' ? *240加权平均值 mean240
8 Q6 z4 d' p& r6 R! w; J
! @9 r. b: ?# K9 s7 Z set obs 500 3 S$ u% |" t. r
- _3 |, v: E; {! V i1 a6 a* j* I
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph) H( D* j- F( s6 K+ P6 l
) H3 Z# ^, s( U *240 kdensity(dx240 dy240); X) F) k. F& n& [
" |$ `' f+ _$ C
sum dy240% a ^: T; p. Y
3 t1 l. x# o3 B6 q1 g
gen yxis=r(max) in 1
! W( W+ |0 A5 B9 X
7 ?& R0 j1 I3 K/ Q" d gen yxis2=yxis/2
( j; g+ ~# r$ [6 c0 Y) W7 @
1 k4 N& I+ p" @% | *yxis
' z& T- L+ U' q4 m1 m! g
# D. ~) W# K, N! ^ gen dy240max=r(max)* p9 U. ~# \% H7 ]$ [
0 G9 P* f4 v5 E$ [5 z gen dy240minp=r(min)4 A! [; @, L2 Y4 K6 U1 ~
3 c* |0 g. r, e2 q: n- U$ _3 K
gen vtt=_n
! ~% t5 s$ h- Y1 h' _& ]
2 j5 d. _* P- k: ^1 e$ ^ tsset vtt
: }6 y! |% _0 N8 r! C4 W# |" |2 f9 [+ Z; j) O# t0 m" c
gen ddy240=D1.dy240/D1.dx2401 L: U2 D$ a- ^1 f* \) Q' W! }
% q2 z" V$ r; t+ |; y7 T5 i- g- h4 c sum ddy240
4 J* e* ~6 N& u/ }8 B : b% P$ f4 z0 b7 M' T( L1 b" r9 v
gen ddy240max=r(max). ~; C. o" t1 [' G, ^/ ^ O
+ G4 E! I ^' _5 K5 L
gen ddy240min=r(min)
0 b8 u8 H t! t5 S# t, y 7 e9 \" P6 R9 j& Q) x4 M9 \1 z! v& P
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
, B% z# a: r5 h9 B 8 a1 U( g) e" B
sum ddy240g2 P" O: }, F3 X: ~. M5 n
* Z- }/ ?4 N7 \: ~# O gen yxis3=r(min) in 1+ i. V( M4 U/ U$ f! K% A+ ]
# g7 L8 }/ W* `6 L5 T3 c8 o gen yxis4=0 in 1
. E* _& R( R) V" L$ \. o W; T1 h
1 S# t" Z0 _& s *ddy240g
) [& E1 `* h" ~# ` 8 d" U5 O% O6 y0 l, y
) u# j6 P7 ?: M3 B8 ^9 l
preserve + Q2 u" ~1 P k4 S7 |
x8 Z5 }4 q$ R: {% T/ W( O( G4 D
sum v5 [aw =avol]2 d- b- |3 ^- Y0 K( d- |$ V
% N, ^& B5 G' S( k1 P6 Z8 a0 K keep if dx240<r(mean)
# Y, F# C% q A! B& w- y ) c. Y) @* Z0 r
sum ddy240
! j( a3 l7 g% ? }* g
) {& F, {" c) r8 n3 C. \ if r(min)<0 {
9 O% s* u4 F" H* ~) J# E3 \
4 B) ?, A6 w: H% Z! P- e4 X3 x) o+ I9 v keep if ddy240<=02 ^- K/ `2 t1 u
6 u% {$ s( T* q" w: Z count
a( @, T% D$ V+ ]+ m+ Y& q6 I . d5 P7 ^; T6 `; N5 A
if r(N)>2 {
2 }% H% j' Z' Y: K3 ?( r. y
9 A; P9 w. F, d* H) {- T r pkexamine dx240 dy240% S8 F* \7 D6 x; r4 F
1 p/ Z6 z( L, f9 ~, x local tempminp=r(tomc)
( \+ V* O4 b/ X1 u: O restore
/ c( y, I$ y$ G: H: N( E0 } }. j/ s4 W" I; [8 B( M
: W2 v6 y$ o3 A( i- [
else {
. Q2 f$ ^- E6 M4 o* ? N! r( z& k
2 O# I5 D' ^2 i, n di "cannot find minp"* R |, @# ?$ q% o, e3 ?
2 y6 X2 }0 ~+ Z/ v" u
restore
; h8 r' ?* t9 U5 b4 M( N sum dx2406 H2 o5 @! A8 t' W2 T" `7 l
local tempminp=r(mean)
1 \/ q' Q6 i% k1 c7 k% S( I : R: Y; @7 v2 J! j
}
2 C8 a/ o) x& m9 ]4 d I, R }
4 g& V& ~0 T6 z/ D! {; V) R5 {6 Q; P Y/ W else {, S( N" M" \( Y. p) m
5 K: g. B+ W7 L4 z- K0 x+ { keep if ddy240<=r(min)
6 }8 Q2 Y5 m1 Z + k2 t. _4 f Q- t/ z( Q* l- |0 P
sum dx240
' D( g7 ]/ r# W' t
! ? S: {6 h9 x+ _2 y8 E5 s& q local tempminp=r(min)# p( {' M( c3 c% d. G1 b
restore # k4 {! t. `1 {7 f( G0 ^3 O
}
& o0 s+ X- b- l) q' |: y8 {& b9 Y" d6 F$ z% n5 c+ U1 ]
, L' w3 h% U! L! ?8 e! Y, q- m9 w
* d8 H3 i) f. I+ ?5 ? gen minp=`tempminp' in 10 ]# c* g( c( W& e7 K
*240 minp/ T; |3 D- G3 J0 R# Q L5 v6 Z, R4 s: E
8 _* _4 k1 a3 {! H" B. o0 J7 h" s$ F! d' ?, Y8 M$ w
( s; K9 k3 U2 Y5 h* h
preserve
+ K0 W" P3 T' } 0 g8 t. D0 r0 }" [
sum v5 [aw =avol]! U* R' ]1 x7 }
* R7 G5 [* j+ B% R) x! S keep if dx240>r(mean)8 }+ Q- _. i2 f. d! {8 Q
( ]7 x* z" V6 X, A/ Z
sum ddy240/ x9 J# i! m" o( U3 L% T
, c6 {/ C3 S( l if r(max)>0 {1 L e; r( I( e+ X( {8 D$ |
$ R) H1 b2 f* A" j6 s6 U/ | keep if ddy240>=0: `0 _: [+ ?3 x+ V. @$ F. A
: Z4 S* O6 u: y' h# ^
count
1 z. i6 j3 Y% l! @
7 T6 Y, J- E6 u7 O if r(N)>2 {, e! D9 V2 U; m( R# J
5 Z( W; d2 ?' d pkexamine dx240 dy240
- Y, I* z6 T) [
& z- D: J, }7 ?2 J local tempmaxp=r(tomc)
7 }% F5 Q. R2 } O5 E restore
, l% w S9 a) Q. S% X7 }% t2 Q, D0 E }
/ `! Z: }. e3 U$ o I ( }9 Q3 _# N5 h9 q; _! N
$ Q8 m4 K/ D: q4 n1 k- D5 c else { A# ?+ _- c+ o% n" J) R' ?
restore 4 G/ l5 v5 B$ x% d
di "cannot find maxp"& Q% F5 }, r5 T8 I, u" r: ]
X6 N& |/ l& O2 S1 I" h
0 Z9 B3 {" \( `( b) E# y, ?( L sum dx240
B" Z1 y: r$ \3 g: @ local tempmaxp=r(mean): w# T4 u1 O* z# O' Z; m
+ U1 ^$ ]: l! _5 Q0 G- o
}
- X2 o4 K& t& R5 I9 O
+ t% A6 f; @% E' L }
& `- ?. f4 i/ U8 t( x4 B$ ^5 X
* _# V, X# E$ [9 w, { else {7 n. g( I! k5 C1 C
4 I) N1 J% h! ?) a3 K$ K2 N- P+ {3 B: T, Z3 D
keep if ddy240>=r(max)
+ p+ ^( u2 G) j7 q1 v
6 j" V1 Q l; s6 }* W: Z sum dx240
4 g/ F# A% Z V 5 g& w1 c$ p) j& E) R; C' [
local tempmaxp=r(max) + j: I% L, i, Y! n- L
restore - t' S$ P- [+ e8 D
}
( t$ A9 v& G$ a
5 W7 r& ~0 E p& v/ r' c C1 d9 X
/ Z0 i+ a7 r7 K+ J6 E1 A& K
1 d7 M, ]* Y5 I! r% @+ k" D4 c2 Q gen maxp=`tempmaxp' in 1
% m" c/ x2 O/ J1 @+ h2 |. j ! k2 d, H3 J( s3 I
*240maxp
0 x/ g" X2 H; t) k0 D. Z y" b. n0 }/ m8 k8 Z0 I6 w) l
3 v% O" @$ \3 K2 U' D5 a6 S: f( [0 m *-------------ddy240pminp左侧高峰值-----
: P( g% X ^% q$ v L1 |/ W 6 l! Z8 I+ @6 q# ^; n
preserve
4 q) B+ u, X/ E: }( w
# _% N! A; l; [6 p+ z keep if dx240<`tempminp'
1 W, P& w* {: `( N% _
$ a# V' @# A0 C* K" s1 A keep if ddy240>09 R; o) O/ I+ p0 z
) [4 r! ^# X- T& b
count+ ~7 a5 U; O! d! j
4 A/ D: q2 u/ f
if r(N)>2 {
' ~) B& Q9 ?8 Z2 L" S8 c! p" Q ) Q: `3 q5 ]& m9 R: T
pkexamine dx240 ddy240; x1 Q$ d. h' T& R# ]& Z* L {* f
0 ?2 Q. S6 j" p& u' |
local tempminphddy240=r(tomc)
2 t! P; v3 ?( u& L3 b restore8 T. ]" {1 r2 f
}
0 f" W4 q: O+ U! d; J
" i# `7 S1 S0 g o else {
. w: X* x% @, u' K$ U restore & q) t- P" N; N( A& v, q
di "cannot find pminphddy240", X# V1 _" Y. x& ^
, a& b6 \. D" O- N: L8 f$ v0 x
; j; b. m2 ~0 s3 P$ I
sum dx240
w) S5 _" h# |# \6 ? local tempminphddy240=r(mean)
9 b6 {7 W& g: ]: c7 S7 c M7 m * E: z- M) z9 t( h/ r& |
! G0 p+ F# r$ p7 i' y7 g
}1 o, E: d& i% k& `0 k1 ^0 g
7 C5 W; v7 {7 m. u
+ q1 {) [% `( H9 d
' S' H. j% h5 `* b' `1 k) C9 I . `& _6 E* K7 d4 m7 l) H& B8 m
* j8 h6 j. o0 b: k6 v/ i
) q! Q$ j9 e' p' `. A% ]7 [& X. i gen pminphddy240=`tempminphddy240' in 19 g2 P. N# S. {8 d1 T$ Z
$ b" |( x+ y( \8 W$ h; e) o# c. {( |
5 ^4 s& S F' l9 Y$ U' l9 e *-------------ddy240pminp右侧低峰值 -----------------
6 P E5 N; `4 L9 a d/ f preserve
- J" G; u8 u" ]+ K$ Y# @9 A1 l- F ; n" }/ w2 a/ p2 u) [7 a& u& @
keep if dx240>`tempminp'. T( t3 l* E6 j! E0 K* x5 e( @9 o
' d- ?. j3 b" u! I S keep if dx240<`tempmaxp'
% V+ ~$ X% e' l2 z0 u
7 s& j4 m1 i' F e; O keep if ddy240<0
% o* i: s4 |% s 0 E/ F6 G7 j4 W2 ^$ ^9 Z) W
gen temddy240=-ddy240& @5 s" ?7 j) D- @9 o, X: u/ I% \
) V. b4 _/ z+ i6 O3 L
count5 Y% k5 i' V7 U- U2 i7 g i! o9 X
" z; S- g5 Z; ~5 | if r(N)>2 {
+ D$ F% b3 L) m- v/ z $ E% w) P \: l7 j7 F! j
pkexamine dx240 temddy2409 b( ] I! U* H7 ?4 c* @( K
+ z& ]* T9 z2 x/ d; {
local tempminplddy240=r(tomc)2 p5 l- q4 C& b
restore
, B8 ~: W3 q0 X0 d: Q }& @' e6 t0 C! O9 k
! Q. Y" j( V* O/ K$ ~
else {$ ^$ H! A/ k7 Y5 T6 z8 @
/ k/ g. X; Y R. L, y: S di "cannot find pminplddy240"
" c5 ~$ @; m! ^7 w restore& K. x2 O E$ Q/ _1 x
y! p/ G" G2 j0 [" B4 R2 w) u7 J sum dx240+ m& ~( T0 [, ]- m) z
local tempminplddy240=r(mean). M- g( c0 n5 w; g( _
+ W* J2 K3 H! C ) K1 M! _! M' S+ S9 |3 W" v+ e
}
3 |& m$ k4 P9 b7 C0 [# h
6 S. R+ q8 n; e5 T 4 w/ ^: f* F9 e* G
' w" Q7 z3 z- e6 e 9 G, z" \. `/ i
% x7 F. J" f& B& B0 [0 W A gen pminplddy240=`tempminplddy240' in 1
+ d! A! b' u8 F9 B
" @' n5 j6 O" P( q0 B$ F *-------------ddy240pmaxp左侧高峰值 -------------------+ I, u' L. a' i- ^7 Q7 L
8 ?! p8 @9 N9 s f9 I- X
preserve
5 U3 V, h7 [: ?" e6 P; ]/ e
+ D) I/ r1 \2 c* t keep if dx240>`tempminp'7 S u) y) @# N
3 h/ @( B, T" X7 q' S keep if dx240<`tempmaxp'
+ u5 v* L! h% L# n P4 |7 Z6 {$ X 1 K5 ^2 Y" |# ~8 t* b
keep if ddy240>08 H( z4 @3 I! n" p
count; K" P& D: q3 \* j
/ y3 C5 v, B8 `# }& s6 p8 s
if r(N)>2 {
& V- {) h& ]9 ~9 U! g 5 C5 ?3 k% r4 l; W7 x; m
pkexamine dx240 ddy240
% ]1 @5 c" |9 M3 g- `1 o 1 R. t0 p. n0 J7 I- ?9 W
local tempmaxphddy240=r(tomc) % h6 J! W# {) p
1 Q( M, M$ Z+ \* E/ I+ z restore' x9 R& ?/ ?4 R( J$ ~: J
}7 M" c; F' \! }# ?7 p% k
- d# v, G$ q# [# ~" h2 o else {4 }# V$ f% ?% [" d
* `; x9 v) k2 V8 v# _
di "cannot find pmaxphddy240"3 v0 g+ ?9 z, J! e3 ?2 r
restore4 p+ @ i+ |. t* V5 w+ t
7 b- c/ A; m$ f5 F5 U sum dx240. a" g5 Z& O. M1 c5 ^! b% L2 l3 D
local tempmaxphddy240=r(mean)
; x6 [# H7 o* ^/ y) r, ~/ u
; D0 V# j, E. t, `" U, ~' O" v . p2 j; d: v# }$ f/ G/ N& e
}5 d) Y1 C& O. K2 i' n6 x. J
O- I) ~2 e2 N# t 2 F5 m }/ K1 a7 }( y
) B8 T2 l$ ~# U1 z; z
' J: x" t( {; _% c * v0 K8 w2 B: `
/ F- O1 n2 U: G9 k) R gen pmaxphddy240=`tempmaxphddy240' in 1
* N0 g5 J' ]) ^7 p' ^ z/ ~9 M # `3 V. G# a, |9 V
* R, D) U# e- Z5 S. h. \
*-------------ddy240pmaxp右侧低峰值 -------------------
+ Z2 \9 f$ g5 S
" F/ F6 L7 s7 A preserve
( s9 j$ s7 t* C9 O$ x' l) T" w
& H3 f3 j6 f1 [+ r2 ]/ |+ V. x keep if dx240>`tempmaxp') W0 @& B/ x/ `: U7 T1 Q
4 d) o" d ?$ l" o j gen temddy240=-ddy2401 I. b1 C; o/ n: E5 ]5 a( t+ E
& F* D( k: o8 P. m, I; T% s
keep if temddy240>0
M5 ?: j' _+ }2 L' ? O; M+ { 4 o' C" e' R. H" k5 m1 o
count0 R% b$ v; L C& H; j
+ G* {. J9 C. } if r(N)>2 {
. z0 s; k; S, I; ?1 |+ U! e4 N: k ! J( V2 p ^5 }4 e* B
pkexamine dx240 temddy2402 n p) O; l! P7 x0 ?3 K
k( u+ u+ X! a& J. I. c
local tempmaxplddy240=r(tomc)
) Z2 J! F3 r( r. I2 _# ~ restore0 n3 n0 ~0 I: I+ X, k7 k# s# i+ Y
}
1 J9 g- H% _5 b6 U * z9 q3 C. z8 D4 q. e; r, s" G
else {
( T& G7 t1 B; Y8 p$ C1 j restore8 F4 d' |7 P# Y2 d% K
di "cannot find pmaxlhddy240"
0 f+ r! O5 o- X
7 J% L$ K. w& S& t1 J1 o6 ~
1 m; H6 D+ L0 |1 L& |2 P: c sum dx2400 A2 J9 h! V1 H( X; }1 p
local tempmaxplddy240=r(mean) in 12 U. i( g4 u$ K: A/ \ }* s
+ [7 z, W" c2 E
) i# v, C. i; C- X }" V% s8 g: K8 G: N
" Z- z9 R% ]6 ~
- I; V6 i3 t$ \6 [$ M
% f$ r2 [6 e* v$ Z $ s7 e; h+ I" H, ~2 i
9 v8 I3 V5 e5 q2 x1 E$ S; y/ W
8 z' x0 g5 Q$ L* V; V( K/ d/ L gen pmaxplddy240=`tempmaxphddy240' in 13 {% R( s7 u" D) U$ h' ?5 p( E
4 W1 k' k! W l, r/ D *-------------------------------------4 q. r; @4 ?9 S" j1 N% ^9 F
6 a# P5 v5 s( p. D, w6 j gen price5d=v5 in 1/20* y$ ^9 C/ P9 h
9 G5 r- h: F- ?* t. G gen price5yy=_n in 1/20! C+ I+ _& _' @( a
/ F; e2 z |$ I( F v gen price5y=price5yy*(dy240max-dy240min)/20
9 ~/ {4 k7 D9 P5 K- }/ W! t 4 w8 V- {0 K7 d6 N
*price5y &price5d
- E7 @" m! _9 g- T; Q" v
0 A# B; a1 Y9 q+ _! u gen priceny=price5y in 1
( S7 s' v S& u1 w) r1 W1 L
7 @3 y! Q5 |3 b; w gen pricen=v5 in 1
4 P B7 S& Y' j& B
- T' R9 b, D: r2 i4 }
4 e- A o' h! y$ ^% D *priceny &pricen
; f+ p% E# f5 g0 y' E, t" A # T% s7 W: O- z# }' j
/ l$ t$ v. n; {8 _) h
*-------------------------graph------------------
8 A4 H5 J U5 Y2 ]( [
& V; h- [: u/ X; n$ _1 l5 @0 m; N 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)
/ E! _ ]" ]) g( i) K( J; E( y; N* {6 ?- n4 F4 ?
* ---------可选项目----------------------
6 F' O* N: ^- k: J3 `- U5 y% r0 r3 m$ ^( T; A
}
8 x. u& L. T) w; X+ Oend5 N. i) {% M* ?" X- o# b0 {
|
|