|
|
maodeng 发表于 2013-1-28 13:13 ![]()
' {% j2 n$ q" b( b: h1 J, E$ ?. hello 300236
( o) Y, ~- f, t. S* Z8 nstatement out of context
, k/ h+ Y* R) Q; K2 F: Nr(119); 5 [! a' f3 Q' G) [6 K
抱歉,最近太忙了
, \8 P, w* d7 w. F( e+ A
2 i: J& m; B- I! b300236 我用下面的程序试过,没问题, z8 l) k8 [9 W) X3 t: G6 s
) j3 z4 s3 A& v/ x你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
, a) k8 T5 ?& O0 A/ \0 O$ M+ P6 P9 z3 c% L7 o# H- l5 n9 p
capture program drop hello7 I5 h9 t# @3 C8 K4 ^6 e; r- L2 u
1 s( G$ \; n0 L" I0 j
program hello
. y, _# H3 x @3 V
. `5 R" `4 L, H. C quietly {3 L% z2 ^- i6 N+ d* F! k
9 e5 k, [0 X$ W5 J" i. o4 H: j
clear
( k% f8 c$ u$ ?3 z$ v [/ Z! H+ Z- _* N
cd D:\stock\test\source
$ G" o! `, V+ X- j- T' z t0 A" b; d
insheet using `1'.txt
2 G0 K3 _0 _8 W+ {% K# t$ x0 }. f. I1 O. b% ^" m: y
keep if v5>01 T; `6 O L) t' K
6 B; ~" L( b8 G- V7 f( Y! B" y gen vt=_n
% r/ M8 s$ Y$ F3 D - k; C# K% d; T& L6 X
tsset vt
; M. ~/ X2 k2 E3 i7 e% i( A5 j1 F
e( n; v0 L- q' l$ E gen zf=D1.v59 c* e6 j, S. z: o1 }: }, J
+ |! [& A& C- h6 ~ b7 I gsort -v1% D+ J. t, J$ r, @0 n8 |
, ?; S8 S. J: {+ ~( A- e, a. I
gen avol=v7/v5' b; a# X+ ^2 Z
% L# b1 k& V4 B
keep if avol>0" ]: V3 J/ o! m y# F+ j( c
. ?: N% [% h# q) Y1 c3 K& m0 a+ ?- F: o' g, j
drop vt( u! p% p4 r: W" D O# L' A$ ~
# T/ {% L, {) [
gen vt=_n. Q4 B, O0 ]; D+ i
5 \# n( D2 v- g1 A tsset vt+ ^4 ^6 q O8 b @
* ]" @" w& [: {7 N; x9 d
sum v5 [aw =avol]- n$ S( r, U/ s' W1 d" W) H
& n9 e! i- N) M+ J: O; W' s$ G& g gen amean=r(mean) in 1. Q# S3 q: g$ L
3 f4 L' a/ Y% a' k0 Y; Y8 }3 ?! ` * 总加权平均值 amean
8 E- ?' ^! L" l% h+ ` 5 B* M& ?# m* i' Y: `
! U1 v! U4 I2 X' n
keep in 1/240: J$ V1 c( R# e5 c
' p7 s' `1 V |9 H$ j3 b9 c
sum v5 [aw =avol]0 _; }: Y4 _+ n
`, P0 c4 @( p
gen mean240=r(mean) in 1
* T) J- E2 b% W; ^6 v ; l( b5 r Q4 s0 F1 Z
*240加权平均值 mean240
x4 a9 {6 [7 v8 [ % `9 t# x# M, `9 z6 ]5 ]
set obs 500
4 y3 S+ r/ ]- o: O8 w' A7 t , Y( l! k8 i4 B4 G; _
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph0 o: u9 |* B$ s
8 _2 { n7 u( b2 e4 O; t
*240 kdensity(dx240 dy240)
: Y. D& z# ?! A% @: \8 l O0 ~ V$ b A ^9 Q; r) t# w
sum dy240, s6 G! u P/ `2 \
" p( f0 P+ G. T7 y( C5 a! K
gen yxis=r(max) in 1
2 q$ p2 Y ]) V$ ~% J" ] 4 Z- }( [+ C2 G4 s" B; [6 @
gen yxis2=yxis/2
9 y9 T9 [3 e4 k! O8 A, r3 q# o- [
& G- g5 ~1 c# }4 o( C+ {1 l *yxis0 c+ @* d$ c3 `
7 O$ h; y: ]: \# e8 @
gen dy240max=r(max)& i# g' O% l! g ^
- A) d: J* D& a6 R1 a gen dy240minp=r(min)0 N+ F+ L; t, A: [
6 {, b+ ~7 h+ y' x0 A) e gen vtt=_n# U0 D5 _; p5 ?& o$ p
( s/ y: W' C$ ?$ R
tsset vtt& p. X" B0 I4 g% D. b, E: n" {
# J8 b U+ X J gen ddy240=D1.dy240/D1.dx240) P' R* ~ s7 R1 c5 x1 R
# J ?4 m9 z2 G* h& g
sum ddy240
" z( p9 Z* V4 _3 j# h" Y5 k- _, z 4 C0 T; Y- u. d5 Z% p( \
gen ddy240max=r(max)% `! o' S* Z* a9 }' L5 n* |0 w
- U* M# \ M+ V: S( O1 D
gen ddy240min=r(min)& I7 a& X7 [3 {: D7 b% B V
: ?" |1 F! u- j2 t0 p a gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)3 y. k. E4 s9 z! A2 r
7 i& Y B) r! I4 E) G sum ddy240g
8 M2 m3 o% b, G/ |# Z6 |
/ P" O0 m: J4 _2 a; S gen yxis3=r(min) in 1; N2 g1 o$ d9 f6 I1 x: J) Z# p
7 y f+ o4 ?3 V* n4 {% Y# j" [ gen yxis4=0 in 1
2 g) v9 x# V3 Q9 q3 o $ }7 j2 B8 c! C
*ddy240g & @- P; Q3 q3 }4 G# x9 H; `
, L" A: \$ s3 H0 t " M" D. z: n! Q" T! s- v4 X ?
preserve
4 _5 P f% P: |1 Z8 w1 H
# _/ l; `+ C& f6 z/ \4 k+ E. [ sum v5 [aw =avol] ~3 o/ i; ]" R
( C. u3 C$ n" J7 E
keep if dx240<r(mean)
1 S4 h8 n$ x6 X& s 8 c8 @& ]& i$ a' s# W. g
sum ddy240: e5 n7 T4 r2 {3 J \$ r3 l
; {3 R% ~: ^! \: b' y if r(min)<0 {
) o& K; M5 X% S6 ]. \
: M0 h7 y& m c1 d% S) N7 z3 Z keep if ddy240<=0* i6 \8 }4 Y2 F6 J4 s% g# |
- S1 o" s. B0 G, M( F4 e% _/ r+ I1 O- B
count- @9 `8 B; x) H+ j& e* O
4 `! d" f4 G- {. f+ g! q( [
if r(N)>2 {
" z/ x* v! |( m( f: P
: A9 h8 l) l6 J+ f0 \4 E. c pkexamine dx240 dy240
$ C% N: E0 ]( z. n; G7 c' D
! W) B: h/ {4 n local tempminp=r(tomc)
/ J1 e& h" S0 P% \7 |% x) r" u, L restore y4 H' E4 p' Z- c( t+ J
}
7 F" u, g( X! l
+ U+ u+ e% u1 R- h else {
; y c, r0 n- L" D 8 a6 e$ n$ m) I2 s
di "cannot find minp"7 k a1 K0 ?- D9 c
1 }& l4 f& Y: [ restore
6 w3 h0 G/ ?9 J% c* ^6 J! s/ v8 G sum dx2400 j8 L/ m' p7 n# k* }+ V; b
local tempminp=r(mean)0 u. h0 r0 N. k& X- g% f
4 m( Q* S' F1 R% `' A& q
}
" p2 V# x, ]: f; U }# I( S }) W, d
else {
: q+ x/ @& G/ {- F1 _, ^* Q [+ i
4 n$ c- U5 H7 I& i. E. R keep if ddy240<=r(min)
; ~4 w; x/ E# X5 c 6 l$ I' S+ K# L7 J7 M, w g+ x
sum dx240* u( Y7 v+ B4 y2 C! L
! N+ J& m2 ~" c& P2 V local tempminp=r(min)9 k; q( R0 f8 a- l8 l
restore
- W1 U* D; n4 w! P# h) y }- g' E+ a& U) h
8 A) H: c# w0 U3 Z Y. }) W
$ |9 k' Y* @% ?, F n/ b% X- Y5 i* L0 O; Y5 [( A( O$ q& f
gen minp=`tempminp' in 1
( k/ v |% B2 `+ W6 V. e *240 minp' x5 M( z* ?- D1 a ~& U
; e ~8 ~; w9 V; j7 Q9 f7 d5 _3 K
' l ], P+ H" Q& D3 Z2 Z: Q
6 H. g+ q# j4 D. L0 J" D0 n; v preserve , r( T4 l. b. _7 _. y
. s( W1 O/ G0 [: F3 Y6 o sum v5 [aw =avol]
. H2 w* X* p- M. c2 L4 d/ @1 {
; `+ u( Y' e: q keep if dx240>r(mean)
4 i1 { t4 b1 O+ f0 V) S M5 V ( O; Y5 j, W" V5 y6 c" R
sum ddy240
( G0 d1 O' @) y0 K! b& m8 x
. v' w* S/ x* d/ l' y1 G8 K if r(max)>0 {
6 t! G$ m A0 C* m$ |) D
3 D X$ D2 k3 q! L keep if ddy240>=0- g+ R+ s1 |- v# G/ k4 k
- t7 V( D5 x. l, d# h3 m! G# O8 w; v count
0 Q. _* h, v/ y* @6 c4 ^ $ g. m7 X) F: }, T
if r(N)>2 {
. V2 m Z5 @. H7 _% W% y
8 e9 D! x u b5 g { pkexamine dx240 dy240( D! R v7 u* K* [( T* A0 \
$ D$ ]4 _8 u* y Q* Q3 ~, ] local tempmaxp=r(tomc) ) L+ Z2 I% Q3 ]( ^: h% c
restore 4 M' k8 U7 G. W7 H C2 U, R7 ~
}& P! i$ _4 |3 f) ] Q' d7 P; R
8 q* f" f0 m' v7 ^: v" s" s * O7 T; f( t0 P6 |) q u! Y
else {+ l, ~% y8 B$ \- W; F
restore 9 }4 F+ u* H5 k
di "cannot find maxp": y; q* g" s2 m6 i
! S( o' g: u( I. r
3 g& ?8 o; v5 I$ V/ ^ sum dx240; R9 G/ M% t- t& u
local tempmaxp=r(mean)7 ?3 \5 Y! ?- c! c
4 ?. v, v, ~: l; e7 C- V }2 q# q- \! v( j0 h
+ o! }; z0 o* B- i
}
/ q+ q* f( G0 p: o+ Y 9 I1 a4 o! X6 w Z( i9 u; C
else {: Z" @1 X. S4 b3 e
( B4 j4 l, T9 B8 }! j
keep if ddy240>=r(max)
: _+ h6 p5 Z1 T - q0 D+ x0 H6 c' D
sum dx240 }7 e! l8 K5 D, k2 z
1 q0 N& V1 Q1 V6 U local tempmaxp=r(max) - x% J8 R* R) [4 R0 w' r5 p
restore 4 F2 u; `9 ?. {* n
}8 t; T& ^' M* Z3 z
, M8 E/ g4 l2 M" l: P: V* W
2 d! D3 _' \6 {) d1 g0 g * u+ s6 o2 d3 @# E1 L
% s& i+ c$ k1 l9 o- C$ c
gen maxp=`tempmaxp' in 12 x: i: v4 r5 ~4 {* ^1 n( z+ ^$ s. r
5 U2 j _( }. N T5 d5 I
*240maxp
" D/ w6 Z) s( l3 h6 |: G % S0 {; P) P8 Y% z
% |* ^# S8 D& U6 X4 I4 k *-------------ddy240pminp左侧高峰值-----7 L% z* x) A; {6 G5 L
; c$ {$ }& Y6 Y; R% k9 ? preserve % y h5 u# ~$ {9 M' r- U% h
9 _/ F8 G5 U* q+ g, s keep if dx240<`tempminp'
1 l8 j1 b8 {' p! v: r) L
9 T3 W( d' ~ M: c$ w: h keep if ddy240>0* L) k# f( k% ~& V. ^
$ S. O+ k# c! _2 L count
3 M9 z% L, m* V6 b/ d8 q( e! B0 l 7 }( c# R# l7 u: y
if r(N)>2 {
# r1 n$ u$ {1 Y8 K1 g; W; a& K
- ^9 v d8 R# N9 V! i pkexamine dx240 ddy240
2 f9 s4 K! w/ ]/ q$ O ' A0 q) w; X# k+ i
local tempminphddy240=r(tomc)
% t( g4 n. C8 \/ W- M3 F restore
8 k3 j0 d% x7 v, R/ O }9 Y5 @5 p9 @& b% ?2 R: Q
4 D, p h4 ]" d1 i/ P/ l' q/ z
else {% a8 e9 ?: r) M. }% j L
restore
. T$ ]* I3 Q; `. B% g( h di "cannot find pminphddy240"9 i4 L) V! x5 m7 M8 L
' O( k% @, M- v: T3 U: Q 4 L4 B; |6 J0 G
sum dx240( B. |% h" x# _ b$ n+ W
local tempminphddy240=r(mean) $ E6 t8 U4 c# O& T! z$ }3 a4 V
! l p5 q: G V& y4 y/ y. K$ H; I
1 _1 P9 s% o( \1 B& } }
# k# w. n) L& V; x. R1 c
v7 }; u8 V8 N+ E- p
) ?/ w, c, W' n; K( t 8 V' U$ r% X# O7 `" `" Y# w
0 Y4 s7 Y6 ~ N: e1 y# F& m
" N* m0 }' w0 D O
; p! h! V7 _" t gen pminphddy240=`tempminphddy240' in 1' @3 c3 s, S# ?
5 [, X, F/ D* N! u2 |0 {$ }
4 Q$ f$ p! R1 q5 w- K/ i' a# T *-------------ddy240pminp右侧低峰值 -----------------
; v# {, j& N8 n1 q1 E- m8 k) | preserve
8 a3 c2 n. S# w- z
o; \5 w+ |8 S8 |) M keep if dx240>`tempminp'2 V5 N4 d) J9 D
; Y5 f% J+ `3 e keep if dx240<`tempmaxp'
' t$ l2 l# R) J. A, V$ \
) \. ?5 b0 P" f) D$ U/ F& c keep if ddy240<0# F& H7 p3 M! H5 O
$ ]7 L5 w' \- k gen temddy240=-ddy240+ n$ J8 ~3 L5 w- y2 _2 @
& Z2 Q! p) K6 V3 U5 e
count
. m8 z1 ^- b8 o7 }5 H 0 \, U- Y' L. a: t3 I" O( ?
if r(N)>2 {6 ~; w. T! E# @0 a& h5 T, @8 V
. U+ Y' A0 b9 B6 Z0 N {' e
pkexamine dx240 temddy240
) ? f) }) s' x$ V. c ( m$ U7 x5 ^3 s# L
local tempminplddy240=r(tomc)
7 H1 F3 f$ Z6 A; w; Q; \& B/ n! `1 O restore h& C" G, e" d- J. m2 }
}6 l4 w8 [1 x7 j
% [0 Z* P- Z5 E
else {8 f0 s; z6 k( @' [
+ p: o* d& ]4 E) {
di "cannot find pminplddy240"# ]$ A' t, G# l4 [1 v" D# |; d
restore
' ]% m$ o7 Y! |( D+ a
$ ~" B+ b' C7 d6 H# a sum dx240
" f0 S( W- S+ G local tempminplddy240=r(mean)
% L" K( f( Z0 o& n5 X, g # \; v- w& O- b N
6 m3 z, D: y6 ?0 f; F+ Z }
( }+ h# H5 p1 E7 H / ?. m+ ~. i( c
/ Z3 q' {$ D0 a6 |# | T. b8 t0 ~7 ^2 p
5 s2 p8 B8 s# x% d 5 M; S$ Y* ^8 `9 R. W# z
" `$ _* y. _$ q( g/ V) u7 W gen pminplddy240=`tempminplddy240' in 1' \3 _/ Z( q( B. x/ I2 T- z0 H0 A
: k0 p8 w2 b5 `6 { |( o *-------------ddy240pmaxp左侧高峰值 -------------------
: c- b/ F8 J- Y3 B3 S( S
: {* O& Z9 _/ S) D preserve
4 U8 f7 Z1 H! r3 y- ~& t 7 m( g$ O$ V6 L2 Y; D( B
keep if dx240>`tempminp'8 O( n' n, o2 j1 \* b$ h
- ]5 F, H2 }- O. j- T/ ]. R
keep if dx240<`tempmaxp'% N0 s3 ?# v7 F: E
9 N( e9 j) b% B' D1 |' M9 k+ J
keep if ddy240>01 L/ A! f' x# N" k6 P/ x
count2 x0 F2 D; ~' z! [3 V9 k
% r8 r0 j% E" f( c1 d& v8 W, L1 T
if r(N)>2 {0 r, h/ ]4 t: ^1 y
* K; O/ e8 {+ W pkexamine dx240 ddy2402 W% k$ }: k) n" n$ Q
* A+ a( H& b: N# { local tempmaxphddy240=r(tomc) / e9 _0 M7 r: \8 g( w: R- N
* L/ g/ l8 x1 Y1 B6 K restore
7 O7 ]) W/ e& A" O }
# L& a0 L9 \: X0 J( l7 e: ^3 { . A, l8 F. R% G1 |0 b# w6 U+ U
else {
* m, J# W+ {+ m* ]% i1 F9 k
- a; o9 W) V6 m4 w) U S' [ di "cannot find pmaxphddy240": u5 U- b2 U C
restore
9 z" o4 d0 L S1 \+ ^ 3 u O% ~: g0 O: `6 v4 A O
sum dx240: J+ ?( {- D. |" `
local tempmaxphddy240=r(mean)
4 o. f' x' j% M$ q( A8 x N* u& i2 i
4 R/ F8 W& w. ], ^1 r z/ W6 Z ; Q) J0 w; `( G" K0 h
}
" c; ?; V: X1 H( W
4 I9 q/ g) P: S& X5 j) h$ K
) w( @; q7 R. L8 t
. ^# H; R: v1 l' a i( S$ S: M, O
& r9 d; @; {( w l: o ( G! U, [3 B3 ]# o
( C; S/ i) ?* q. [% z- f6 h gen pmaxphddy240=`tempmaxphddy240' in 15 Z0 M3 L3 }/ z, j& t8 T
8 x1 v. I2 e5 n6 M: n3 u+ S
* w2 w# g2 {; F( q# a% R/ u W *-------------ddy240pmaxp右侧低峰值 -------------------( i# j1 J! K6 d7 I+ R6 M
4 `- P; ? Q' _9 X! z0 s- B
preserve ; Z# i# S1 {6 u. G
6 I5 d+ ^3 {- \! r/ M" O keep if dx240>`tempmaxp'2 }$ Z. Q. d. [4 V( m
) N* e' t" O! ~4 m0 | gen temddy240=-ddy2408 L- ~ Y* L! n1 _* I9 l9 S1 I
( y+ w8 |7 e! t+ Y6 \2 M7 Z7 l keep if temddy240>0 C) @( [6 j7 R
& }" `2 N! w; o' Z$ t
count$ f% g6 H& l( b! x; I1 J+ ~6 B
5 ~. i3 B7 J) A4 F, I1 I if r(N)>2 {( S9 L1 O6 l+ F/ O) ]. Q
7 i$ q$ [0 |, u7 Z1 B$ D, I
pkexamine dx240 temddy240
9 ~' n2 Y# S& C$ W 4 u/ Z- K4 _4 f5 x$ t! n0 T
local tempmaxplddy240=r(tomc)
) E% u0 m- h0 y' @( T) @! S+ e7 n restore
( ^3 Z; W: m1 r, p }
; {3 f. T4 s N! h. X4 S
n s$ @3 J: o1 V3 v else {5 h3 t! Y& c! K- v" X" Z3 q' u
restore
# f+ x2 ~, e, u di "cannot find pmaxlhddy240"
6 g$ q6 J) P4 H! Q' D/ `% a ) p) `/ [. X( Q( r
$ ]1 r; ]7 Q/ \1 [$ A+ z7 M
sum dx240% R2 |% g$ \6 G `
local tempmaxplddy240=r(mean) in 1/ T+ D8 v+ B$ V% H! a5 G
* \% B# f8 }, w
8 P9 X4 E2 D( I }
) ^: P! P& E8 [$ C3 a0 D; T/ m9 K ( F# U, ?6 J @ C3 @* k
- m, Q9 q+ `; W8 W% S+ B3 z5 C
& H. B) [1 D) [% }% l ; ^! s) _8 A/ Y5 N# T2 C
) q- M! Z9 E K' n5 Y8 x : ]( g, k% A3 g( T2 S! E
gen pmaxplddy240=`tempmaxphddy240' in 1
$ d; Y8 U5 c9 \& y; q9 t: Z2 A
: y6 K9 r- |4 W: ]6 c J- G$ ^$ z$ ^ *-------------------------------------& {( j* B8 d* R
4 J( j& ?7 L0 I: u3 z gen price5d=v5 in 1/20
6 ~- V$ S3 @. c2 v; w
0 c$ ~8 k) J! O# G9 Y6 I gen price5yy=_n in 1/20
7 G `+ J- K1 p( ^8 q( l% m
+ v9 v t; }' L' q gen price5y=price5yy*(dy240max-dy240min)/20
5 N! S& ?. i6 q9 k; X6 V, h
+ _7 w# e C, v, a9 L, @' ~0 G *price5y &price5d
( N, X5 m) F2 V: s: K & Z1 L ?% B6 y7 e3 t
gen priceny=price5y in 1
7 R' m2 i* i" N8 x. Z( q6 C
, [6 u, m# ~* _) L% ^ gen pricen=v5 in 1. n: e# V8 O' Z$ A$ J0 a
0 e6 L8 y S9 Y/ Q# {3 p8 o
! _# B& K0 ]: n# f: f& `
*priceny &pricen
( G; G6 w" m2 R1 X3 q; Z* o9 h5 C
& u9 t& V f- k2 Z
2 M7 h$ [" k7 c5 h$ A/ B6 K& t *-------------------------graph------------------
# v' `- {1 O% z* N1 K . n! d) }( L1 G; l% ?5 O, ]) D
tw(line dy240 ddy240g dx240)(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black)) (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)) j @, \8 Z: Y" E7 L
* Y b9 v+ R& Z6 K: t) F
* ---------可选项目----------------------
- z( F+ c7 g+ |( S1 Y8 j8 j*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))! G' l# J4 k' C$ A
}2 a/ }6 V4 q `/ @
end1 }. M% h4 P6 g6 u. }! r
|
|