|
|
改了一下,这次运算应该没啥问题了
/ H2 ~7 t8 z4 f" K1 O' b; U- X; x( G4 F, E. B
' K/ C$ w! L# n2 [+ d6 G1 g2 c- D
capture program drop hello$ j: z! s6 r1 ]5 x1 _
# g& n( o: c! ?/ B
program hello
& {0 Z" @8 p- I0 M6 v9 V! P7 S* H
quietly {
' [5 F% l( G9 T" {, O U
) ]. l! f0 s8 O( r0 Jclear# w1 R* j. b/ u
, |! j& S4 ?5 A& O0 L* {! _cd e:\finance\stock\20110101\source
" _6 M: b7 k# V+ H; I/ k) f6 g- U! K* ]/ [
insheet using `1'.txt, C5 t2 n/ j' G0 \6 a
. w& n% x. l1 A0 [# \+ l$ j3 }( I keep if v5>0
1 Z9 }" \5 o0 F. `: h & H6 k: J9 w0 l# ]* z7 Y
gen vt=_n2 c$ t, ?& q: w& _
9 b3 y$ }/ H" T. |# G7 N
tsset vt
! P0 z0 M. x- N) U( L, A- v. N8 E1 m( e6 @
gen zf=D1.v5
+ |+ \ t% |/ V# x5 c; ^- k1 n( x. \, E2 Q, R& B, k
gsort -v1
. E6 n' A4 b! `8 d; M
( ~6 \6 t9 S9 l9 \* a gen avol=v7/v5; H) X+ q; m- ^
& Z# _5 L% z8 s- X$ m6 O keep if avol>0
1 s2 j0 Q& @+ j" T! N$ W4 T' z
( h# A _9 t! c: `, t drop vt/ g7 C2 @) O2 r5 |* B
3 u; \. Q# n c6 K
gen vt=_n
1 t; x0 p- j: C! I4 C
# D5 N0 a8 ^0 ], ]; Y: A tsset vt
( f+ O3 E L* {- b! k6 v, `# S 0 v* h7 Y1 f1 Y8 S
sum v5 [aw =avol]
, E7 h& c+ [' k. B, j; J5 L1 d* L
8 M9 Y0 C, h. c% R1 O4 H6 } gen amean=r(mean) in 15 z( \8 [+ Q' t+ W$ @
+ i: Y% X r! y& I * 总加权平均值 amean: \6 h0 R* H3 _6 ]! E
* [( V5 d9 E; T4 X9 @. a
' \9 ^: G7 r+ U" d keep in 1/2406 K. l; m' G8 M. J+ K
$ a, u: e. _$ r) N+ [6 K! } B sum v5 [aw =avol]
]5 O* \2 P; ]8 w1 f+ _$ }. l4 Q7 D6 o' L0 q2 O2 \9 a
gen mean240=r(mean) in 1
2 h6 i& ^& T4 U$ L: G
; X+ w: c* Z. B *240加权平均值 mean2406 ^2 @- }7 B! ?3 s
; W: T" K3 W, W7 H- P- J( I1 H8 k set obs 500 ' K$ q. }( [+ P; M% S: {0 o
) U K; I( ~& ~5 _ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph( k+ J: J1 t5 q; d; j8 l, a
. Q1 Y5 Q9 U4 _/ g6 b( M1 j- v *240 kdensity(dx240 dy240)5 q- B6 o. ^ k% d- p2 ^
" O2 y% q, m r r
sum dy240
4 e1 B1 V# A D O( B$ r , F9 Y6 ]. H* y
gen yxis=r(max) in 1
( J' F. v/ [- Z2 b2 h i 4 o0 T0 x1 U9 u; \3 M
gen yxis2=yxis/2: A7 l% x1 k' {4 G. [
% Y/ d* W1 i( [
*yxis! _) F3 s h# d3 n
8 @+ O2 M& ^2 t# p6 u! e
gen dy240max=r(max)
! Z3 A/ l9 I+ ` * [! p q: f6 X7 @
gen dy240minp=r(min)- Q7 _, L( r* i/ G& G
5 z% [& B0 c# Y5 b0 Z gen vtt=_n
/ j/ Z1 P2 J9 W3 k
( o" _# z& }7 z/ g+ D tsset vtt& n0 E8 z8 S* r/ F; B
$ G/ f# L- j1 w/ [
gen ddy240=D1.dy240/D1.dx240
) V7 @1 `* n$ g8 e9 O. B$ U! Y
2 v1 o7 _. ?) ^$ b sum ddy240( b t. U5 L1 b; X
' b6 m( x6 |2 r [$ }; D/ q9 ~2 ] gen ddy240max=r(max)
8 |- u# T) b7 z* l8 Y 5 I; R5 I# h& b& w+ l1 l
gen ddy240min=r(min)! t; x8 }6 W% a* u) U: ~/ j
8 d' l. T/ n0 m gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)' x+ D" p# v0 v7 q
5 X* @5 U: y) c; C1 S sum ddy240g" v+ _% u: @( Z- ^- J
" ^# A( N1 a S4 y- R& M* a8 M4 C( w gen yxis3=r(min) in 1
: D W0 |7 h; o . T8 J/ A R0 ~; {
gen yxis4=0 in 1
' T* r9 N! P- O5 p7 V
6 h+ ^/ \) z0 f, [* ] *ddy240g 6 Q) i6 f- T6 h$ f0 B# f7 V) D* ^
. S5 p; A; x+ Y K6 \ 0 [: A9 t" g; f* r
preserve 5 [# }$ }/ n( C7 p
9 a/ V0 Q+ t; ]7 k8 F
sum v5 [aw =avol]6 }; d) Y4 `8 K2 _$ i* z8 A" J
; W$ ?8 e% |) D% A1 [! v! q! U; w+ N7 N keep if dx240<r(mean)
8 e" M6 Q; G2 w9 h: [ 9 C' z0 W( A/ o' f- ` D- w
sum ddy240* j }0 E% D4 q! @- E$ R" t, F
0 ]' {; S2 s+ V% P- `6 {7 ^8 {
if r(min)<0 {
. u5 l. t' t B( W$ m : y, w1 i7 w3 H& s, e
keep if ddy240<=0& {9 M! a( M; t7 W5 M3 k
, M( [' ]( U7 h1 i) Y
count
5 p6 g+ I3 W* {) c+ Q' C% \2 ^
9 J; O4 d- n" z$ W4 z: a if r(N)>2 {9 P" E# v% f; G% N8 B- r% B+ T' D
5 l' W" ?$ V G6 A
pkexamine dx240 dy240
' Y5 L0 U+ E3 \1 D3 h- @) F3 P3 c 9 r3 L" [4 h* X
local tempminp=r(tomc)
5 L, m% ]; h' u; o9 L/ f ? restore 4 D3 o5 h# a& x! p
}
\' Z+ t) c& p; U' N t
$ t* [$ B& Z4 q$ c# v5 K, E else {
, o3 Y( j3 F. o/ Y8 b$ A9 q
5 p5 B! a) B7 E. e$ t$ q8 G% ` di "cannot find minp"4 G. h- F$ L2 h6 K; X# D
& c7 \6 ^% Y, u3 ~6 M9 c/ D
restore
/ n* F; T: I9 J( p+ \% O sum dx240
q1 Q. _% E; f- ~/ c: P; j9 l local tempminp=r(mean)% m. n' n# X& D- x
& t9 l9 Y+ K3 t8 f
} g6 U* K, t9 H; A% d* ~9 R0 a
}
: H. B ~& k( X5 L, o7 j& { else {2 i! W7 R6 E2 U% z0 R/ ~
; {! m" N, z" ^% f6 E6 v6 M9 N keep if ddy240<=r(min)
9 T# J/ ^* `' p3 U3 ^ " J, Z5 V/ W6 J V. G% ? {2 \
sum dx240
# L j; {; j" ^ D- H( d' I
. ?& S- V1 r3 @6 r9 Z local tempminp=r(min)
4 e0 o M/ H% |7 \0 N8 X8 C restore 1 g' d- c5 T/ g+ l2 x
}1 E9 O n# H) t3 x9 N. b3 k
4 Z5 B) v; Y6 Z0 |* Q8 K9 W7 V' A2 C+ y; C# ?& g, K
9 M* m5 b( q1 w' Z7 a- v# J+ g gen minp=`tempminp' in 1
7 q( V7 t! n4 S4 x *240 minp
5 W0 [3 V3 {8 S H
( Z8 i" Y3 E% H( f1 C
& l+ c" R2 y" P9 `8 `7 |8 k 1 I3 f+ ^/ T( ^( h6 Z! T; K
preserve ) J2 f" Q# d" c5 ~7 ~7 e
# J: _& K% z7 X! W sum v5 [aw =avol]
& _ ~0 @- i/ J6 A% W
9 P# k+ l) g3 ?/ Z; \3 w keep if dx240>r(mean) L9 s2 R9 G' f/ Y/ Y" n
! l2 U7 m! }# I" o& }! e4 y
sum ddy240
. S' @( ]2 X7 `# }
- } D2 W2 j3 _ D2 L if r(max)>0 {
. l2 N; g7 E) F! O 9 Q, U |" {7 J8 X2 {
keep if ddy240>=0
6 x, F: w6 I7 c" Q* i5 P# t 1 l% L/ ]* s3 b8 L5 K
count8 i& { W8 {$ @7 t7 b/ t- Z& c% N
/ d) F; b9 G: u* P1 w' M if r(N)>2 {
: M2 n5 K2 r+ D" _$ U& y
+ k! E2 k; k5 h' A- r pkexamine dx240 dy240# _' c/ ?$ P- L
7 d) r, e8 M( N \
local tempmaxp=r(tomc) - v9 j; u0 m$ w) V N- t
restore
) J$ \1 ]! O. E8 o }
# e$ Z1 x# l* S9 k" N/ j; d / j2 b1 q+ z1 W6 _/ T* d7 P
6 e6 U( L! E1 e else {9 A. W# a) Q$ w
restore 7 B8 _( J- {8 a8 b$ H$ B
di "cannot find maxp"
+ G+ r! x/ e8 B
7 r) E! {3 i# O% c
4 @7 \& g$ \1 X A# ^ sum dx240
/ t. A' s. Z/ t9 ~- \ local tempmaxp=r(mean)
% X( c% @ R0 m s. E/ r* I , o$ a1 |$ J9 A" a# J1 }. ?: W
}
& @6 f; `/ g( {& O+ i k % R& s9 t* W1 }
}
0 b# ], l1 }! m4 ?, M; i7 K- V5 ~
0 Y4 N- `5 G4 [( x* p0 q9 G" @ else {
- G0 L6 U7 K% }( C) f
0 O d7 W$ ^8 {5 I9 G keep if ddy240>=r(max). S. A9 b3 W% |, C0 U% ]+ u
! _. v1 |- d+ m9 \5 c4 D r2 R sum dx240
" N4 \9 i# J: P; S4 ^8 {* ] 3 x. E8 L; f8 y# ~
local tempmaxp=r(max)
( f* u+ z8 ~$ W6 A restore
/ o0 l9 v; E9 x }
% I$ M7 `+ f* H! s* ]! v
% y4 ?# \0 b/ L7 E# e0 j s" w. p6 j+ \5 ~ {/ M
1 H& Q8 L, R; t& m9 U0 [
- o! V4 \" [, S* ?+ k* f9 y( P
gen maxp=`tempmaxp' in 14 a7 x6 ]' M6 {7 r4 i
5 _ u' d* F! |8 M4 S3 P *240maxp
! U& C8 p7 L8 O 8 i7 ?. b" g2 R5 ?; U
' [/ K% V) i8 B T" R3 m *-------------ddy240pminp左侧高峰值-----
8 T H" D. P/ b r) W" G
0 s9 Z# G3 Y$ G, d) e, m preserve * r0 ?1 E9 ]( }, d8 h% W
$ O9 ?5 t; c1 a- T0 X
keep if dx240<`tempminp'
2 N: Q$ P" ^! R" s % k) E5 b- {1 n0 T3 `
keep if ddy240>01 z2 r' o6 \! F
, _; Z5 j C: V1 `: Y
count
( S% H! z% u' U+ r / A I6 S! V, L
if r(N)>2 {( R! v5 x) e' U9 w b: _6 g4 A
" c1 _& U, X& \0 M8 {. W pkexamine dx240 ddy2407 z0 n( W) T$ D3 n( l4 E
, N' @: t& L7 I7 S2 X
local tempminphddy240=r(tomc) . `0 e. n7 d- Q4 {/ E. \
restore
# t) H/ W; M6 r6 ]) [# A }0 e) R& {+ F- p. d
% c7 n8 H. t. n) M/ b else {
6 o& Q) S; B3 _0 r restore 2 ^! w1 X. d h# g I* Y& B7 u8 x
di "cannot find pminphddy240"
; B$ \5 C7 n" i# l2 Y9 Q2 A ' g4 G, P+ T/ [" _' Y
4 N+ p- A# ?8 A; C: Y1 O! ?9 } sum dx240
; V7 S0 w: L1 P2 t) Q0 d local tempminphddy240=r(mean)
m/ n7 I8 q3 K) |
' j% ~- L/ `8 y" ~6 [, d A; q& S& u! l
}
$ f8 Q6 m* F, k/ v" l; X $ o/ r3 }& N3 ~/ d
" V8 @/ w5 u0 I
* M& f/ ~' m) Y( F# |7 w- D* Q
r4 n% d3 R0 p0 R2 _1 T1 n 3 c6 `) [) S1 Z" s9 S' M2 N2 Y
1 X4 D9 n" R# d% b! W# T gen pminphddy240=`tempminphddy240' in 1
- n: _' X7 x2 a* q g) R* L
, f) }0 J& [4 {8 V5 k8 L2 h
5 @' s5 f3 A8 V% ^& J9 p *-------------ddy240pminp右侧低峰值 -----------------4 t+ V- c: v4 R6 H# N
preserve . D4 L b5 Q9 F9 h( O
7 V. j3 \$ E2 N/ i+ F2 d' P) Q5 ] keep if dx240>`tempminp'
( d1 R& A# q7 ^( f7 n. ] & j" @# J- ?4 @0 S. n6 x
keep if dx240<`tempmaxp') j* t. ]& j( [
$ b% V$ N5 p8 m/ x6 ?4 a keep if ddy240<00 b# z3 q9 e2 O$ B" U) |- B) u
6 B6 I# c8 |: e% D1 ^! o# o6 D$ p gen temddy240=-ddy240
. Z1 Z7 B ^: y, J2 h# X
$ @ F3 `. u4 w- t) i$ @ count# E7 H) H; p! j# [
0 ^& Q& m8 X- d) C
if r(N)>2 {4 R* ]! y$ Y2 Q$ w G# c3 g
9 s3 T" R9 w# m. n
pkexamine dx240 temddy240
( H- [+ D9 C3 M @$ C ; ^4 h9 \( c7 S M5 v% ` }4 T6 O r) t
local tempminplddy240=r(tomc)
: b5 i) E; G9 X8 j5 h$ Y0 f restore2 S+ Z z: A- W8 N; ], \; H
}8 v, @% n1 U, n( g9 l( h! H6 \5 Y
' z3 y' y) |* d. ` else {: N$ q9 x3 G6 A: x8 d* N2 R
P# G5 E) S( K di "cannot find pminplddy240"
6 Q1 h4 F' D; ], r1 z. g1 v restore
8 R) x' L! `7 l4 w3 n# C
5 c. L3 |, \; k, A" G7 E6 o6 q1 z2 W4 ? sum dx240
' C o) u6 d% U& { local tempminplddy240=r(mean)
3 ~) l" O2 H. L. u% ? ) S/ ^+ V/ S& B( R
3 I0 W9 B1 `9 O+ u* H
}- i- w6 B4 ]/ ]& W% t
( l6 x D8 d6 I - T! Z4 n0 Y1 X. K( d* }4 L
9 Z6 z) m. @. O6 P
! ^2 ~3 I- w2 s& L# W
3 ^7 I: m# @" A+ F7 @$ X" w& V gen pminplddy240=`tempminplddy240' in 1
' T7 }( t# `# k6 C2 Q# t/ T3 z
6 S* y9 q& K; z. _! g; D4 o *-------------ddy240pmaxp左侧高峰值 -------------------
) u* c3 M0 @: j7 `/ B0 V
& Q) Y" C+ q8 K. s9 _" | preserve
7 W6 h; z' R5 ?2 E% L( r& o5 o/ } & h) ^( ]& b6 U }3 x9 \ B3 c
keep if dx240>`tempminp'/ i! e( _, _) R+ \2 I5 y
; z% Z0 m* y# B& q# x8 |+ w keep if dx240<`tempmaxp'% z" o; ?% l" O3 T6 H2 o9 \- F
3 X5 ?1 i) ^( |! b keep if ddy240>00 A/ u; B: l! r( Q* Q- Y. l
count, t, L* r+ q X" h. w
7 E e) k+ K L
if r(N)>2 {
' {1 [ S& D0 Q! c+ [9 \, K
) K( r( [7 U" C+ p/ W& u- }$ x6 t pkexamine dx240 ddy240
" z, g* X4 Z/ h& l
3 M R+ o- U" I2 w. x2 R7 O: a local tempmaxphddy240=r(tomc)
4 P) a8 k9 n% O+ w4 F5 T( Z
& \& J. ?1 r( a- q' f6 x9 n8 y restore
& T' t; m* I5 T" n) h1 m }
. v" ?: N3 `" h u
1 S' q/ d7 T* W4 w else {, H/ L! H8 {$ u2 G6 x! E# r! _
4 f( B: G! U" U: T3 J
di "cannot find pmaxphddy240"
- F+ @6 T7 _) V: f restore
$ X+ `8 b: Z! J, P3 ~8 T % s; ]8 D4 k( @ @3 a# Z
sum dx240
# l7 X' o8 R# C' p1 x: j local tempmaxphddy240=r(mean)
& P1 f* N& K8 E0 R! Z
) E; C& h3 ~) a! h. Z8 i6 g, M) u
# N5 X2 Z a8 G% d$ f3 b0 H4 U2 b I$ n }% v" N2 \7 L- ?8 [
3 p \" j, E; N% i- p. d4 l3 _ : p9 E4 M7 r9 l' X
' [4 n7 M2 q& T5 m* P& }) I* i& h
7 Y* I% h/ p6 U( I# }4 k4 W7 o & M8 u4 r9 ~' t3 N- p
5 s4 I0 T% V. C- {/ L0 y9 p; \
gen pmaxphddy240=`tempmaxphddy240' in 1
0 ^* C) s) I5 j' h0 S2 r 5 T; j0 ^2 o$ F! v
$ c# x- |/ H; o' b1 s% ^
*-------------ddy240pmaxp右侧低峰值 -------------------: T/ e) c. y. @8 N( |' |4 f
, M% L9 K9 S- \
preserve
$ m3 F8 }* p6 }) |& E " E% h9 I" u7 j* r. W9 s6 F
keep if dx240>`tempmaxp'5 a" L' z3 i( f$ N
- j. g) [- h! }3 m gen temddy240=-ddy240! \& c: M) g( l7 s
* P+ M) Y/ F9 l' L" O: R
keep if temddy240>0% _# G& j \3 w+ A9 c0 |! j
" v, N4 p7 t. p8 q, M2 ~- A- f( |
count; ^; E: T8 b) z, R
+ E$ M7 z, Y* [, S
if r(N)>2 {" e/ r, [8 m' \
8 y# ]4 v+ G% M4 V; ]' m9 P
pkexamine dx240 temddy240
5 T Q& x, V' X% d/ k" p# U' J* ] * U- b7 B& M Q1 c
local tempmaxplddy240=r(tomc) 6 C* v, f% H X
restore5 {6 `: M# b8 |& W6 y( H
}
. n+ @. H* c1 y, {1 J ) {! N- r' y9 \' V
else {
# j; U" J* R8 d$ { restore
; `# U O& y, Y3 c0 Z di "cannot find pmaxlhddy240"
" l0 o" t0 I' g& [8 f ) E% H* {" i4 C# S) N& k7 L
+ u: X; r D$ T" W; ~. y+ v! x sum dx240
- Z: Y: h* v: [) h3 T* F+ E: Y local tempmaxplddy240=r(mean) in 1- f+ W& m" U9 N+ A& Y3 r/ w7 G' b
5 @$ L' G+ V7 U
+ M& g5 t$ e6 C- ~9 }: t
}
Y: U& W7 `7 D& O' l5 `& q2 ]
( {: V: }( X) h0 i% o2 C: ?- X h2 T8 A0 V; H, p
; ^7 `, X. T) ~* s% I 5 v" _) F9 l* H |% i0 F9 y+ E, y" v
l: u( W0 K: Q# \3 K9 \+ r* _
( v6 P, p- L8 m9 @, X1 j gen pmaxplddy240=`tempmaxphddy240' in 15 e- R; \* E6 ^+ T8 w3 I* r, P
* ^; j" a/ ^8 o) K4 ^/ k5 o
*-------------------------------------
% g& D6 m! ?& G3 _% o0 M
, y* `; n- O+ d2 n8 T gen price5d=v5 in 1/20
) c' r* `, J, d; i3 z: c
$ f) k) o0 q* v7 X gen price5yy=_n in 1/20
7 y! ^) j- [" |0 F ; ~) I) N7 w, Q! R
gen price5y=price5yy*(dy240max-dy240min)/20* D0 B) U8 C5 b, ~2 w$ y+ Q
# a# J: n3 f- |0 p" M+ z
*price5y &price5d1 D" u) W: ~- r5 C
. O$ U I: p1 Y7 t
gen priceny=price5y in 1
* |; E* [1 C/ `3 ?; C % ?- |) `0 O1 k, X, o
gen pricen=v5 in 1
' y' i4 e+ C! k4 P$ N7 q: ]
1 V+ m( x" E, ` 2 o% j3 J, V3 w, ?
*priceny &pricen/ L H. b8 W! K. m6 U
2 `# R& f& l' K' u3 ^* j' E. @8 o( z 3 [) R% ]4 w% y
*-------------------------graph------------------
3 F& s; s/ B0 ~$ N
3 _+ Q6 x2 F. m+ i 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)! U! A; A4 ^: u! t, k3 l6 [3 Y
% H9 {/ f1 G9 F0 M1 Y3 X! H5 Y
* ---------可选项目----------------------+ |! l; ?; g* }5 W* n
* I# O3 _) G* `4 s, x1 x3 \8 I6 d
}$ k w' z( n. @# S* r. Y
end& E# \+ ?( G% X" x$ d
|
|