|
改了一下,这次运算应该没啥问题了
4 o# J* Q9 [# s/ J
( u) D) Q$ j% }; S; y: c4 k8 E# F% z- W t% j1 g2 M
capture program drop hello
3 {' W$ x- ?3 l$ }0 T3 {( P; o: N
* `! h% G/ @& G/ }2 k, Tprogram hello
/ `! N, W g, U$ C0 u% V
: q; P: i4 U* _- W( T3 f0 z# o7 b6 l V quietly {5 r" k, o& ?, m( }* ?9 n! T, a
' P" @# R8 j P. D' R4 ?* x V8 |4 B
clear& T. C* z; p# ]
# h v5 P: _7 D# }0 G3 d
cd e:\finance\stock\20110101\source
?' S5 \( Y! c4 w r1 P. F' _/ \" K' ^4 Y
insheet using `1'.txt9 [6 k" O- T6 R; W- R. Q
- e5 g& g3 j/ J2 @' S7 I
keep if v5>06 K! Q$ ^+ d, e4 Y
" v% Z/ b% e5 S, E8 S gen vt=_n
6 x) t8 ^; s/ i3 B8 {" B
0 h& I# q% _& w2 S* Y% r7 |( d" I( o tsset vt
9 B5 [2 [1 N) D. ]4 |6 | k
, P! E& S1 Z n# W gen zf=D1.v54 X( s& d J3 V, y/ ~9 Q4 `& V* b' |
( [% ]: P$ E. l8 K" V
gsort -v1
% e1 d' i' O; ]
$ ]. J. h) `" j% ~4 N) O2 f$ E1 G" J gen avol=v7/v52 z1 ^- ?' Z+ U, E" p2 S
) t) c* s. H3 M5 |; X2 d8 s keep if avol>06 y! g- x; f- d$ d4 r
0 w, f' `7 ~; I7 a7 ] drop vt! x( \# ~( j1 M% B
1 K3 t* O1 J9 T1 X1 p1 i2 a6 b
gen vt=_n. l" l ^' T2 w* t4 R& l
! ^. k' m) S+ {1 ]. s9 G
tsset vt, B: V% [! i/ j2 @" h
$ Y- }6 g8 r3 n7 f sum v5 [aw =avol]: G x/ c6 f/ f) n$ p- }, y
8 {8 Q1 y! [8 `6 \ gen amean=r(mean) in 1
/ f9 C$ x& T+ Q. y% M. B' u: q : R, J2 P* L( `7 d( N
* 总加权平均值 amean
' a$ E: B& X) `6 { ; I N4 N5 Q/ u- J% I9 V0 b! E
) A4 P2 ]/ {4 K2 ?( a* q _
keep in 1/240
0 A2 U- F; K2 W' [$ P4 L; K5 G. G
0 v! y2 Q1 }1 Q$ J: i sum v5 [aw =avol]3 C% y* k; {+ `$ Q7 @! k% ^
B" G1 s7 ]$ ^+ M gen mean240=r(mean) in 17 Z2 P4 j5 v7 h: C z% c
! {! \$ h7 ^" ]& }% s4 Z: q *240加权平均值 mean240
) x- X# r3 X; k: K) h! m) a1 g0 B- g
% c% h- y% U# s+ ` set obs 500
j' o6 u" h3 f% J5 Q; O3 p# [; v k j5 J& X. Y3 S0 p
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 z1 o7 I% a# T
3 Q% v- b2 y$ j4 Q. l- G: U( x
*240 kdensity(dx240 dy240)
, s% U" W' q# X- c, S% Z' b! e
$ H* }7 w3 `1 U1 A6 J* k sum dy2401 q4 q# z9 z/ T1 }% w- |
/ s8 `0 w% p( B: P0 k
gen yxis=r(max) in 1
# F7 F/ B3 u4 q % _ h- v7 z* W, L# Q
gen yxis2=yxis/2
2 B( p2 P- V* U : u: d# K$ c# O! s: o/ q$ A8 s
*yxis4 ^/ j! ]8 a% O7 Q3 [
: k9 L0 y5 f- R- N
gen dy240max=r(max)
% b3 Q7 {' y+ H: Q2 N* _7 f
7 n( T0 M5 r8 j gen dy240minp=r(min)1 G5 W4 u& ~9 J, j' z# c# v) \
# W3 S( ?, j8 }8 W, [
gen vtt=_n! ~/ u1 V3 N$ A5 Z& b# b. R8 R
; D0 ^' \. W s( e3 F tsset vtt
8 V4 _( X8 Q- _# U) R
8 T, s4 q( R; N7 y4 a( d gen ddy240=D1.dy240/D1.dx240
, n7 [: u3 D- h7 g3 L( Z5 J! c
" S1 O( C5 `% C b sum ddy240
0 G/ J* q) l: c3 r
% g3 O1 A7 o3 T6 S {, c gen ddy240max=r(max)( ?0 q) z5 {6 Y# j
! Y6 S: N& S, P& x- \! ` gen ddy240min=r(min)4 h" @! {8 j7 g3 t* X
7 N- _+ o0 V% w" r- ^ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- t2 e/ E+ h3 U q: A# K8 {
0 L/ l2 \& @4 y+ [
sum ddy240g
, ^- Y$ B4 j- o' Z: r3 z & K9 P+ N6 H) n8 B
gen yxis3=r(min) in 1, o+ e7 ~; ~. @) e
8 v# k E6 l; X+ G! C4 H
gen yxis4=0 in 1- p3 U* ~ p5 s" A* n+ S: s
: d$ L* X; H$ z1 H# | *ddy240g
# O& v7 \ ?8 g, ]
4 [6 ?! |& r8 l+ G3 n, M* \* A8 f
9 v! }6 I. L& l! a& I; a; a preserve ! T* @. U3 o0 v
' f9 ?9 i: `* T
sum v5 [aw =avol]
: i5 ?+ _; z. \: W: Y; H # j3 D$ Q4 J# s0 c7 x, a
keep if dx240<r(mean)$ M {9 e. n: r, \
b2 _& `, l# X2 c0 b! o
sum ddy240
, i1 j$ Q z/ s/ S ; A6 k2 Z j: O6 S
if r(min)<0 {
+ d* E3 W5 K! L: B' b \9 a
) r1 _1 @1 K- N& w& X9 O keep if ddy240<=0
5 h. J1 m' j5 t* e. k7 D 2 \5 f2 \% D. a0 N# a
count
+ R" i7 K' \6 g7 N2 t0 ^! v
! E9 Y8 j: U6 t+ M- m" B' f if r(N)>2 {) D: s' d6 J2 P# G3 q
5 ~. |) `% H _7 ^5 W pkexamine dx240 dy240; [- x- S( c H& N2 R" ^/ W6 p
! L/ W$ {+ c. k# k+ ?
local tempminp=r(tomc)$ c5 \$ s0 t. l @, s. v
restore
) r% Q+ \0 U1 [ }
* E' x+ S6 ^" Y! A$ f 5 H! \8 |! O# U8 n
else {+ U1 X! W. b4 N$ f
- c! O3 I8 V, [4 K: e di "cannot find minp"
- W( u+ ? ~% \5 G/ B) M
) W8 S4 }0 T: ?; B5 Y: C) } restore - l' {1 d6 Y5 _
sum dx240
5 X" \* i( L$ d% n, |1 ~ local tempminp=r(mean) E8 C: e9 r- m& U, q3 p$ D- H+ P
# ?! D4 o5 o3 S% A" z) X
}! m/ H' b: `% ?2 x5 P% \3 v
}. O: v$ P Z7 V7 @9 k
else {& c3 \( [6 ~) T3 ~+ R8 u# q
9 R1 U6 P6 s# j$ I, Q
keep if ddy240<=r(min)
, r7 ~( N. ]! S% f& X% c4 K/ u
; P# v+ ~ Q$ D% J1 T! q sum dx240
' _* E$ w0 I5 n+ k0 ?/ d ; L7 [: e" ]0 @* g+ s, w ^& S; ]! q
local tempminp=r(min)
! b. a+ W, f: ?( M4 m& _# J) H restore $ D9 y# T* N- u( {+ ?3 l
}7 U% U3 t1 _# L; g# o* t2 H
6 u7 ~ X3 R. P) N) O2 ]! v
7 ^7 x7 h( a4 y8 D9 k0 X/ Q O$ k4 Q* P) D
gen minp=`tempminp' in 1
) ]: ^2 t) W n6 X$ d# x *240 minp# D0 u6 D+ i6 A2 @# r2 F$ u
" \1 e2 H0 N3 h6 Y6 q. H+ h: ?6 y' o% Q6 q6 x& A3 X% |) p, L2 x
& {( l, p; l8 Z% D( O+ Y
preserve
' W, A; ]7 \5 C: d. i5 K0 z
]3 P) Y) T+ ?& w; s" I sum v5 [aw =avol]/ s7 b2 T, P8 O5 i) s2 p
7 P8 U; k( I( H* _
keep if dx240>r(mean)
2 f+ e+ w5 [' s N5 x
# I6 W1 I& h0 b/ |% a sum ddy240- i" s4 A4 @2 e: s6 `5 c; C& q
1 A! l+ }. Z9 S+ U/ a* A, B7 y
if r(max)>0 {
# W- l5 ]) D& L/ I& k' A$ V " H- v. v, s6 Z/ g) Z
keep if ddy240>=00 a1 }7 }% b- {7 O
: V3 _8 h- a+ d$ q3 d; h
count5 Q& C, A4 f; O$ @3 |
% T/ N& h9 B* A4 {& w9 y if r(N)>2 {: H5 o; i$ o/ @' o2 M' ~3 b
# n2 z$ M8 {$ i0 v7 B+ f J; v4 T8 S) W
pkexamine dx240 dy240( F' }8 x& E, M8 ^6 S y& Z
; `$ y7 [; R+ _4 ~" y0 F) c
local tempmaxp=r(tomc)
$ I/ f) h" T' ?/ S# n0 F restore
. H' X! N. g1 Q% w& V/ s }
]. u) C$ n! a# V% q
* B4 q0 X9 y2 o% [1 R
, w2 s( K+ ]! J9 A/ j8 x% c else {
7 s( K3 i$ G# `6 Z. R' f m5 M restore
& f& [: e$ [* @; g di "cannot find maxp"; k1 Y* m$ B+ S8 ^
* {% d: H& ]0 d' n) u
2 f4 A+ [- q! U sum dx240
+ H0 C' u/ m3 ? p local tempmaxp=r(mean)
7 j$ t% C, d4 u& B0 Z, s; C S 6 D, N: g; k4 F1 U9 [
}% d: Y! s3 |$ H- D# s2 `
8 K, W2 V& ?6 D. s" ~- {, M5 Q }8 P3 j$ U. v+ [) u& ?- s- y1 ~
2 y# d$ x8 h/ K; s" } L. u7 G7 j, F. `
else {9 i& M; N( s5 o+ `) h5 a. o' y
w1 K; \* t9 |: x! X' l5 K' b keep if ddy240>=r(max); I" t$ r. X* Y( f S* `
( a- h! D0 g2 ^+ u* C3 z3 w' r# \
sum dx240) B) r2 i( Z! i) c4 b3 n5 g! Y
7 s6 ^" E& |0 s6 I" a% I! w2 k local tempmaxp=r(max)
" H, y- r b, \: G' o% S restore 1 V2 T3 c7 I% S& g- Q+ K, p
}
2 b/ ^7 D/ r& _2 z0 U- e 4 X* J$ u0 b: {+ [3 E
+ t2 {* b& V& e i% ?/ S
1 J6 j" l/ y5 k, P- j. u2 S, w& _0 G/ ?0 i+ B4 I
gen maxp=`tempmaxp' in 1
+ P5 m. o: |, k9 } w0 N; X
1 ?4 U e& j/ L; a *240maxp
* f/ R( L& N7 t$ {7 q/ f" X
8 n. l/ `* X# y8 L, q& Y8 M & x% w2 D$ f3 c) K5 ~1 x
*-------------ddy240pminp左侧高峰值-----& e W3 X- P0 j/ F! T" r1 q
8 Q$ p& n2 O" l8 z2 u' n preserve
6 t& Y( v1 i' j& V& f% @ 0 Q5 Q9 U. Z0 \7 w" V1 w
keep if dx240<`tempminp'+ y! ]9 {( x( Y9 e! v
$ d1 P5 ?. e& K1 i" U7 y
keep if ddy240>0
/ C" s8 f& k* l. U' F0 n7 Z " X8 k+ w1 U" k' ^+ c9 r& G
count
& ]; k9 Q0 d$ P
% ^! `) V3 Q6 K3 d2 w& @; _! ?( k if r(N)>2 {
* q* ~: Z" r; _ P# R) x" ] 1 Y8 g) x0 ~! d
pkexamine dx240 ddy240
: l0 p8 ^4 F6 p3 Y* t S0 I ) N# l4 D/ a1 W* T9 [( G: E$ a5 c
local tempminphddy240=r(tomc)
! B8 Y- B! \3 S- a- y6 y restore. r" D9 R& _7 S: G0 U1 `! s9 ?1 P
}/ P8 D: M5 H+ T) U
1 R" T( A2 D2 `6 ?1 f
else {1 X! D# z2 p& Z1 V! |: |
restore
& t- B! d! c% q0 F- C: H di "cannot find pminphddy240"
3 }7 E b |; R2 |# W ( j+ y% N" Z; _" R
3 G$ u0 v& D x. T sum dx240
( l: c% y2 T# g7 i. H/ h local tempminphddy240=r(mean) : j& k/ D- x3 {+ _' I, H' f7 e
7 y- Y+ E% c9 ^8 j% _
+ ?" z/ K. B. m# K# J4 Y) z( [ }
0 v0 N, b4 k& o0 N% y ' j4 e. e1 I4 @1 d
) F( l( A3 J6 j 4 M; [+ d m- q2 c5 I# F# R) ]
7 W: n" k( ]+ a6 y
- D) u/ l) w1 [' a& H
9 p' P1 _' | S+ A5 J gen pminphddy240=`tempminphddy240' in 1. |8 b2 [0 T2 k/ \3 L$ {
1 S" ~, g1 Z; I* e% K
8 Y" h) x3 z- X- a. C% y- k2 Z
*-------------ddy240pminp右侧低峰值 -----------------* u6 H& _, }% P
preserve 0 K4 }. ~! S2 A3 y0 y$ ?! D3 u
; [7 c# v, Z ~- k5 u keep if dx240>`tempminp'0 v- c5 V* e3 n# q. b6 a5 r0 k
! T" w" |- I+ }7 B0 [* \ keep if dx240<`tempmaxp'/ x1 J( M7 u. C. p. d
# q3 c" R" l! q* l: x keep if ddy240<0: G. d" l% f! Z" |5 R
& w" o4 P/ f6 | M2 Q. x
gen temddy240=-ddy240
0 i& _ D+ f5 b7 o! N4 {
* T7 q# s7 c+ b count8 T( _9 v: ]6 z0 t' p d
3 m; D1 x3 t) {! D$ g5 w6 b8 w
if r(N)>2 {5 V7 Q% E0 H; f& N: q
1 u; {6 a% W( i n pkexamine dx240 temddy240
) i! D7 o$ d7 M" r
b$ }/ {- i* R# g3 M2 a local tempminplddy240=r(tomc)
" w+ d! c5 J: O! l3 _ restore& h7 |* }/ s2 Q; w* v$ A0 s
}
! t; s, a" H5 V4 y% K5 s. ^
' O' e8 G# H$ U4 G: c# O else {' n" R! ]9 z4 s+ \7 s; x2 Q
; u5 f: ^) Q' n% {" E di "cannot find pminplddy240" S' d: \3 S% @2 V' U# ?0 H+ d
restore
4 y; i1 Z; q5 W k, t3 m+ k 5 } t$ v, G T9 ]( q- P
sum dx240
) u4 X7 c" a3 v0 R" N local tempminplddy240=r(mean)
7 V& _9 i% K5 k+ Y0 E ( V$ E0 S+ g! ~8 J) B5 x0 U
* \% Z$ |& V9 N$ M' n
}
# R2 D9 k4 Y2 G/ X" T" s
3 k9 `0 P, \) k" q+ F- m: Z, r) B ' {4 P6 _- @6 a% h- J3 |
) X$ ]; |6 l4 S$ N. H' v' u# S
, N# I9 v3 E$ s* q2 @3 b" o$ [* C" M
\8 K/ d6 V _4 N gen pminplddy240=`tempminplddy240' in 16 ~$ {& `6 ^$ \1 v
3 d- g9 d6 u& ] *-------------ddy240pmaxp左侧高峰值 -------------------
7 Y9 j6 Q% ? j6 O( M ( M% D' _$ i& ^, G* Y" k: x
preserve
, d- d0 ~5 ?1 Y+ f s- `; N
! O: g1 j: T# ]5 L q0 ?# L: s* t keep if dx240>`tempminp'
* N) q) ?. G7 K# L8 f* N - g9 m7 w0 H/ h9 p' A8 Q: I, A
keep if dx240<`tempmaxp'% M0 J% ^9 U1 @ L5 _ s
6 D- U# G7 C: z. E7 X
keep if ddy240>0
4 f3 m/ z: Z M. ?# m9 F/ z count
( k) d# I1 [, W, M& @8 t
2 y! I7 a w% C3 l. \3 s( W4 L, v6 K/ G if r(N)>2 { ~2 J- n# @# _& i( H! C' G
$ d$ G7 {, F$ H
pkexamine dx240 ddy240
! v# k h3 }; j0 y3 \0 f% E/ G
7 y/ e- u& r& `1 S1 y local tempmaxphddy240=r(tomc) ' J9 @( a' a* g+ p3 l- {
% Z* S8 \5 c: b0 J+ V k# Z6 N. g7 i
restore0 y* D# M6 f; b, w$ s
}
1 Y! O9 G& }1 w. D. ^ ) A: U: j9 p7 F6 E' i
else {+ n @- m y6 R9 g3 t2 k& a
( @6 j* O4 H% v: T8 b
di "cannot find pmaxphddy240"
7 u/ [. g' Z1 J' f+ b restore
3 g/ J# [5 J' j! O+ I/ K- t
2 ~5 h- H+ G/ T% y2 q8 M) z& l$ u sum dx240
2 M: h3 F1 a7 { local tempmaxphddy240=r(mean)
& [& n$ P [9 e' E: x2 o9 l+ \8 Q ~) E
7 D* t! K6 H+ Y F1 u0 n
' J( g1 j7 K8 F0 g }1 a6 j5 f9 I( N- o& _
* @0 P, S$ B, D" Q- L
% n0 V+ h7 T! Q1 b5 [7 Y
$ O: _: G: J: o 2 Z) k, A( y1 Y0 ~
1 n% F% S3 }, o7 n
) R! B0 [$ R9 c: `. k+ g gen pmaxphddy240=`tempmaxphddy240' in 1
1 Q( h9 e& K0 v6 o4 L' ~$ L 6 {2 C; G, ^: I( c+ U4 p1 a
7 j9 r3 o$ | x0 }$ q& ~ *-------------ddy240pmaxp右侧低峰值 -------------------; ?; O- K! M3 E4 Z" ?3 v9 B
8 W) i; v% \4 Z. R2 I% C
preserve
! V5 S, T. c* k! Z( ? " j/ R+ Z5 a% |$ c8 Q7 U
keep if dx240>`tempmaxp'" y# Y4 U- T2 x
" A0 W9 ^2 {# u( x D: l
gen temddy240=-ddy240- @5 ]( O/ F1 i T S \
5 W; s2 w. C% _$ K2 H# p: |1 _; T
keep if temddy240>0 w* X3 [# A f- w& C
7 m% O8 a# R% f1 I3 V count& r1 U: z1 l/ z/ e; n
+ |7 C7 C. S& H" a
if r(N)>2 {
! ^* `( T% _# u 4 K# y7 f5 I9 q, r9 E
pkexamine dx240 temddy240
1 v0 h) w1 h# n
# [0 q4 X) z9 m local tempmaxplddy240=r(tomc) 6 |! H! Y7 }" J; }9 m) A# d6 Q
restore
' j6 H0 r1 B$ y }" B/ V3 w5 V/ o6 E5 }, ?3 O
; y2 e1 E, Y2 u% L$ j, d
else {
4 F! `2 P; p" A o+ V restore
) r8 Z1 s/ w& Q: A1 Y& d di "cannot find pmaxlhddy240"
, m& L z! G; z: G q4 m H: V) \% W) S9 o. P7 A
8 u) W1 v( d0 h2 U
sum dx240
1 d# V' ^% v* I+ ] local tempmaxplddy240=r(mean) in 1
6 b, ~) j! v2 E, @" q$ l1 f
& H" J7 O |* U* F
( h9 P- F; t. `5 a7 t) t Q }, }) \+ L9 I2 E
( {$ _4 T- b2 F1 u ; g* j) _1 H* w0 L& B: \
. b/ {! ^6 g2 r0 i: y' f 5 E- y/ b7 N$ v! u
& S" ~- k: r; ~7 ?9 k1 n
7 `1 N% Z- u; E& Z g gen pmaxplddy240=`tempmaxphddy240' in 1, j& W/ ]9 `5 @# j7 B6 Z; |
+ \3 U: l$ \3 w8 F, e* D *-------------------------------------
+ [6 z# W" y8 B" { $ t9 q* I- _. `: o9 y7 y
gen price5d=v5 in 1/20
9 L Q( }, b" l! U. c
5 K" y8 }( `9 e( `( B7 g6 g gen price5yy=_n in 1/207 f& Z! ]% c9 m7 \6 ?1 o
' }) V6 w/ ?) ~/ p4 L
gen price5y=price5yy*(dy240max-dy240min)/200 N) d. E6 ?3 l0 |% w4 K
" A7 N8 r5 A1 c& Y& G, u *price5y &price5d
! T& z+ G) K0 ] q, ^# L" s , p) S- W) q- I# h4 T, C
gen priceny=price5y in 1
. |7 t! W! ~+ r! X9 Z U
" i6 d. L, [# [ gen pricen=v5 in 1$ A4 v8 j& o2 P; U1 z
" Y& c) a9 d# b5 l2 T7 V
! S' c& w. ~1 E *priceny &pricen
, |. ^$ m' L+ N& b7 {- O6 l
& U6 M# g- c/ G) }, O 1 G3 r* I6 s$ i; Z+ Q5 R* B; B
*-------------------------graph------------------( Y# z' e4 T4 `) B2 I+ l' ^
! Y7 J( p* V7 N1 b2 I$ F
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)
2 C3 x5 h+ M- v2 I, k% }1 w3 Y$ G' F
* ---------可选项目----------------------
2 D" \8 V+ k5 F2 [8 s$ y, o" X8 I8 h1 t! y1 x+ k. r# n; t! U/ I
}* Z. F. y7 E; q. H. @3 Q" I5 V+ i
end
7 n$ P) _; a6 u4 f |
|