|
|
改了一下,这次运算应该没啥问题了) |4 O3 }, d5 m% E" ~) Y
$ |! |8 Z2 o2 _9 T5 ~5 [% I3 h( k
+ j' x$ }# n/ Z& `. x0 |capture program drop hello
- o* t' K/ x5 f3 L5 [. y& T. d7 k6 p* E2 G7 Y$ h- y
program hello9 {7 d$ _* G) C, x& t
3 p( f* T& `% A; S/ r! t" }% L quietly {
: V5 G2 a& d& }) q, o# N, e; E7 S- ?# o
clear
- a5 F1 V2 E$ F) l/ ?/ O/ K8 x9 Q1 Z5 A: \% d: \
cd e:\finance\stock\20110101\source
2 L, A. ^( H _8 O( j w( D+ A8 u3 s! r- ^4 {) e
insheet using `1'.txt
* `! a! g. E8 { m, [$ r' S; U1 k! b% p4 x5 Q
keep if v5>0* ~" v8 C. h4 x6 q5 D9 T$ I- E3 Y
8 z& S! W6 R& m
gen vt=_n
$ |4 x7 B1 Z" N( x- Y0 [3 t' C# {
! X( j! I4 W. Z) l5 @3 i tsset vt
: I# }+ P7 }1 m/ S4 ]$ _
) I* p" o1 ~0 f$ L, i& m gen zf=D1.v5
- s/ {+ H% \! Z5 u+ @1 g1 I, L* |/ f; z' Q
gsort -v1
$ Z$ g5 N5 f8 o/ X4 H6 b! v! G) Q+ Q H! ^6 v
gen avol=v7/v5
3 } m- `5 [" \: Q Z. M3 h ; X/ G* O. q0 _. F. Z5 G6 r: M1 u
keep if avol>0* D( N' |1 W% r! D
9 G* ~* z/ p5 y2 D# V( T+ r0 h
drop vt( l' E( r4 B7 V5 F; Z9 s6 _
# b' q& g8 o, V& |( ?( R, w3 f gen vt=_n: }: W# Y7 s5 g A
* C7 g4 O+ F1 M+ p4 \$ n tsset vt4 ]0 Q9 d1 T& S, k! J. H
! X: x. p8 F- @4 W, F
sum v5 [aw =avol]% O; e3 q& S3 I: y1 v0 y8 m
$ f& P& C5 M$ `0 o
gen amean=r(mean) in 1. I7 W ]1 E* V+ W7 r
, u @' M" d+ v7 e# m
* 总加权平均值 amean
; n* g T3 C% ?
2 G% }/ t; I$ d3 k4 k" {' e, x* T) X
3 y& Y! c$ s) y3 e. r8 f0 x+ f% l keep in 1/2401 x& X, O% T. B
2 p0 N, [3 X1 T4 l4 t5 m4 a" f sum v5 [aw =avol], G) u4 a) X) P& o
! q. j s# u8 }& i0 @
gen mean240=r(mean) in 19 z! ~) r, K# M. p1 Y( T
5 M2 X( A* P+ s4 s7 c; [ @; c' q
*240加权平均值 mean240
# \* e8 p+ [: \+ G
' e1 c/ }$ M) l- M set obs 500 + s# N* f/ m. B
k1 g! [% f# Q. s9 `
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph/ g0 u. |4 a1 Q* m3 P6 |4 }5 N
0 I2 @5 r! S4 D4 h+ ~/ P) v: ]" Z- o
*240 kdensity(dx240 dy240)8 D* r5 {' e _, V
3 `; `- A4 J, k9 \' q# [) a sum dy240
0 w; `3 A0 o9 A3 y C2 v
; }8 y: W2 V. |% D f gen yxis=r(max) in 1
5 x, @; p$ N/ U: b- C. ]8 q
& z, G$ I& E, z s i- C gen yxis2=yxis/2
" n8 ?. @" \9 G2 b
" @# ~2 |4 f2 |0 { U6 ]) { *yxis
6 l1 ^$ X6 T% ]8 s) M; g# m3 N8 E + f ]0 Q7 @. d1 t* p1 R7 y
gen dy240max=r(max); ~+ b/ h# A4 E6 @
0 o2 W" Z7 l4 E7 W9 r5 [ gen dy240minp=r(min): b6 M/ E) A$ k( k
: ^% {9 f+ s; Y. _' o
gen vtt=_n
# w3 Z, b5 b* P
# H' f' V% }$ F: q$ V, @" j/ h tsset vtt
. u) P- C/ K8 n% M' b1 g+ q3 R2 a3 S M* c; B
gen ddy240=D1.dy240/D1.dx240
8 c. D# ^- Q6 y8 H" d R& x$ \2 ]+ t- j7 p, _
sum ddy240
3 w6 o: o* l1 }# G7 [ ; q: h( m% _# T( [, N; J S8 w
gen ddy240max=r(max)- j9 Y: Y/ u( W0 x9 N
: e2 l _ J( v8 y {/ S
gen ddy240min=r(min)
" N/ O8 E3 R( _" m5 ` * s) S l# F" ^. A1 O+ l0 ]
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)2 ^" c6 W3 `0 c( G
' u+ }; \( [) Z sum ddy240g
+ b' w. n) e: W
. f0 D$ C! b& Z: a6 ? gen yxis3=r(min) in 1
$ F0 r8 T) w3 m9 I( i
/ x, l: I' @% q# G1 c) P* U gen yxis4=0 in 1* E" x7 X0 c r6 W# H# ?7 g1 o
: l; s4 I% C. u
*ddy240g
2 B) q! X. {! h% g
6 Z# G4 S' {4 }% T' \* C0 N ! I: d& j/ c9 i0 d
preserve
8 [$ M5 T* U6 \. M3 p8 F & r Y8 Z$ u- r! G- _- X! Q
sum v5 [aw =avol]
. O5 k2 z3 Q0 A6 O" B ] 8 x8 t, L, a: C0 K
keep if dx240<r(mean)$ b7 j: h, H* t' F2 j, O
' j5 \1 \" V+ B, ~ U# I5 M sum ddy240) r' I; {2 }* P9 q9 ~7 Y3 }
8 U4 N0 e2 F# ~7 a0 z" x if r(min)<0 {9 `1 T& M t4 y* W
" h- {5 N# D2 j/ [ `( a
keep if ddy240<=0
. K; O" N+ v \) g5 {) _ : D, _( ]) _& h) }
count8 L8 F3 u5 ]+ U: J% B7 Z- c5 J, [
8 f1 {# @1 U& }5 a- m# w# {
if r(N)>2 {1 R1 y- m$ a v' \5 v- v
7 D$ w8 W3 U3 I) ~: o V pkexamine dx240 dy240, Z, R( u% L1 Q& N' a9 A
& _$ z1 H' Q/ ~! I; ~ local tempminp=r(tomc)+ ]8 G7 O0 _0 E3 L# z
restore
+ ~9 F0 l+ J# V: M( l }* R7 z8 {: n, v( U0 G
4 g: n) G C( L! Q% H else {) b) \' m p5 i. Z6 [
9 {0 ~; ^! P; B- J
di "cannot find minp"
7 H& N3 I9 a7 S5 s, d
) f1 A, S) ^0 k- S% `! P* r restore : {1 g3 v, u p
sum dx240
& N8 z) b) W3 h8 O( ? local tempminp=r(mean)- ~) P( ?/ o, F4 C. S7 I
2 h& V2 G- \9 ?" w- m* h" m }
: m" T5 N$ y0 W8 t" B4 S+ t }
) D K# U7 Q: n& C& {* m% y1 z- m else {
- t9 t, f0 g% o- \. e 8 Q* m7 e' c; z# u" r
keep if ddy240<=r(min)1 L0 H" Z8 ^5 J* W# l
* ?8 T; k& n) w- Y! c
sum dx240
" y! d# F, B P) B: F( ^, |+ J $ N/ Z& |8 r7 ^2 i# z$ `
local tempminp=r(min)
8 ]7 _. W# D+ K. [ restore
6 V9 Y. K: S. e }' h/ v& }1 a; `' q9 q! R
2 I/ A7 o3 [$ _! j+ Z4 ]; J. n. j
# j# S$ T' W% o6 T4 @
P( S- y/ F# l gen minp=`tempminp' in 1% h1 A d. a2 {- V/ d
*240 minp$ v- O- ?, z) X8 t( ]1 ]- r& C# W5 @
1 ?8 J. |% e' u
( f1 |( C( n9 O6 v8 j1 J+ c4 D
7 k' q0 k3 _1 w, U9 _% U0 b4 C
preserve
8 H7 b2 E5 G7 k 9 |: ]1 o& M& Y/ Z7 K
sum v5 [aw =avol]
/ y+ n! L: Z8 W( @
; j) O c$ r+ ]: G$ n+ V keep if dx240>r(mean)
& Q, o$ i j6 G/ N ` q3 p9 S. v& F
sum ddy240
+ {- a+ C" z2 P" ?/ P! w, h+ z- J
: u( n; r0 t. u5 f# C& F if r(max)>0 {" {$ H1 g, r3 K0 J
8 a0 t) P, l0 Q1 s$ m
keep if ddy240>=0
7 g( J* n1 F+ X
- Q! [! S4 n( _2 y- {8 R count
9 a4 Z/ X0 l9 }
- H( F8 M3 ^: R* e if r(N)>2 {( S# U6 E, ^# i5 K" s. [6 k
& V: z; ~4 i! _ pkexamine dx240 dy240
* i! E* g g) }7 N7 p . O$ y' F+ j+ }$ A( H
local tempmaxp=r(tomc) 4 `9 Q5 G! V! [* v i2 w1 u: _
restore
5 C# _; W! t. B) E }
) n/ c1 E( {: k 0 _' y- `; p7 ~, `- A; V
+ q$ {1 d1 F+ J- y" Z( h, D else {% K* v5 Q6 ^! ?- C, o% T- |5 a
restore 5 z `1 \3 o: `0 ?- Z
di "cannot find maxp"; T( z) l% l& h! h; A
+ @/ p& v- c5 C( ]) k
3 J1 D S3 s) V! C' L- t. V/ p sum dx240 T4 }$ p/ @7 M5 m
local tempmaxp=r(mean)- p% P' a+ \# e) ~3 j0 P1 E
& _9 y0 g) c8 p }) Z3 h/ R, B) n# q9 @4 U7 ?
3 J( A8 J4 X+ @+ A
}) ^( R+ q4 Z9 c5 U
# ] h9 R9 Q/ `' ?+ F( e2 r
else {
, C) M; x) V! d3 m) u8 _% [1 h
5 i+ e: G3 o7 f/ P/ T6 S+ O) W keep if ddy240>=r(max)6 s0 o5 @9 z% f1 y" A0 k
2 w$ N2 ^' J; N& C+ k; {0 ^7 g* u
sum dx240
" q/ R( H+ h* N' ~+ Y0 X _/ B* e% H+ t; E' h$ S
local tempmaxp=r(max) # o* b% j" ?: l! k& Q) o4 w# ?
restore
7 M* S0 S, j Y8 x/ l9 } }
" H( }8 V7 g+ a, p! Z) N- e6 y
( B, Y9 W* }7 N6 C/ K
. s& W1 A5 s8 x6 f' j0 N
3 B* \4 r5 y7 d& k. N
) B3 @6 c8 a" N4 w7 N# ]" V gen maxp=`tempmaxp' in 1
1 H) s; z7 F4 M1 H - s4 R W4 j; _! H6 z6 N0 `
*240maxp' O5 Y; q5 Q; M
5 r! B- a1 O3 ^5 B9 h) ` 2 w" L6 W; I( |$ b
*-------------ddy240pminp左侧高峰值-----
4 J S' L- E8 C6 d* L% U9 s: U
" ~4 l2 v( H/ ^+ ~( F preserve * q0 F% [, }/ Z" i% k+ f! [& \$ j
M$ }% t" ~2 \' |+ z ~ keep if dx240<`tempminp'9 @% I7 A! i0 L. g) p# V& T
( V; ^( D3 k! G* T! r3 H keep if ddy240>0. x) k* F4 x' h" h0 N3 x6 ]
' p6 l0 }" G9 _7 I7 {
count* `! ^1 _5 p: J4 B& a. w
7 m" B! `+ f6 o+ O: ~. J) T" T. p7 [$ P if r(N)>2 {
$ i% n/ L/ Q6 X' P6 k/ O 4 Q8 i( k- \/ e1 ?4 P7 u
pkexamine dx240 ddy2404 b3 s4 C7 s7 b4 `
' Z9 Q/ }" D5 N* @( S! ?0 f
local tempminphddy240=r(tomc)
0 F( l4 J5 I+ A; ^3 c restore
" Z! ^' K" e$ `2 O: ]6 b. F }. v9 r# ? a: l, K; @/ z
6 T4 ], e5 j, V else {5 v( I! l8 H% w2 D7 P/ L
restore
& B: d, q, N' @ di "cannot find pminphddy240". R+ C$ r: n5 a6 E- o* U
1 |+ l) x2 V O5 q. f
8 Z4 h+ |5 n- I5 i' u+ y3 C
sum dx240' s L# C( s+ r# c; w& U2 C
local tempminphddy240=r(mean)
$ K+ i" E% l7 h5 Y& M 4 e( c: p5 L# x- S- N z/ o
. p" h: k4 N! J( o4 G; r
}8 R6 y( W0 `$ [
8 V6 P* w# J' `! n, i
* ^3 n6 d+ t; ?; n8 ^ 0 Q" O0 J( I1 d F# ?) B( b- ?
8 x) ~& J' J! O; Z1 y
' c- T% O9 h4 J% c: i7 T+ P 6 ?, L; O% I: K0 c
gen pminphddy240=`tempminphddy240' in 1
2 H3 q0 g+ A5 S0 f" ~% B$ D. {$ x
8 b# ]0 F" W9 B6 c% b( R: [& r
4 t( K. G( ]2 q2 L$ |2 U *-------------ddy240pminp右侧低峰值 -----------------
$ r+ i j. _, @' s2 K preserve : B7 _& m0 J4 n
* [+ C! ]: m/ k$ ^0 O. W0 g0 P0 Y8 I4 |
keep if dx240>`tempminp'
) H! O! d' }. z$ u0 q& K) v 9 a7 K6 J- I5 Q8 `
keep if dx240<`tempmaxp'1 E9 g$ M- R1 u9 u6 X
) S8 a! N2 n' d$ E) A1 i
keep if ddy240<0
9 D( F& h# Z5 x
" \( H: c9 i; G$ i g5 e' l gen temddy240=-ddy240, Y, O2 ?1 z8 J2 t5 ]/ M
/ z7 s r$ Q; z [
count! I. q3 K* {. L" v+ n
( H% L I- J" P+ r; Z
if r(N)>2 {
7 s: l* n' r0 {/ i- L
* ^3 `3 V+ t4 m R pkexamine dx240 temddy2401 R, Q0 K4 v. w# k: _& S
( ^$ A1 @0 m# x& b# }2 \
local tempminplddy240=r(tomc)
& ^1 w) }) J0 _. o# v8 E- ^1 D: A restore
2 P, t- y: F4 s }) ~! f2 p3 T1 Q. l3 J* Y
+ f9 s% E) r' W2 t" L* r% e1 m* x else {
* D5 V; c6 c! }: f" U
- U7 E# ^( e7 c4 ?) O6 w5 v di "cannot find pminplddy240"/ q# k ]+ y6 {7 M+ q. u- o, `6 ]; {
restore
! k, Q1 C X2 C" E
Z8 z3 [) q/ c* W1 Y sum dx240
0 `$ L& U/ | @& B: L6 o local tempminplddy240=r(mean)4 e& o( B, g6 F) m, y. b+ \
# G$ l/ R2 f8 }: J- }/ R! { - f3 L7 y G5 f6 O: ]5 Z
}6 e8 I) U: e0 e* d2 c
: p& j( X( _, W' e
8 R b" b \# J$ p- ]6 P4 C! b( e , D5 t4 v5 W2 S* R8 L; X9 f6 c
S0 Y3 x* g% t3 w# k
; m, M' r. W0 E' Z" Z. T) h
gen pminplddy240=`tempminplddy240' in 1
3 X5 F. J$ Y- q# b) }$ P- t
H! a Y! H" d7 J4 z4 P6 P; r *-------------ddy240pmaxp左侧高峰值 -------------------
- e; f5 ~8 {2 _6 z, Z
2 E/ z9 q4 L0 k7 S, F# ~9 u' ^ preserve
& g2 _; b' L- h- `1 U" w
2 w: S$ i9 T' V" z& ]3 m$ b keep if dx240>`tempminp': ?# Q- E& \5 H, I. m
! t4 r+ G1 E. F0 W
keep if dx240<`tempmaxp'$ Y2 h1 E0 p1 y( u$ q
! p' s F% k" j( d; G keep if ddy240>0
5 t: q+ B( D; ]2 l' {' ~1 m count# k$ ] R& m4 l: h+ h, C
. m' J# y9 D; J. m7 F
if r(N)>2 {, Y- V- m( Y3 H/ C$ S5 X. @$ |
& T4 H- B* l' e' ] pkexamine dx240 ddy240, L( ^1 a6 y- K* d0 t
, e( @5 C: ^, L6 q) I" S, n
local tempmaxphddy240=r(tomc) $ g. L. |7 k c$ U, a
5 g# U- _0 S5 l, [
restore, I I. z7 S4 q
}. i4 m0 r0 A4 M7 j3 H
8 D( Y1 f' y, Q2 e+ p+ t( }
else {
& I/ x/ `, D7 V2 m( w6 C0 n, x 2 W' o" k& v6 @/ Q0 _
di "cannot find pmaxphddy240"
8 J3 q$ g. f* I* B% N* ]4 C' N restore# q J5 W3 ]8 d d6 p4 m
8 n3 i9 _$ Y( o6 } sum dx2409 m4 V% N5 q4 i. I. x' t
local tempmaxphddy240=r(mean)
9 Z# E0 Q z* Q U/ c/ y ! U( B& w+ i# b( D# e. d m% q
7 e' A P. Z3 d- E1 l- p
}- Z2 O% n; e* |9 G; g
# n8 w6 Y6 @: j4 o# D: y
* J1 F! d0 E$ Y5 ]0 t
; x1 D5 u' b0 K4 p: ^: |2 K7 F
2 R6 R* F: z; G& I# e
4 W, E4 K% }4 ]) A( J
7 a# f# Z1 |3 U& W% t
gen pmaxphddy240=`tempmaxphddy240' in 1" J+ U% v- M6 P h
: ~: {. Y3 t: z0 p m% d. f
$ ~7 Y( y- V& {2 b' ?$ p# [ *-------------ddy240pmaxp右侧低峰值 -------------------% t* D/ e1 _3 q& F4 J. P+ L
. ?/ i* |# c0 a( |6 ~7 J preserve
+ k) B1 \; i# ~1 z% d # u* Z# q7 j3 u3 g, U: B
keep if dx240>`tempmaxp'0 e* a% @6 c3 p. i- w
3 u% }4 l% c* o5 O* i gen temddy240=-ddy240, @8 ]: u5 z7 S1 \& X, v' [
' R X) m' g& o5 E7 ^+ y+ m
keep if temddy240>0
4 _1 z3 Q& D0 D+ E; N1 _ T% V; u
- I, x' s W X0 W6 } count
! _+ B' t+ I/ m: N* M* D7 U & k6 I% L; m! ?" d! }4 y3 T5 \6 Z: h
if r(N)>2 {
! @+ \3 ? q3 L* y/ ]8 t3 z 5 y- \' n6 B* ~! e4 q) G) Y# K
pkexamine dx240 temddy240
( e; I7 v5 Z u1 K* K
/ x/ {' [' a% G local tempmaxplddy240=r(tomc) , q7 D1 p ^3 n, t7 d" G
restore
) F* T& d& q3 ]" o }
' }. ~+ D/ F" S" U/ S3 h- n& {0 |) D 7 L0 h0 w; O m
else {
& }! q6 F2 L1 }; v$ ]5 s- J. G' y; G restore8 L) b. W- F% o# _# a/ B
di "cannot find pmaxlhddy240"/ h! t5 ?2 O* c' H/ }5 N0 i
3 S( h7 W0 \' o1 E) _5 K ! x4 }% c% E1 z" z& d B. f
sum dx240
3 g4 F: z2 }) q8 ]; l5 U1 k3 b local tempmaxplddy240=r(mean) in 1
F$ V0 f7 N* X+ \$ T% Z
7 Q# o; T2 ]* {9 e% H4 Y
p/ W8 ]+ c1 i2 ?8 i& | }8 _/ u" }$ R) P! ~$ ?. W! I% c
( o3 P& Q T4 R3 W8 Q4 F) i
$ L5 J& _1 ^' u/ g
, o; s; G/ l9 a R9 q2 D" R
4 v U1 r7 A# \5 N: O ! h {7 t2 A; K/ L
/ L, a, o8 M+ G" O- N W
gen pmaxplddy240=`tempmaxphddy240' in 1
. l/ X4 }( L% M# z$ L) E1 L; w; U9 ?0 s + H/ e) f* }) {: b) E* Z) l( ?
*-------------------------------------$ \9 `1 `. R* _2 k# Q" M
- t+ G5 ^! ^ i3 O5 O- X
gen price5d=v5 in 1/20
, D% N- J% g1 W) ?9 W3 c1 h2 U ; |" L& ^" E. S) u3 I: S: \) l
gen price5yy=_n in 1/20
8 L) o3 T1 R) ?+ s) R& p- i4 ?+ X
9 X2 A% |: g- J- U+ X$ g$ a3 W$ A gen price5y=price5yy*(dy240max-dy240min)/20
) ~! M% \/ ], z- l 2 b0 C0 P' ?4 }9 W( Z
*price5y &price5d) P- U! r) V c! }) \
M1 \) n* B2 @( @) U8 b gen priceny=price5y in 12 R$ v' I8 I y: P7 ]
d4 q5 T* r! e% n6 L3 q gen pricen=v5 in 1; ]1 ~% \. e& p- L/ D# A. d9 F
9 L+ z* @: L; u0 e# ~7 ~
- i5 u9 _) j ]8 f *priceny &pricen
5 _6 y l& r0 ?5 h9 w ( `# M. o! W& c4 u- Z# U
$ r' c: s9 Q/ x" s
*-------------------------graph------------------
6 j& o6 S: `& o* a* H
8 u* ~$ J% G/ I* q1 J4 D$ H 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) M1 P1 {; m4 e
3 Q& y: S5 v8 l. s4 N
* ---------可选项目----------------------
9 w$ S2 I% z& h. [" G- L# A# ^6 o8 G3 \; [
}/ O: c& M U6 S5 f
end' |7 z9 i" p1 r$ C h2 w
|
|