|
改了一下,这次运算应该没啥问题了
! \! ?. v' A) O0 m% M4 q8 c5 g, [, @& R
/ q0 e( k+ N6 `# C6 \/ Z c
capture program drop hello0 H- S5 d5 G2 _ @
& @& z( L3 U5 V. h3 q9 r+ `9 {& yprogram hello
! n7 n; G) u7 M4 S
8 o6 Y& m5 z. U8 P( R \ quietly {! H$ R" x% O8 u$ e
% c0 B9 C. M: l8 ~9 H0 {
clear
" P9 a3 ?# k+ L+ u7 ~' G( ]- @1 E& s8 S6 S, R9 i6 }0 i# N& L
cd e:\finance\stock\20110101\source' h4 }; q: w$ y, d
9 s% Z8 h3 D1 R. G, r) C* iinsheet using `1'.txt
; b, ]0 D! Q# D, t
( ?8 j$ B! @5 s; o- _ keep if v5>0
2 g( c2 _ x: E4 J" t, [ 7 M7 k" H8 J" q- r1 ^
gen vt=_n
& y; F+ F6 o. ~# V4 ?4 s/ M- A( e: X
# d6 D3 z0 L( X- s( E6 S S tsset vt
) t2 N; k9 m+ ]7 r! }
$ N1 \* ~; a4 |8 H; R gen zf=D1.v56 `9 H( X3 A( s, x& d
% U: ~$ r; N9 @8 l" @) v( k5 h' ^/ k0 O
gsort -v1
# M v, G; r/ ]: G
! C: y( `. g8 f9 N! F8 M gen avol=v7/v5
- }3 z9 f, l, k5 k9 [8 ~
9 s8 _; P- E8 l: F/ }' _. y! k q keep if avol>0
+ A/ B# S, c2 ^! q; N! { & X7 Z" b& s) i; k* f
drop vt/ L4 L5 q6 y q- b9 _- g
- ^' I$ Q$ O9 v2 P/ K* L gen vt=_n) `2 s7 T" |. r
1 ]* v6 g. ]5 e" }! D
tsset vt7 A% d& c. E& k! n- \
7 |9 d5 f9 w8 d sum v5 [aw =avol]; S( [- T+ x& @" ~6 v; g
+ c+ w$ m( L+ V- ^
gen amean=r(mean) in 1
* k Z1 g+ S J6 C# n 8 j" ]* G# {, M, q
* 总加权平均值 amean
# x; N1 }( y+ N$ v
* \0 z# i+ Y& _, M" @9 A : X# j: @5 x- s4 c( e' q
keep in 1/240 W# [3 s7 C& p- B( Y6 A
. D) [6 {8 l7 s sum v5 [aw =avol]) n! D# E4 O8 p
, q7 M0 p! P u; |: m$ b- F2 U gen mean240=r(mean) in 1% ?: v# X, F: i# w) Y% s$ D$ q$ i: b
2 O4 k6 x" S7 M2 L* r) L: c
*240加权平均值 mean240
8 Y" |! i V3 W& c. M! z) N
3 S- `" f, R; c set obs 500 # K. X6 L" o& E/ n& f: J- |. Z
, }7 o' P# g" g, j: z6 j
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph) Z0 p3 s/ L4 ~
5 l4 _1 f+ S2 @0 U* N/ f5 b
*240 kdensity(dx240 dy240)$ M( V( B8 y3 s4 x* e9 U
/ i8 i8 }- L: f9 b7 ]6 R sum dy240. y# P/ z$ v* ]7 @8 T" Y% k
" ^. R( b- y2 O7 W8 E* t" h gen yxis=r(max) in 1' @ o1 w- ?9 y, O0 q$ w3 Q
8 Q5 X& H8 T! V2 M0 J$ R1 D gen yxis2=yxis/2
3 g, W+ l3 [" A
3 a. i! `8 J& _ *yxis$ R2 [: e9 ?5 F6 E0 [- o& T) @
; c' ^, x" n* _5 C) t gen dy240max=r(max)$ ?) ~# l, @! S$ _
# f( c' C9 y% o5 o- A* t1 h8 f! h
gen dy240minp=r(min); @/ m) }( r! Y. Y: w. E! F
1 i* F6 X& O e9 l% H, p gen vtt=_n
; P% c7 t0 ~8 N3 ]0 u
+ e) B8 ?4 i4 K2 @8 v0 A tsset vtt
& z: o1 W" N" }, p% K- a3 \& ?+ D. E
gen ddy240=D1.dy240/D1.dx240& S$ ?/ n* @& ~9 ~. ~
. \! |3 ]4 Y" `# R. E. W& m sum ddy240* ^' V; ^2 Y/ A% @% F+ Z
+ P; W- \) q) |
gen ddy240max=r(max)
+ l7 y Q7 g. u * T4 w: j' t$ T' W
gen ddy240min=r(min)
: D! ~3 C* ~, c9 t4 X+ y% Z
2 X3 D' \9 y# d( H! v gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
0 ?( r+ d2 z+ h
+ `$ H0 j; [' q8 J9 L; t9 M P sum ddy240g
$ Y% t3 I1 r4 E! G+ `( @0 n ' m- C% A) ? f
gen yxis3=r(min) in 1
1 x: q0 T. o* p# P4 C% } " S( C5 J& k" d/ |5 Q' G
gen yxis4=0 in 10 V+ F0 @" m6 w8 U5 J0 t: j
[/ s4 W( P# D: K: V5 }. D2 e *ddy240g
. `, a, `2 |9 A
6 ^3 }" N5 m9 x9 t* z+ K + Y1 X3 D- S# |+ X i
preserve % j2 l* g" R7 @9 i ^
% C0 z4 Q2 `* E& {( E sum v5 [aw =avol]
& x6 d$ T, a" x2 Q/ b 1 }0 a s" H: E; l
keep if dx240<r(mean)& D6 t& N! A8 O
* h* i7 @. @) D" [/ m3 J/ S sum ddy240
# V# K! T# S9 \( G4 q& S0 Z& O$ i2 G # T' Z" `3 t$ Q: @/ ^9 z, Y0 k
if r(min)<0 {
: x! G& T9 S3 I# ?" o" Z. a% Q/ p " L- E1 r! _0 f! @6 a4 g
keep if ddy240<=0
* r5 p/ g/ j' {! N' K0 o
' o5 z; f! O' ^/ f count
& q4 U2 i+ l! g8 o ( U2 N! m( }0 j+ m' q# z# L
if r(N)>2 {
7 L' `" a1 t% N. j# D
3 \6 I+ X5 D$ B& M# t pkexamine dx240 dy240& ]* F' D" v$ j U" U# f2 K: B
: h& _% @6 O9 v# q
local tempminp=r(tomc)
. @% _- H# m1 D; Q restore
) A% V; Z* d7 L0 f }4 B1 p9 k6 {2 S' M0 P9 X; T
( i! n8 ]+ C/ i8 D/ G5 f6 M else {
8 J- R% L/ \5 s: t% r
: h7 p& H5 l; I) s2 { di "cannot find minp"
1 P9 B& s6 Q3 |3 @5 @ ' E' j H/ U$ N( r- r" D2 N
restore
- W7 X& u; o* H: u* _9 S5 l sum dx2405 Y; H; e9 h- P8 D$ {# V; T
local tempminp=r(mean)0 U Q& a7 F f" R2 | q; V
( z; |+ f# I6 @$ n }
s" H. U5 @2 H2 L' v8 T }
' N9 n J m7 D1 N, G else {
6 W0 P' S8 A- u8 M* X2 r, D
# N% C' W4 E# g7 ^ keep if ddy240<=r(min)
: P. N2 E5 p6 i3 A. n; B ; B0 U: ~: X8 x/ n+ |2 p! L" c
sum dx2405 `5 c/ O/ @$ S' U8 ~
/ y+ U; v n/ d
local tempminp=r(min)
8 d: I- L% J$ K( ? restore Z9 X( ^' o" }" |7 \1 h1 [
}
3 K! [& c8 Y+ f- w& j
! z: k. X! |5 Y( Z# D7 V- B" ?' Z; Y1 O! d0 y0 @) \% o. [
7 p& s _' ?, i+ [
gen minp=`tempminp' in 1% X- V, G: q2 ? b& p' A
*240 minp4 m2 N! R! ?5 V9 i9 [
7 s; ]" g3 E( L4 v5 o1 t0 }, K( j5 A! j+ _
W. m4 d0 E, z6 M9 @8 c2 B; H- q9 [ preserve ! K- f* Y4 j5 V8 T$ L
! K0 |# e( y0 g7 _. j
sum v5 [aw =avol]- r4 }( B. m; ], l5 s7 o! Y1 }
; i' ]3 D7 _- H2 E% N keep if dx240>r(mean)
; l4 M! v: @6 V& i; g* m2 m
1 K1 {' G; [4 a1 J7 w! i8 y sum ddy240
6 c" c l9 x: A0 j; C) }' |) Y8 T
) B$ p. Z& J, n0 F5 p$ U. c if r(max)>0 {& j5 O9 q4 o% @
. g( H) @7 E9 A( g& r; `
keep if ddy240>=0
' X, L/ z8 Q1 H, ]% ]9 V; [ 6 B2 i) k8 V' x( H1 T
count
% a9 l/ X. C- ~8 U$ |1 h5 k' k
# f0 [1 Z% h& l# V* b if r(N)>2 {+ v8 Q8 }7 ~# X% p' n6 ~ r4 e
$ v4 l9 I: X$ e, s, \) d6 ^. ^ pkexamine dx240 dy240
% J4 H. t3 M5 E. _2 l 1 |% A, D* t# j* s j1 G- E( ?; c( }
local tempmaxp=r(tomc) $ B9 z4 F8 W; N4 f) z
restore
+ i; g4 [1 O: m/ F3 B }
* T$ g. z# `: y; X 5 V5 T9 t% Z7 z/ f4 l
0 n/ C- f& @& t+ x' J0 r
else {
$ G- i2 X/ G+ r restore
5 A) E6 Q6 ?) c2 _3 N di "cannot find maxp"% N7 ^/ m- t+ C
+ O; `: G) _9 [' _, u
$ c. W2 s# X: n! B9 |) T) | sum dx240- Y- B9 n) u' a8 J( k4 `
local tempmaxp=r(mean)
( S0 m+ x$ x* u4 M
5 r/ H2 u9 ^5 V& m( o" m% m }
1 S! J& I! t/ K0 w i/ C3 s/ x3 K8 w& N/ \) } m
}/ y6 Y0 A; L3 f% g7 Q+ E
+ q+ b4 `( k' I' |, o
else {
- j) g& \. A6 k$ v+ [1 v
0 R( h% N# s' V" z/ k$ } keep if ddy240>=r(max); P% l5 Q9 y$ N' P+ v
, j! i* s, W" _9 f9 ?* a sum dx240' H) h6 l8 h4 n: f, P
: F2 l6 U2 ^+ O& v+ r! z! @5 E local tempmaxp=r(max) - K( p; w: Z& L, j2 i! i$ s* \' o6 m
restore 6 P/ p" a2 f) I
}
2 O: _) O" F* d$ }+ {2 D( F
/ Z. B/ n8 N$ @ U$ e; ]' q* ?' t+ R0 {, @9 Y7 \% U: y
8 y3 u6 W: A( K7 _
6 z' y. r5 h' b6 q! \! R: V0 V gen maxp=`tempmaxp' in 1' x2 w3 H9 h% ]5 d" o3 t
: F- F! d+ u% h2 k# t
*240maxp. O7 B+ x5 P' P
/ h& y i8 g* P7 S- t
4 A- O2 _" y, U* x9 s
*-------------ddy240pminp左侧高峰值-----% g, H! p( ^" e# m% Y' u9 Y
E1 R0 d1 [3 X R. P
preserve / F& O& a' g2 g$ W
: J* k/ N6 p4 Q* ?/ B! N/ Y
keep if dx240<`tempminp'
* _. V4 a* Y9 P( | ?5 l ) X1 t/ z, H1 {7 ~0 f' u3 T& d
keep if ddy240>0: v( P. J# B& q' S( n0 }
' j0 ?, _! k' M8 W2 u- O6 Y
count
0 @ c; L, G! M0 X8 k. p 3 ]4 M8 K, e- l' G- q
if r(N)>2 {
. @6 e7 Y9 p. b5 O+ ^6 s/ ~' N 1 J8 f' m2 _, ~
pkexamine dx240 ddy240* `: A) o( h& q0 ~+ F& D
; t/ E% A: `5 L; Y% q local tempminphddy240=r(tomc)
2 ?) R* Z9 _5 _# L, ~3 s! A restore! c$ p) `4 `# P8 q
}0 d# O, P' a8 c4 o( R
" x8 g$ z* f/ a1 p% ~/ O
else {
' {. }/ q! B9 ^$ W" B3 M. J restore ' u6 ^/ ]$ {6 w* n# Z7 z! \
di "cannot find pminphddy240"
( j& H9 ~" p& n" \& r+ V% {5 { $ k' } `1 L; p; _% i
- J9 N' J9 j: Z/ }' J& V8 z5 }
sum dx240
h4 |. H4 v4 v' P2 v local tempminphddy240=r(mean)
$ Y, F* a) r" |% K _
% b9 S0 m8 k b& ]; a! k, z$ u # Z6 X5 z0 ], c0 C8 W
}
+ w/ P5 u( H" ~. T: M8 ?8 |5 d; Q
2 I" u7 q& \* k) p* n
6 F6 z+ Q0 s" P& [
9 o! V3 e1 Y" a% ?8 @
; w2 Q+ B) ]' o% N7 {- {& j4 V
l' Q) ^: p) w; r H0 Z5 P
# {" a; k7 | k+ o8 ?( \1 E gen pminphddy240=`tempminphddy240' in 1
/ f- T2 K+ t9 T: V) P) _% X. T7 _ " {; I ~( o, j5 k
( f9 t7 ^3 \7 P1 V, a. Z
*-------------ddy240pminp右侧低峰值 -----------------
% ]: H; O! e4 K- ]$ U6 z& h" N preserve
0 d- z3 ]* m- J; ^' ]1 y% u
2 e2 `; S2 u O, b u keep if dx240>`tempminp'
- y% y' d. ~6 X; Y2 k5 s! t . Y/ q+ g0 N& Z7 V8 o0 R$ Z
keep if dx240<`tempmaxp'
# p! }* V8 i2 O! p8 g, B+ a * d' u/ k; N) f) _8 A
keep if ddy240<03 Q8 Q& @3 ?" v5 L
2 ~6 {4 O4 r% q
gen temddy240=-ddy240% |1 m% Q* e: |
3 }7 L# z) {! l
count
/ f% F$ @) X$ G 3 Z) j% z0 D/ J: Z- ]
if r(N)>2 {$ V$ H) b+ Z2 @0 z1 t0 e
1 W1 f ]# R+ B; d
pkexamine dx240 temddy240
3 P% G; U$ x* Q" E9 O6 ]1 b6 Y 0 F. K. J' D/ t( M' K
local tempminplddy240=r(tomc)) Q; o8 c9 e) _3 C, l7 \
restore
* p! e1 N: w9 B! [ }
$ @& [8 j; c% R + l( }# `6 ^7 S7 N0 ~1 K
else {0 @% O& A! f" ?4 Z8 g, E' `
, R7 B- z+ k* \* q" w) ]0 [ di "cannot find pminplddy240", b% P& t1 B/ q9 u% k% {; Y) ?
restore7 [& `( X) `0 z6 e9 T7 u9 Z) S0 H
; S- b1 f' j# C
sum dx240
5 d- g$ ?- w$ C9 I$ K9 v5 _. K local tempminplddy240=r(mean)
$ X7 K5 k2 v8 n' k/ a$ J ) n. n" W7 x) N" H" T
, y, b' f" ^. f+ Y0 o* b7 M9 o5 x' | }8 h4 @" E# K R! E8 x3 W" Y+ }* w
1 h( g+ B& R% z. @
/ m% i2 L8 |) b( [1 F( g0 u- U
% j9 _& v! F. J5 U7 U4 I) ~0 o; T 2 k3 T: o7 b6 P/ v8 I' ^7 `
% R# X; R. H* H# O8 \, ?
gen pminplddy240=`tempminplddy240' in 1
" Y m+ l: t; f, ?0 X0 r, l7 }! X ; U9 r. q; }. r/ W- S
*-------------ddy240pmaxp左侧高峰值 -------------------
& G/ o8 f9 a( p6 X, T
* O/ ]# \* w3 |4 W, Y% ^ preserve
" C0 n" j/ m' a/ X: K ) W$ [0 Q/ c7 n% r2 W* u
keep if dx240>`tempminp'
& Z" U; E7 y. e$ o
& `; P% _5 N7 T8 _$ L3 V& A3 ]% o keep if dx240<`tempmaxp') T0 _ w, Z/ z9 K( _ ]% a
: s7 f' @/ a3 k+ x
keep if ddy240>0. Z1 k! X3 Y" I
count0 W7 \0 M( `; r7 s
* ]( A6 T6 w5 D$ b" f: K
if r(N)>2 {0 ^3 h) q n+ A( {! A. f' G
$ ]+ J5 `! I1 z4 F/ _, j4 }
pkexamine dx240 ddy240) P( C$ S, ~2 N8 C* S; p
/ p& F' k9 k' Z7 ~+ }
local tempmaxphddy240=r(tomc)
1 N. V2 Q5 s0 i4 H$ ?
' S% `7 V4 C0 M3 ~ restore
( y6 k/ g2 ]& [ }
2 o) C& l; \5 {5 t U 9 `& V K/ P2 ]5 G9 ~: y: T
else {2 c4 M, K9 w' g6 k3 i8 c
8 Z+ P W/ k+ k9 M9 `: x
di "cannot find pmaxphddy240"# ^# c1 P5 ?0 ]- x& p
restore3 c' N! L5 [4 W7 g# J+ j. p; S R
) _5 ^1 |5 L/ L# Q1 k$ a7 o- y
sum dx240
$ Q7 t1 Z8 _+ C7 t) u0 y local tempmaxphddy240=r(mean)
1 W& H4 O: }5 J# c- u5 r 6 M- J8 I0 G5 }9 h" d8 R* ?3 _4 H& p
. A, H0 y$ e* x2 f
}
9 O4 |6 a8 h) A2 } ) \8 v; |0 i7 z% s0 H: |/ I) a" W
9 W* E: ` _* G# H 3 d. l- ^- Z% x3 g2 ~- D: ?- T
- l7 Y% k5 N+ b+ G" T/ G
3 C; t) V( T9 B1 Q8 a ) D Y* F- I8 C h7 K6 L; }
gen pmaxphddy240=`tempmaxphddy240' in 16 X. q7 I" \# W: Z
; x- p4 q7 j: K5 p& i4 [$ n
$ I- I: {- _/ _0 `2 G *-------------ddy240pmaxp右侧低峰值 -------------------' n y+ t( i, e5 ]% Z
) L7 O7 z |8 [! } preserve
% F. M0 @9 d, Y( u4 f1 C
) L/ J1 h+ @ P0 @5 J keep if dx240>`tempmaxp'4 |- C1 e9 G+ M1 ^/ i8 ~% \
! p+ F. B$ `1 B, ?. _* m) d gen temddy240=-ddy240
; n6 ~% { z" n* M4 m
1 C# E, n; \) e6 D keep if temddy240>0
( s% {! z r: u
9 R" k& C" T( T: A# q count/ c- z, W$ h k$ F2 O" h
0 O# T9 {8 H8 p" s2 m
if r(N)>2 {
1 Y* W9 I$ l4 ?9 o# F2 b5 U
, ~7 H* h8 h( W6 ]$ ^% [+ F% F pkexamine dx240 temddy240
% M+ K4 K2 h0 Q1 l" I% Z3 B + U) u0 V" K1 M q9 ~# Z
local tempmaxplddy240=r(tomc)
3 @7 P/ P3 p& |$ ^' n9 I1 ?9 q restore9 \% ], h. d! G4 _8 E* Q
}
. e0 j. ]/ O9 d0 t$ s 2 X5 Y" v% B( s4 Z7 Z/ p
else {
, X& A: ?2 Q0 a9 B' a8 l+ t% | restore
+ Y! Y8 A1 b2 t1 y5 q/ Z- W9 f di "cannot find pmaxlhddy240"( x6 `6 S/ D+ T
( P: g. k5 @$ W8 [5 ~# @* [
: r" q1 l, h* Z
sum dx240
# I1 @" ~$ ?8 F# m+ p" e- d4 d3 ] local tempmaxplddy240=r(mean) in 1
' g) j' y. Q1 j/ t& H
+ y" | Q3 \1 M3 i/ G# ~- Q
U" \" J' ]' @2 ]* ^% E& p }8 a7 L8 s: I7 L5 x( n8 a& }
" T7 F. R* ~& `1 A+ e
+ D: T3 S5 ^6 g # T* f( j4 i" I3 o1 u2 W
, E) ~! c) v2 s" M
" m1 A7 R/ K2 ^/ X, q
( s# a$ @8 U* m; e j' E! L gen pmaxplddy240=`tempmaxphddy240' in 1
- l4 x. s1 y$ [3 ?( x
8 T4 y4 O4 v: O1 W, S *-------------------------------------
3 N, ], H& V+ }- @- C9 {, ^
2 z; T% q2 V0 s8 ^! p$ y/ a1 K gen price5d=v5 in 1/206 |+ I2 u# U- ?4 b
8 I" c+ N* g8 C" h& {
gen price5yy=_n in 1/20
% V) o6 |- @, p3 \6 |. k1 H
7 O8 f$ [- ]% m$ C0 p gen price5y=price5yy*(dy240max-dy240min)/20# t- Y/ s% J, g3 @( F) Y$ K
, `6 O% o0 h9 P* P: p* }3 v7 K0 g *price5y &price5d! u% ~/ x, h2 I( m# g
1 A H$ g; {/ n gen priceny=price5y in 1
. {6 g/ f7 r$ N, |7 D
; w I: _$ f, W! D# E6 Y/ @8 C2 R gen pricen=v5 in 1
* U U" z7 E* u- i" @- c+ c- `: j+ h" Z. n+ @ Y% l
/ |, W! U2 |" t: R6 t3 L) h5 r" b
*priceny &pricen0 E1 S/ j# C D7 g5 [5 |
$ A$ W% u& K, p+ s
6 v* L6 M' k' y9 a" U9 R) I *-------------------------graph------------------
# e5 a1 ^4 ~0 W" a/ ~- n) E, G" z
; d8 Z4 R! M+ Q4 u1 s6 V 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)
1 d7 N# W$ i+ ~ V$ J, w
6 r% O! K. A \; U# |7 m+ a+ S5 s* ---------可选项目----------------------
% g0 r5 u% _4 K* Y" `2 l, X1 w. W% W" L1 G0 g
}
0 E4 m6 W1 T6 b9 C% O( F3 Mend
4 n% x( A9 w, ~. j- s6 G7 z* S6 K |
|