|
maodeng 发表于 2013-1-28 13:13 % _- y0 h3 `- |
. hello 3002362 ~# |3 F7 f/ ` a' T. K
statement out of context9 D. h) i0 @4 k
r(119);
0 ]' _4 M! Y: W& |% @, N0 L抱歉,最近太忙了2 D L5 M, u7 k( ]/ M; x- n
2 V. X0 T$ u) k- H {' M
300236 我用下面的程序试过,没问题: h9 a* K+ t5 N7 n1 o: d) E: q" E+ V
. P3 s6 ~$ F. z3 d9 S5 d0 g: Q
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
9 ~) K% t' R8 f" x- a: _- M3 J. F6 t$ C) @" t
capture program drop hello% v% m$ O; _ y8 a8 n! @% ~
9 {1 f. `: d3 T( A1 @/ {; Tprogram hello1 [ x! w. R# D: ~7 _
+ }" ^. J$ D& h& O3 o
quietly {9 m" K8 K) d, E L' Y# d; k) k8 [
$ ] N) v& u" u* P' Y7 F% d
clear' ~8 |" n6 s- F1 A; Q% v
5 W) z2 s2 g* L& b; O; p* e2 Ncd D:\stock\test\source
4 x: ~. G3 o2 f( i7 h: J* T( L8 @4 W# \" K- T- I$ P6 t
insheet using `1'.txt- S& K% |" b4 u, ?8 m* v/ U6 d$ U
/ Q9 I7 c' ^# W, h# B! G keep if v5>0
, v) O7 K/ p# ~; _# z * z* o4 `, H \/ S% I8 b' Y# A
gen vt=_n
; l1 F, s2 w6 \, t1 R$ {/ D$ U6 q : [. h4 l! n8 U* Y$ p# s2 w I/ p8 z
tsset vt) F _( ^; u8 q7 j3 E3 b4 d+ ?, B
% l/ M: u* J( w+ a3 z gen zf=D1.v5
& E) [: [! l B( v2 n# D7 e- B# X" q% v* r7 v r8 C
gsort -v1
. o5 k7 W2 T2 K
* A0 a: O3 K2 } gen avol=v7/v50 G/ q6 K6 z- D1 ~( E
+ R' o/ D$ P6 W" d9 x# k3 d7 _% m
keep if avol>0
' ^. c0 \0 N! }: L7 A . k3 D% B( m/ ?: m2 q0 f
drop vt1 `& A" P b9 Y* l# j2 C( P
d$ H2 w0 C7 J; d$ A! B/ H gen vt=_n0 ^9 m% N* j, O* S: e% x/ z
1 }! s- L4 y0 r/ N: V. Y tsset vt, M( U+ X! m$ p5 X6 a5 u
/ f* B1 U: }8 [0 t3 a sum v5 [aw =avol]
\/ x4 O H2 `
4 o+ G" g0 F" A; `( ?6 S! T7 w gen amean=r(mean) in 11 Z# Q5 m8 e( Y8 r' S5 f- j: P/ k% X
3 N) W5 f$ p. f) q; b. R
* 总加权平均值 amean$ W1 A8 i% m+ P, z4 n
7 w% f( g4 @$ h ' [; D; b! X% F: N5 z
keep in 1/240# y- X: I+ `& O8 V
+ ? _- e+ Z6 ]: \ sum v5 [aw =avol]# q* A6 R) b* K' u
4 ~7 a- H l8 Y, a* A gen mean240=r(mean) in 1* U; c( t3 M% k' s, k7 G
7 u* W) U. l. ?6 u0 T
*240加权平均值 mean240
: T! T: I6 z5 n; c4 {# x$ o* O! w
' P/ M7 M1 H: f set obs 500
| M0 C' ?* j8 A8 ~
7 Y; {/ @6 N; |$ ^# E5 x kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
2 T1 W k' c8 P
( d+ C) K) ]" {4 ~4 [1 u$ P *240 kdensity(dx240 dy240)
2 k9 N! ?) ~1 H6 m" \0 t1 _, m$ V
: `( q2 V5 [) D' f: Q sum dy240/ }9 ~: M& K i6 O+ P+ o. y
9 X- l; Q; s/ P5 \% C gen yxis=r(max) in 11 }6 i5 r: J0 o
: i; [/ y1 d2 j3 R gen yxis2=yxis/2; b0 O5 u* s. z0 F1 b
* ]! l% }) k0 K& }0 T
*yxis% e) |5 [1 _/ d# b
8 o v9 b! o& s' ^ gen dy240max=r(max)
7 Y8 x" F; c; s: L" ^+ F
$ R2 H1 l/ n: \8 a- U* Y+ Q gen dy240minp=r(min)
% N0 l# Q5 O8 E; M 8 I, A' \7 D1 a2 K0 _0 {
gen vtt=_n
1 z0 r( _0 ?6 N$ h0 X( _# }: b( J" m2 _
8 C1 ], w( B4 T1 S; ` tsset vtt; }+ H; M+ f- L0 u% ]% l
: a0 h4 l1 x$ i4 R6 @1 Z. l gen ddy240=D1.dy240/D1.dx240
2 K+ w, j) A! |% M: J1 K 4 X9 d {( n7 T `% V9 R y! b
sum ddy240
, a2 c( D9 U! e: h: e# Q# \ % h- K9 K2 b B& ?5 J- H
gen ddy240max=r(max)( O% L" V# L+ i/ Q
9 W: p6 y7 y! T+ K+ ~9 y gen ddy240min=r(min)( O: Q) ^% q. m$ X9 K( {* [ [) [, m y
; V( f4 _: i& o7 _# l$ Q) M9 c
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)$ {. O ~0 G2 N
6 G: O! _) s/ j5 q& S f
sum ddy240g1 \) ^* b1 `/ y- e% m
9 S8 Z6 r) L7 M% } gen yxis3=r(min) in 1
5 R4 [2 r8 O- X: W
* \3 [5 Y! Y1 X, h gen yxis4=0 in 1
& A: Y. q% x1 l+ U: o" v8 O8 e , t H9 W1 V' a' B
*ddy240g ' i; @: }5 s! l8 W t) S2 m
s7 N# B5 N D- X9 \- B
" A, Q$ r9 B& f preserve
8 [9 @5 ?. E/ r+ }4 A! q7 h1 N7 W
# h( ~+ A- y! V( y sum v5 [aw =avol]
; |% w. P( X: |& w5 o' x/ Y " O% n1 m9 A0 V7 u2 h) O! m* u
keep if dx240<r(mean)
" K. C: q4 G q6 T8 u' W! E- }; g ; a! m+ ^- X8 P
sum ddy2408 `1 J, Y% Z7 Y4 f7 L6 o$ A
) `: l; v8 |1 B# H) _ if r(min)<0 {
' N# b1 h' F: F$ p . H' _" p' n- { ~. [2 H0 g3 D, t
keep if ddy240<=06 G& p4 r5 k- M6 a
3 s% v3 F) S( \2 _. N count
1 a" |% y2 x" s( H8 @0 _
( a" x% D5 e4 B# H if r(N)>2 {! H. O8 z0 j" H+ x. X
1 s3 P O: n8 ?: l% W7 O* S pkexamine dx240 dy240; C4 t! }! s2 I- A- a( H
: ?9 K8 E4 P4 U7 N4 ?
local tempminp=r(tomc)
) d/ @9 t: Y! _; @5 a8 o restore . P# [6 {* f9 h; T8 c9 u
}" O8 F3 f' a8 G1 L
" a/ S& x( c4 u# X' N
else {
' `0 q; w$ I! e " |1 {1 s2 K* Q
di "cannot find minp"
4 @/ P" H8 ~" m 6 k( {8 V" k2 ~4 j, `0 B" c2 n. X
restore . d! h: C+ U1 w9 f. N2 F. ~# Q+ R
sum dx240
2 _% B2 e6 z4 H. R# U8 K local tempminp=r(mean)
3 U8 z5 u1 K2 U; j5 L * g1 B0 R4 Q+ V; ^! [& y/ H& c
}
6 B1 U! u9 G" g! U- s9 n' f4 S }% ?1 w, b1 G9 c
else {
3 `+ L# u3 J0 ^
) W/ Q2 u8 F# `/ \ keep if ddy240<=r(min)) e0 q+ o9 K4 _' U1 `
0 q# b& V- R! v4 F- [& L sum dx240
, w, [6 d* [$ y3 P( c. r
0 w+ s( G" q' k. o4 Y5 d local tempminp=r(min)! L0 g7 A! \! ?) l: G& |; U
restore 0 Y: l+ D5 m% L% m3 l5 R: d
}
3 b+ A2 d, e; R$ e2 R' u8 j6 L- C' F3 V7 {. \
! [6 i1 W/ s. h3 H9 c) `
0 e7 h8 L0 d5 c5 ^- V2 S& h gen minp=`tempminp' in 19 ^+ J7 Q3 h; D) f3 x3 i
*240 minp
6 {' ` c3 {2 ?( m3 r6 \ o. `2 _3 y
$ `- Z& P1 `) E) W 8 K3 l& U. ]( F: D
preserve
% _% a: z" X% {% _8 W
0 c8 J, R' n& f8 U0 r" W sum v5 [aw =avol]
" Q' b$ m+ ]4 {( D' f
% U9 I. S3 p$ D" n: m$ x! G* p* c6 W keep if dx240>r(mean)
! e2 G2 H( L% ?, t 6 @4 j! e3 t6 g$ o1 _. l9 t
sum ddy240
2 m8 R4 h: Q6 n. B
4 g- ?: k: n9 ?$ g4 o; r, w" Z: J if r(max)>0 {
7 l) X' a0 Q+ H4 q
a0 H. P! ?7 c1 N- Y' G& l4 T6 D keep if ddy240>=0! l1 Z9 U; z8 M" u' ]7 E: s
9 D8 m3 r! V- h+ v
count
6 F# k! K5 C) Y$ W7 k/ E8 b p& K
% [, i3 ?& b* l( B if r(N)>2 {) c( n$ r b0 {1 f: k W
6 y5 X2 l! ?' d* s3 v! ^
pkexamine dx240 dy240
4 u4 j9 S1 P4 w& F% H- V
! y: [8 N' h4 R2 P4 z local tempmaxp=r(tomc) + Q5 K/ Q$ h$ r
restore ! O% q- b3 T/ G- k, Q& o) p7 G
}3 D, C& X& U, z/ \; x# l
1 K. }( B) s6 b; g+ K
x. c; _/ W' T1 ]
else {
; b# i" _7 G0 g* V2 j- v3 @) `# B restore
5 o. n$ ]' X8 B& W' R) G3 K# s& e, _$ f di "cannot find maxp"5 q% ]( X. A0 y
, q% C% B7 o* E# j: r, s
$ Y j' C0 L9 @9 g6 H. b! m Z
sum dx240
* d* D( r+ E7 f, o1 }7 v local tempmaxp=r(mean)
3 L; C$ B/ p+ |" x" F5 d, k # `% Q0 `1 a; o9 I9 k6 U; z
}% G5 L/ ^+ C6 ~* B8 S
( ?0 Z9 @% E2 {# a9 Y9 v
}
1 b8 q2 `5 I! [+ S$ V
5 v5 G0 c, ~) K3 h" s& s else {+ Q/ `. v0 A1 O) N" w% R, k0 ~, S
# @1 a2 W9 e2 A2 _8 n keep if ddy240>=r(max)( Y7 o# w" Y; b! `4 W, v- \
" a; M: I# ]/ \% D
sum dx2407 L& T! q0 c3 |5 L
k/ x. g. `+ v3 D+ N
local tempmaxp=r(max)
! j+ G0 e$ x) D& Y* z+ j; X restore " t' [2 p% t; v0 ^/ L
}+ K1 {' b2 M6 Y3 T( M& X+ k
. t8 V( m6 F6 v6 N
% h/ ^# z' p9 I) E
4 X/ r. P: D t
9 \6 a% ?& C; ?
gen maxp=`tempmaxp' in 1
8 A& g, d! ]5 @- N* W. q
' c8 T( O( s' j) v1 i8 v8 k *240maxp( U: q6 @: a, c2 c6 B4 Q- e7 f/ x
7 V( r4 G4 G% h s7 R# ~. b6 Z
& M* U1 Z3 h0 J" J+ E9 g( }' p
*-------------ddy240pminp左侧高峰值-----
+ L, F4 [* e; P+ i ! S/ m% b2 L- f
preserve 7 M& j# |; {6 b6 F h" a5 `
9 ?, ~8 e. F% A( B$ e: r5 z- a# U# Z keep if dx240<`tempminp'
, [9 t. \* W4 ?' z& n4 B- e
( g* Z3 k' h W% _( O; P keep if ddy240>0' ~; C. T% t/ H8 k' x' j( b6 E
8 [- x$ A* Q) J count
7 Z- L: C( X" ]# U; ]
# Z" V; ^" c/ m& z if r(N)>2 {
: u. D; i8 I4 M' E
& u3 Z Y* h2 |+ u. ]% }$ l pkexamine dx240 ddy240* g7 B3 j0 ^% K4 ~1 ]
& g. @" `4 v8 f' j. v- f local tempminphddy240=r(tomc) 2 n) i9 K0 |% b/ A+ E
restore, |& D% P: B0 a2 P" S L! @3 _
}1 ~$ K: y' j# l1 U/ N; r, u
- N. P. L1 _" J8 ^ else {
6 ?, X, ~ B* \/ ?/ l) ~! M restore
9 R* K% C/ Q6 U! r di "cannot find pminphddy240"1 d8 K, y/ {( U5 a' q( P# p
1 e1 F" B: H0 \" _7 d8 u
8 ?1 t8 N9 v. _! n3 g sum dx2403 A3 k1 {4 f2 n: F
local tempminphddy240=r(mean) 9 J: [0 e) z5 ?& W& D5 ?8 X4 S
9 T+ r8 T! G& A4 j* I) d ; k5 F1 ]8 g3 l4 t2 C9 Z
}
& ?; q9 O# T2 F3 I
6 U, b/ x" V: C1 ~: y( ~ : R% q% b$ K2 b$ U
" e$ K y2 w' X: l5 m$ H1 _
+ m1 s" n; E7 @ A4 y) ]3 U
5 q6 f% c- I" d& L, u
% ?; _6 N$ O6 C gen pminphddy240=`tempminphddy240' in 1 j4 T8 Z6 V2 P
& R$ w$ ?( @" a L; K6 j& \
0 m* ?& I+ \- m. V9 S! ~$ I *-------------ddy240pminp右侧低峰值 -----------------
9 n3 C8 B% `5 a6 I3 `* I preserve # C5 _7 T" Z ^
" [ |( t$ u) T( Q9 S
keep if dx240>`tempminp'8 q5 @0 ]% j( g/ M
& T/ V7 j- h+ j5 |+ J
keep if dx240<`tempmaxp'
+ A* u+ J w8 } % a$ F r, [( }( _! k7 _+ P
keep if ddy240<0* U( m) \% D! f/ {3 o
- U# K) E: L6 c, X! j( j7 B, F gen temddy240=-ddy240# k" D- K. f' n
) H* `7 j, X! X9 J- N+ K A( R
count
/ ]4 e! P" o8 r
( c' u2 X; C/ L9 @ if r(N)>2 {
& b U9 t M" y
7 U' U% r6 ?+ ^2 d3 |$ z9 L pkexamine dx240 temddy2406 i. u0 D3 ?& v" Y2 h; E
$ a. }: M, G0 `1 X* |2 @( k local tempminplddy240=r(tomc)' ?; O. a4 M r2 m
restore
: h$ ^5 ^6 a: v( X) n% f }0 w- M( o+ N% f; I% Q/ ]
$ U7 y2 | Q7 N1 \/ H- W else {8 \; {" _; K+ F4 @! x
1 `4 T# k, Y/ f9 r: E
di "cannot find pminplddy240"2 h1 z+ j$ `- s2 v7 e- r( |: f# i% ^
restore& k C' {( S# F; G
# G2 {. u, M% j1 p" d
sum dx2409 b9 q- {/ y! L% B3 y/ X$ p" Y
local tempminplddy240=r(mean): A% _# I3 O9 ~; |" b6 } x6 d! C( T
. n2 M+ d* l# [6 T. L/ E
9 s9 o2 w8 }# b. _$ q }
- t2 d9 T& O5 L$ r: F. g9 y* N , V9 n/ S) y; ]1 n6 B
. e5 p: _3 \. m! \( u
' L) Q/ A% P7 w ?$ @& u% z
6 Q8 @; T: i8 W. z! I
' A! w4 ^; s2 Q8 L, y gen pminplddy240=`tempminplddy240' in 1
1 [" Q0 a6 x& v1 l# L- L9 \5 F
! l# m. o1 S5 Z) E* S; p *-------------ddy240pmaxp左侧高峰值 ------------------- Y9 H: \6 j) Z4 O) j& [
9 A' b. r" S: N9 \
preserve . _7 c: L3 ]* e3 a9 a* w: o( O
0 Q8 s8 D5 H# q9 k6 a
keep if dx240>`tempminp'0 W! h2 c0 m, u- D# V4 J
# [; n& l: D& b8 O5 p keep if dx240<`tempmaxp'# n D4 |% ~8 a. a# D' H! |0 y
9 S6 o i; i) P, K0 T
keep if ddy240>0- s; x- K& @8 A8 N2 O
count K; X9 E/ V4 G* T0 J
. g( ]+ s, V9 h9 h) J
if r(N)>2 {; U. f0 D+ h" N3 ^9 W, o
2 o) k3 B( g$ z3 X, w. F/ |- b5 ~. ] pkexamine dx240 ddy2404 }( G% y8 Q; R3 _) N
4 k0 s' h# ^. _2 U* @: F0 l
local tempmaxphddy240=r(tomc) ) j6 \; A+ j4 i
! `! p2 C* h/ M: V& T/ O, I
restore
; t7 l8 _# Z B } v" L5 H! m0 G: P7 G# G
% S" ~ ^" L3 i/ J& t t0 \
else {
, ~# `$ P1 v9 d9 L8 E1 b0 D- f9 d8 k + q+ ?4 I& @6 k5 Y% Z
di "cannot find pmaxphddy240"
% e6 I- G( p5 d6 h restore
; ]3 G1 b- s, ]
0 ~: ~2 C5 a1 O2 ?, Q! s sum dx240
$ N, h, V0 i5 F local tempmaxphddy240=r(mean) + f3 X& \* `! I7 X% v7 C
4 \- J0 Z8 ?; ~" W* n3 w $ q7 Y- U/ ]; p+ O
} Q6 }# s; V6 h; o7 l2 t3 R4 C
* O3 b7 C7 P. T, k5 F
9 O/ D0 B6 s- I( _5 A9 s ; p* S; T {% V$ B) ~6 f& \) c- l
# m6 v o5 k4 J- B
. o5 ^. u* @: @0 m ' p5 I# k) S' c0 b
gen pmaxphddy240=`tempmaxphddy240' in 1
2 d$ g5 S- j- a" a( H7 e
! m% I3 S i, y( z& p# ]2 G9 M) b
6 g' ]5 I8 m/ z5 v6 C7 a *-------------ddy240pmaxp右侧低峰值 -------------------/ p$ z$ G1 Y3 I+ U& W0 @7 e$ L! [
5 j5 L' f, q0 b* d0 A+ {. R6 X1 Q: D
preserve
: ^' d6 }" z, |$ M$ O& \# E
5 q3 v% u% a$ [7 O$ U- q# @. h keep if dx240>`tempmaxp'3 v2 y/ a( C1 H: e- `4 ]
, R- m, `6 @- z0 L
gen temddy240=-ddy240
; e% k# H9 L ^. k 2 W- Z. Y6 S/ f* |: h3 S2 o+ F
keep if temddy240>0" P3 W7 D4 N- `3 D) C
& |5 z1 H4 J* O( L( O) J count4 |/ b* |' l! C6 O9 T
# Y. e' s* ]% t" ?
if r(N)>2 {
. d2 g9 x- O7 W* `
( f% R6 o/ Q9 [! p- O- b pkexamine dx240 temddy240, j7 G) \8 M+ \9 ?* |$ B' `# `8 G. |2 `
* A/ A) y: r) u M
local tempmaxplddy240=r(tomc)
+ }8 O4 S1 T2 a7 Z restore! m7 f% Z) B4 a3 \0 s+ p5 `
}
m0 z2 Q; c; l
5 w6 \7 |: p- V else {
0 Y ^7 G6 F8 G4 S/ L/ S; Z4 d4 K restore( G& g0 O8 R- u! O: u& u5 N$ S/ S
di "cannot find pmaxlhddy240"
" }' x* J" ^2 }7 t) O/ W0 d 5 {1 r3 p( f; ^& p8 e- z8 `
+ l" |/ V; J3 N' z& g sum dx240" _) F. G# r1 n5 u7 \1 T3 [
local tempmaxplddy240=r(mean) in 1
/ d, O( Y0 m" u v6 u$ A % R5 K7 e" j. Z* |8 \! h: q/ n
( t# m0 ^& l; M
}: [/ }+ Y0 w5 l% g5 c! C; f
9 u3 ~; u7 f9 Y3 u! e8 w3 T
. _: I: K* H& ~0 M 2 A" g0 o' Z0 Z2 W
% C* d& u/ l3 s1 E: O
& _7 L& P. f: ]4 I+ ~ , [8 X1 h; A; B- u8 o; e; P
gen pmaxplddy240=`tempmaxphddy240' in 1( M- ^. M4 c/ r/ S
( t) e. \1 T* F/ ]) F8 d
*-------------------------------------
% k! {% |* r7 C( t8 X1 r9 R; T) P # v; b% p* n( x# G7 L6 d
gen price5d=v5 in 1/205 U& J0 K% Q4 m) W, o% o
3 Y2 M q; L! N+ [ gen price5yy=_n in 1/20( @) D' K; o* ]- m' j' Q' E# X
3 q; Z4 H* V, g F$ e gen price5y=price5yy*(dy240max-dy240min)/20
4 s1 I' o' ?3 {- p5 [2 R+ F9 P
- ~, V7 s% R8 g9 Q' w+ I$ g *price5y &price5d
* k* I& g0 ]' R0 m
( d& T% w& e, ^6 n gen priceny=price5y in 16 |4 L3 w: e: f8 P1 Y+ A; E
7 X: z3 d% Z: M# X0 ^# T& e6 F* S
gen pricen=v5 in 1
0 G9 d6 m& T* p5 |8 U
; B c3 \' t% p$ X$ N % j3 J$ I! }% X
*priceny &pricen
( V1 d1 f' x' a/ }* }+ U0 P
* e# B& T* m& ]/ K$ g3 ?! Y7 W ( }9 } \8 q! L
*-------------------------graph------------------/ F9 x4 z# ?" i4 v7 s) p8 k
0 Z& j8 N8 ~9 ]9 ^/ b5 [! d& A
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)
: G" U4 R$ r/ `" g1 z b- @9 B9 Y) d) p2 ~1 E& u! _4 [7 _
* ---------可选项目----------------------
2 X8 \# z2 C% _' m) X1 X. }7 F( p*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
$ p+ R3 B) ]5 j0 b" U}. u. z* n* p$ \/ ?$ D! h% U
end& N% m8 ~ j1 C* d
|
|