|
|
maodeng 发表于 2013-1-28 13:13 * g% S# e$ F' C; @) q
. hello 300236
/ ^; @# f% s. W: Istatement out of context3 i, K% r0 }1 c: }- A8 ]% r4 m
r(119); * ^- x" D" j: K1 C% u% ]. t
抱歉,最近太忙了 V8 D$ j6 ~( u
; V9 b- a! K1 v0 w+ g2 T: W
300236 我用下面的程序试过,没问题
+ `0 I/ [5 a0 S% l+ j; Z) R7 U+ b* ~. E. V6 P: G. [3 X# N$ `
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试5 G4 ?' t0 h8 g
/ [: q3 p2 [! Q7 o
capture program drop hello$ T5 S" V R* s' {: }
I9 i2 Y: z6 ^# O- T! T* \program hello
+ U& E8 Y9 b( p' k9 y& Q) [; d2 w* [& ?: ^, H* r* Y# s
quietly {
n* u- }, E# f% J9 ~
' j- D* O" _! C% j8 v. n6 j/ Bclear) d! Q. Q1 r9 M/ ?7 J
# K0 A8 `( ?7 E6 M% \
cd D:\stock\test\source
8 n! v' ]% z O* _( J7 y3 ^) _, p
insheet using `1'.txt
5 Q4 D$ T6 n) r/ j2 U- J9 D% n0 G- a: b: J; V
keep if v5>0
/ z5 Y! q9 `* S( U* V7 Q
1 D1 q; ]+ Z5 s; W2 w& f; H gen vt=_n5 P% U( I7 f: S/ c
) _/ Q# X5 S0 {- P: @% D
tsset vt
: s" Q0 W. ^8 g, k- W3 V: q; Z% {
6 N+ k2 y+ u* p" c. J: E# M! U2 x/ C gen zf=D1.v5" y9 `" S# B. w* d* E% \+ T7 l
/ i; N% w5 q: t4 }, W3 D9 b gsort -v1
, M5 k' }6 v; m; L' G& ]! } P! E( _# [! v0 S) o. Y' v
gen avol=v7/v5- w" v4 x& w/ k3 X K5 n
& H$ D0 l5 W% I( p8 s U
keep if avol>0
A- |% @7 m. `2 x4 W 2 j& F- |0 C9 Z) ?
drop vt$ D, f j s M1 \: N
* _! J; ^3 J( q* C gen vt=_n
: }5 K* z* G5 v
o# ^' D+ m& {' I5 P2 M' E, Y tsset vt2 ~ g# h" A, d$ z
5 B& G# U+ r, w7 j: f* f$ C sum v5 [aw =avol]
" _* j$ X) m- p' ~" u y( Y& f6 f3 G
gen amean=r(mean) in 1
) t0 @; f% J+ t. T ; i- S w) J. ~ H
* 总加权平均值 amean+ ~9 x/ Q9 ^* _6 t9 g
5 [ ]3 @8 R% Q1 w, _5 ]. S! q # A: @8 w1 F/ z x/ k% O+ B5 T
keep in 1/240
, X4 Y) O: P% e) F/ f
* m+ `5 E" o# M! j* N; S$ d sum v5 [aw =avol]
, A. B H, I+ }7 i! s
& j4 ~: |2 g& @- R8 m4 W- z gen mean240=r(mean) in 1
1 h0 T6 P9 x& z# w. `
5 Y6 n& q+ [0 R3 j4 M *240加权平均值 mean240
' k5 m) m$ m0 ]
0 N; ~9 z, @5 y- `+ H: l5 k1 b set obs 500 % o n$ E( J/ e5 x$ E3 x/ a+ W
+ Y& O, s5 s D6 D8 V ^7 @
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
! h. K3 G0 _/ v, z 7 t2 F. S% X$ `8 l5 i/ c+ f
*240 kdensity(dx240 dy240)5 S+ Y! Z0 w' [. A( k
* K5 l0 ^7 k s5 {' M0 ] sum dy240# Y* q* N- Y2 q6 D: u/ s0 `
8 B! i7 W% L$ q$ E4 n0 T5 Q6 O4 E, b gen yxis=r(max) in 1
. _ i, r9 B6 @; Y- j$ c% n
; l; `+ D0 r2 O2 t& b gen yxis2=yxis/25 I* @1 X2 C5 C* l" M# d0 ]
/ B( j; b7 g: \1 ~ Z/ Z5 q3 @2 I
*yxis6 I# |6 H2 N! O; H
* c( Y# N, l' j9 }* A. Z, F
gen dy240max=r(max)
3 x9 E! @' X& b6 o5 ?
3 c+ I" h: N8 ^ gen dy240minp=r(min)
* b# M! T' f/ `. ?$ e! M H# ^9 U
7 w7 n; |8 u; o0 Q gen vtt=_n" V2 E/ `9 Y6 G# `+ u4 c ]9 C
7 l I" h" O) k; `* d* N
tsset vtt& w1 k6 T& e$ ?5 G# E
$ W- h, Z3 r5 |; i2 F% \! _ gen ddy240=D1.dy240/D1.dx240- ]4 f: S* x0 b5 J: A; j5 M
* ?( Z4 W+ \: @8 e l9 }( c7 B
sum ddy240, R- P7 T _4 ?3 c2 B- N
! P' ?9 g* b; }2 ?) O. h; @ gen ddy240max=r(max)
1 o; z+ a' l- C0 _$ G& [ | R% M7 A$ @1 F: R
# j% k% |$ p% r( {( \, \# }7 x$ D- q gen ddy240min=r(min)- p8 L* f( n2 q, W8 W! J
% o% C6 @, _, f& x* c6 [" M
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)$ H$ ~5 j% [- H5 H
$ R+ `/ n) \: |0 n
sum ddy240g! o5 q. _7 U6 n1 K1 v; K/ ~
$ G& X5 ]9 A! F0 N2 l( V gen yxis3=r(min) in 1
& A$ n( u( t/ J* g8 ]& A 7 J% |' f! c3 Q# H
gen yxis4=0 in 1
) s' [7 s! _0 n$ K3 c# v* ?! Z
: T1 K! K$ v5 E) y5 S *ddy240g
" f( H4 [' J* ?$ _2 f. q
& t' G3 l8 s3 x9 U ; W. c0 N+ B. V5 x% F4 p0 G
preserve
! M* \, B5 ]2 }" N8 y$ { ' j4 _& B$ V Y
sum v5 [aw =avol]; a* v) f5 `9 x. ?5 R! K
( ~: n/ c! n# @* i keep if dx240<r(mean)9 x2 R- Y5 u3 [" b4 s
5 b/ H9 C6 K+ p& B
sum ddy240
+ s" O }' S+ v: c
. `9 }# z2 N ]+ x F5 q if r(min)<0 {; T* }4 X6 ?" H/ g {6 L! g; n
& j3 a7 b0 ]$ c, o
keep if ddy240<=0
; s: p, e0 Y$ o! v " e; o' v4 ?$ d" H
count- F- D6 C0 G6 h
4 C9 I; m/ C" h+ t w9 N7 z$ y' g if r(N)>2 { n. z: p+ R6 h3 w9 E/ l% h4 X+ t
, D; F4 y. u s' ] pkexamine dx240 dy240: M" S# y0 O2 d1 e
. ~6 p* b8 Y3 ]- ?1 M0 n local tempminp=r(tomc)6 [- c+ j, t' Y# Z' D; ?& r
restore $ X, p8 P1 ^/ U- d' V
}
; _* @- v z- X# f; ?0 ]" e6 G8 E , c8 z9 ?1 C9 v, t8 H
else {
6 }; F) ]0 g) m& K$ F
, i$ Q4 ^! a, I# ?) E8 P di "cannot find minp"
& a$ O: m& Y/ t) ?1 v+ F7 y, a
- ^1 H$ A& P- g' v restore 7 G' F/ m. W, |3 B# I) G2 \% D
sum dx240
" S. C/ D/ H+ X4 r; i local tempminp=r(mean)! G* Q0 n# Y: D) E
% w- @2 `' W T0 d, G9 D }* y! v# I! Y( _! O2 V" S. o
}
/ b. y! [! m" m; g; i1 E- e, m: ] else {1 v2 a( T9 N& Q
. e7 a4 b" Q3 x' o e keep if ddy240<=r(min)2 a* e" q4 A1 j n3 b+ Q
3 s; Q' f8 d( }4 j sum dx240" c$ w8 Q3 T* o- }. L) @3 j
- {0 s) {) w8 D local tempminp=r(min)' w/ C7 w3 c. c W8 [6 a, Y7 [+ K
restore # J& W( j2 ^2 Q& e1 j* ]
}9 _% [" \3 U1 N# w" s+ z% D2 T/ O
' y0 I( z8 v/ t1 }) R# X& {0 A( Q* K8 X4 H% g3 C0 z& u% B
, S$ O( L+ q( T g8 | gen minp=`tempminp' in 19 F- O. ` ~6 x; s7 W# Y
*240 minp3 d. d. q, Q& C
( X9 [; J3 x1 L M1 A) P7 s5 N+ j, n1 d
0 M/ y8 H" t, j( y! @% V
preserve
) U+ M' l9 y0 z' d' Q
" u* N. p* u+ q$ @# w* { sum v5 [aw =avol]8 L, @! D( b. C
3 A; t) R0 e1 ?6 C' P* w3 u! b keep if dx240>r(mean)0 Y$ k/ [0 X6 _5 u0 C
' j) T$ c) G; F" y/ b; ?
sum ddy240
# v1 Y }! U/ T) B
, Z! Y9 U6 o1 e if r(max)>0 {- W- m0 n& S/ I9 h2 m
* T; t4 Y' U9 K3 f) q. d6 P; y keep if ddy240>=02 n6 K* R5 F( ?* A; m
4 |4 h2 e7 }3 w; @. u% f
count+ i" D1 V) J2 \! i
0 }2 u# |. q2 b
if r(N)>2 {
) W: r* S' n" x4 R3 J7 \4 M7 m
\( O% T( e1 F- F5 A/ e0 l pkexamine dx240 dy2408 O3 w1 E% H3 ?0 M. W2 D& V7 U/ V) g
! b7 L) H& O. p7 o
local tempmaxp=r(tomc)
& q7 ~4 P! j0 Q6 Z c( D, c1 E restore
4 S" V, F/ Q4 m% ^. y }
) p! {# t# ], E7 B0 j% `" W" Z & m# n5 l( l. s6 m
7 P1 o4 r: z( u7 V7 _ else {
; S. | o5 N" r! ?) o: y restore 1 [5 e! E A* M8 R4 V" _
di "cannot find maxp"
- b- p7 Y' R o/ j9 B s" p * v# y" a% k4 ~' j1 z- @! Q T
+ T; b- E* j a8 C) t) `6 z, s sum dx240
! j/ v) ~1 G7 N) `+ L* A1 s local tempmaxp=r(mean)" z4 W, E0 ~$ ]7 p. ^: \
$ D; P: T5 n. g, ?! K: l! X }
3 g% ]- A: p7 l# o# p" N: Q
& A( k( S: h# ~0 N6 d }
3 P( p9 a! Q' Y; I ) f" B2 P( s* I0 K
else {
3 z$ {& ~4 T! T
/ p, B) W% a: D" O, J keep if ddy240>=r(max)) v% }; R. ? ], j4 e
; @ h; O& i0 M& V
sum dx240
4 [/ _- Z; S# R; n - l/ ]5 z0 a1 S- u" p3 p1 C
local tempmaxp=r(max)
# Q( |( Y# j4 E9 z6 ^ restore
6 i6 Y; e" T; C+ `$ Z! b }
0 B% g% Q1 [7 v) J
3 d" s9 O7 f K$ d( A% a9 R- {. D4 v
/ x: U t5 a- G! `) ? n3 N7 v. R' p; D6 i. a# g9 I6 d
gen maxp=`tempmaxp' in 1
9 f b$ l4 E) | n# }; i' a
% h5 q9 f0 v0 o, \- k *240maxp5 Z* Z# \. r' D, k9 p% [' R
$ _" q }7 Z2 k% b
" W" Z% r- J* o5 Y% _
*-------------ddy240pminp左侧高峰值-----" P2 b6 n% g& J# k' l- s5 X
; @) |, w$ {$ i* g$ i- n preserve
/ z7 o2 u, g* Z6 F( {8 k" `& A
' x! J m( {$ u' |/ h keep if dx240<`tempminp'
! T# b+ \8 X; k; {* Q# F0 p$ m
/ _5 i. b0 `) {& h( @3 ? keep if ddy240>0 g t- S0 ~9 r% }6 ?1 v. a
! M5 o1 `: H- O7 {
count, N/ {2 W5 Y0 t& c8 k& H, a( n
( z h: a n5 n. l! T {
if r(N)>2 {
* s$ k! j0 z4 m$ f* G* Y r. e8 w# H" `
pkexamine dx240 ddy240
4 K: E: g$ h& @$ Y* c- i ( W" i4 v+ Q q/ G; L% x% S
local tempminphddy240=r(tomc)
, }2 I3 \5 o2 V restore- H b0 u0 h' k6 [5 i4 g
}
) r) z E A7 b8 @
+ c% f5 @1 O P0 p3 G else {5 b- m! [; s* ^$ \& O/ [% ]: p
restore ' h- \; L0 J- z* d3 C3 `# n. J
di "cannot find pminphddy240"
' f; I* I0 _1 d8 Z: f 3 U. [, v! N! Q2 c4 i6 ~
u1 r- r2 R: p0 |& R. o: H
sum dx240; M# O; ^1 b/ } l
local tempminphddy240=r(mean)
, _! i5 ^2 M4 ?1 ? 6 C. o6 z* R5 C3 s. R% R/ \
7 i) F& s! m( a7 O3 J }
4 c1 V5 S1 G+ ?
! \9 W7 ^& O5 ?9 G( {; I / s/ e. j$ `9 B5 ~0 O( B; k( O
& e8 F) s% z8 \; R0 S 7 u4 z- P4 A1 [. Y6 i! e; `
7 F5 ^/ P& P+ L( b# w; M, E 7 i; }0 a6 z' b3 ?9 d
gen pminphddy240=`tempminphddy240' in 1
. T9 I$ i9 i1 q) o, ~! V- l5 x , G. u0 L$ f" Z" Z
/ T' I0 [% ]7 h$ ~ *-------------ddy240pminp右侧低峰值 -----------------
/ o. h- p1 j, J- ^% g$ C3 E preserve ( Q& f, x3 o2 u0 j8 P+ g
6 o* ^+ W8 p2 M5 Y, ]/ u
keep if dx240>`tempminp'9 I! p- |- a3 W/ Z
* ?, s! O! p) X% I
keep if dx240<`tempmaxp'3 M7 k9 _; m( Z% r4 Y2 Y) s
5 j$ R( w0 w2 E9 B9 `, T
keep if ddy240<0
( z9 m8 ]4 i& ~
: {) N u6 G* o/ v" P gen temddy240=-ddy240( M; ]7 G @+ Q& R
$ T; I8 k7 \6 e- V1 c- h- _ count
; w. P# e; ?2 Z( S$ u' C 4 i, M) D1 i7 C& u* q* i
if r(N)>2 {, W* {$ ^4 V1 w( w( O
4 T" z: f- y% F2 e0 e3 o/ d7 @
pkexamine dx240 temddy240
7 C3 y3 \0 M+ [" [ " S* \5 S$ E( d3 Q+ \; X r
local tempminplddy240=r(tomc)
/ b* z' X6 a& P! N7 X: J7 [ restore
2 C* T6 A" x2 h# G. x; a( Q3 j }
0 I$ a: p; ^" {( G. p+ y . g. U5 p# ^/ b0 d/ e/ n$ T
else {6 {9 c' y, M# [! J! q X* m
& y8 N# T# Z/ I. W. W: j di "cannot find pminplddy240"
# X* o7 ]0 ]4 D! m( D restore
; l6 S# \- l0 j) H8 Q * A+ g* \* J* D3 K t3 _
sum dx2402 L% J( m( Q# ~
local tempminplddy240=r(mean)
( A7 ~" W% d2 Y) _, {2 z ! h; w: q' R7 K) @$ c
/ Z# K- i0 {1 G7 s& K; t- R% W }
" I4 Q, I7 u9 b
* D7 E$ Q: [. t' s/ N v: q 6 w M. u k# r+ g: r# T( P
- r, Q* a# D- c/ L4 j; R
2 p) |$ x7 T/ M# u " b* j/ t, D% |# k, j0 ^, j0 W
gen pminplddy240=`tempminplddy240' in 1) I5 |# l! z) }$ M; h& f
+ R7 Q" K& \' R T6 O% ~5 e# @3 j *-------------ddy240pmaxp左侧高峰值 -------------------
. }% b* c# M! I3 H# H( d" x . o' Z2 _5 O4 ^; d5 Q$ z
preserve ! a0 \0 L9 ]7 ^! f/ f- B3 K/ D
& V7 K+ U% S- `7 ?* C% h# D
keep if dx240>`tempminp'
- c9 N! l+ i5 c & w$ @1 B$ k% s" r' W
keep if dx240<`tempmaxp'
7 u* T) @7 T+ _' z6 Q + S d0 F* k: S$ m7 A0 x
keep if ddy240>0
* C# P2 I4 S; B count
( A$ K0 m6 r' p6 p/ J
& \% q ^1 C/ w3 a2 \- R4 a if r(N)>2 {/ x9 a& b, \: H) C: ?5 D
6 j* L9 h0 L, m; ^: ^' X& q
pkexamine dx240 ddy240( h8 s: Y* l2 o, O3 ~; k
1 F G# ?/ R' _4 R: a local tempmaxphddy240=r(tomc) ( b) a2 K4 y! A2 l
6 G5 {# I, Q: E
restore
8 C H" \: n6 ^8 {% } }4 ^; Q9 g& |& G& T* b
' B# ?0 e, g9 i3 \0 J3 E! t3 z" h else {4 O2 q5 B6 m6 g: D. F/ }; V
9 f9 [. E4 S: N di "cannot find pmaxphddy240"
3 F' d0 m3 y9 z, g O* c# A restore
; s- |- z8 e. u/ } $ X9 e3 n: ]4 i$ n" D: m7 ^. z
sum dx240
, a) ^/ ~ D: w local tempmaxphddy240=r(mean) % s) Z7 }0 W% s# L& H
) w' s% @5 S: W) N6 w+ u# A* ^& u5 J
( v8 q# q6 X# r! O3 N }
' \6 y4 `( e4 I* F B4 t. I" c : G, ^2 l7 L8 u& d0 K% _- C
4 M+ H5 u1 ^% q% o8 G
8 ?/ B. u% X* p* H- |0 P / u. E$ g& e& m( k9 f$ {; c& L. Z
9 z1 f6 b8 J; F) V , l, ^3 h7 W2 _! }
gen pmaxphddy240=`tempmaxphddy240' in 1! T. ^2 a; u2 u$ ^. j
; D6 X" _' D m4 J9 }7 n . Z4 P. }4 m- z, ?; h2 t
*-------------ddy240pmaxp右侧低峰值 -------------------
, C; e9 a) N- u. t, z' ?
( N7 B8 P" t6 `% P0 t. X K A preserve
$ Y! s4 k$ j: N2 J2 Z# ^( e$ x
9 r# t* i) k% k% N. o c keep if dx240>`tempmaxp'
+ U& x1 r/ y# v; n, {# E$ U0 A8 x
/ u" ~, l% X! E6 D gen temddy240=-ddy2407 v% k! @* n1 q5 s
5 k* A3 a3 G& a' } keep if temddy240>0
- P: w1 I# a6 D# u# N 3 X9 M! `3 e/ j9 k9 n# M
count
+ E% J3 \- V$ P( X7 Y [9 F/ I 3 Y, V9 K4 |0 M1 y% q
if r(N)>2 {
4 A% M- L; d8 j _7 u 4 b! S$ s( {3 o: ~2 W8 Y
pkexamine dx240 temddy240
7 a( F$ C0 K$ I( o
/ _5 b4 L8 S, L. x local tempmaxplddy240=r(tomc)
- k( `* w, Q' D6 e+ W' C" U { restore
3 K5 |' r0 e: {, v: A- ` } s- m" U x1 d% p; v Z
, k2 Y7 r, G( j0 E: c4 Z% l
else {
0 T; X R% c2 \& j2 @. w. H restore/ O7 o0 _( x* ~$ o
di "cannot find pmaxlhddy240") K+ Z. w& ^! ^3 s; {' W
* t$ t: O8 Y& _! b& Y- t 3 N& n# B5 u- B4 B) }* f% J
sum dx2408 E4 Z( M; y3 ? p0 e1 {7 l) `
local tempmaxplddy240=r(mean) in 13 S3 ~1 U2 t0 |- M1 _8 q; j
. ~4 j; k6 g/ P8 @& \! }
" Y$ C" W z8 E7 _+ E }/ Q0 U5 O' F$ u! ^6 D* T5 ?
8 N& \, c8 n, C* v) B* Q4 L
; l/ y2 a7 E% ~0 e+ X
' T9 G1 c0 H0 Y3 k6 M0 s
; p; p. {$ g+ e _4 L$ \
0 V. P, |8 p6 b5 Q; A" _9 d: n 5 C4 [5 r2 M5 g2 L4 ?- z/ ?, B
gen pmaxplddy240=`tempmaxphddy240' in 1( x7 f) t$ n: Z
6 T% c) o. ]; _
*-------------------------------------
5 l, G% B, y: D9 M1 h! S : l. t$ t# _9 }
gen price5d=v5 in 1/20/ }( j5 N9 s$ ] [4 K( Z
5 a+ G6 i2 y" g
gen price5yy=_n in 1/20, [3 u. [" ~* x( e
# L- N# y7 C7 d0 ]% @ gen price5y=price5yy*(dy240max-dy240min)/20' Y$ U0 Z8 c1 {) l( B
/ Y) r) [4 ~2 d n5 }" Z, F; B' U7 ^ *price5y &price5d
: X) z' r/ O) e5 a8 x/ ? 2 P/ X" W, X( C4 N6 t; L& N
gen priceny=price5y in 1
* U7 g# D4 b3 h 2 O/ f2 j7 `( Q% O
gen pricen=v5 in 1
+ }3 \! Q7 H9 w* s7 J9 l) T3 Q! B+ U8 E% k6 ~& c5 X9 l/ P
5 z) q3 i7 C5 x% [* R: Y# s' `( d
*priceny &pricen0 Z0 i1 L2 e- e% d' u
$ ~6 q( N+ z2 j. u5 @3 C
$ |' F) n- Y( f7 m, { *-------------------------graph------------------
+ Z+ z H. ]+ ]3 b" D
9 h; z- ^5 F3 C2 G8 t/ z# s) q/ K 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)
3 j/ p% m- o! h( ` Z7 Z( c* v5 \( D8 B5 X) \6 i! n
* ---------可选项目----------------------% R" b8 ^% M1 ?( _( Q+ t3 `
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
. ]$ b" F g3 y, _! C: Q}- [% E9 [& Y- N2 G
end
x; L$ B1 ?$ O& a |
|