|
maodeng 发表于 2013-1-28 13:13 @9 b3 z$ C7 H; P+ R1 N# c$ s- t+ @
. hello 300236( O/ g( I2 C. p0 k- w; f7 \# W
statement out of context
. a$ h7 y. p! S* o: J8 wr(119);
1 Y% m" h" ~4 F5 c' f6 ~3 B& B抱歉,最近太忙了: n7 g* j; q4 l$ {+ P% @1 Y
( E. g. C- y3 ^5 D300236 我用下面的程序试过,没问题
5 I n }% N y, { A( ]+ P9 S/ F1 T
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
+ C' B; P# {# R% s& _
7 V4 g/ i" Y0 I/ Y$ b0 vcapture program drop hello
, ^, i4 h1 c6 ]
" y& Z. ]3 P6 h8 S, }2 z8 B% Y2 qprogram hello
. Y; C' W! q, @ o1 P7 \* h. O5 N' B
quietly { e. k* I) G$ s
/ B& ?1 K8 d$ ^ t( @ P* z& s6 n: l
clear) [) n0 C' R# v& m
; Z' B6 a- g6 u; b( H
cd D:\stock\test\source
3 E! [- D, }( u: c8 F. \4 t+ {8 ^: e/ V
insheet using `1'.txt
+ v4 D$ ?. ] N' K# z& T* `! M% T* u9 d* L l" ]
keep if v5>0- [ H$ ~' w& A8 A: Q Q2 Y7 W
, x6 u$ \' Y& A* W" T
gen vt=_n
5 G* c3 s$ p9 d7 o2 ^( [6 d
" r1 n9 V) q- ?' V0 f0 ?; H- k( ` tsset vt
% Y5 y3 f2 i2 p) A: B8 v! H; k6 E+ o" b: h9 r3 i, C6 Z, |" u
gen zf=D1.v5# ~1 ^* u) ]0 D& P
3 b4 _( v9 g8 h5 `
gsort -v1* n& q* s1 S( D2 K
* \& W( A$ S* f gen avol=v7/v5
2 S. q: t% C3 J `, c8 {
6 q( q, F, h0 Z7 y keep if avol>0
1 @' j; I2 u2 z7 Z" N ( L# V+ ~9 \1 ?/ `6 z9 [5 f
drop vt2 |+ Y3 L% d9 N8 q- a: P
6 q# W4 K: L) d* S9 c2 K
gen vt=_n
4 F, T7 t% J6 x3 p( S ~& W" L+ j8 d; m+ f: u8 r+ Q
tsset vt
( C0 c2 |2 I( t9 L+ b4 O 8 _8 W+ Q# V% K, g4 ^3 l" i
sum v5 [aw =avol]
* p/ F0 z, f$ a' K
7 t* j% ]+ G/ R! d gen amean=r(mean) in 1
$ O; C* }, G, d0 f6 p 2 a' ~: F9 I- h% r+ D8 A( x
* 总加权平均值 amean& b( z) B& X; k: X! \
" I& X$ l3 u3 x* g2 d
* @6 T! r, M' X. x# o& q; g X keep in 1/240/ @- j- T! X2 ~/ t( T1 ]
# X! D5 [1 L, v7 K* ^
sum v5 [aw =avol]
3 o. s. t# z& {; V: P) f5 P' o5 b3 ?' ]# t: q# o. Q. P
gen mean240=r(mean) in 1
3 j" i( Y2 F! U, z# Z8 }: f1 v7 ? , @4 G2 o% |. g2 |# _0 h1 i1 E1 @
*240加权平均值 mean240: u9 T- x% q% _8 M5 W3 x
1 Y2 x+ H6 z, |( ~
set obs 500
& A: ^: W9 G7 c4 i9 ^' V 5 B3 n' k6 [" v7 ^
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph1 y, u d; Q' k+ J) e
9 w* Q h @# L @ *240 kdensity(dx240 dy240)! K3 D. z v: o& _$ |6 x# [
4 N3 d4 c6 i2 a. p: W
sum dy240" t8 u" ~! l! d; w
. A' ~$ v/ K; ]' s y9 m gen yxis=r(max) in 10 J( T1 T1 H: s% k5 M8 {
h/ S6 x" W ~5 Z gen yxis2=yxis/2
+ l" Z+ r! Z1 B# a s7 X4 p2 A $ b% J' E9 Z' i7 R3 Q, V7 B
*yxis n- u, T U" G5 X; _* q" A+ ^+ y
# h: _1 h+ J6 d5 F0 I' I+ z gen dy240max=r(max)' i' Z N) _+ ?' V8 U+ l, J
1 o0 P T! G1 X6 m1 `+ s gen dy240minp=r(min)
+ \2 A7 ~* y! x) j7 q. O1 u " P# u3 O m/ X0 `, W
gen vtt=_n" C g* s, s9 V/ g- d9 M" D
: Z2 |" M9 C# J1 N
tsset vtt
8 ]; U9 i1 }+ _# P: O
* @6 @( J, w( a& t0 u& Z gen ddy240=D1.dy240/D1.dx240" |! X6 a* ?2 g! E u. O' Z# p
( B& C# w6 z" a
sum ddy2406 j2 `/ I* J! g R( ~4 r1 @$ J J
& Y% q! H6 B3 K9 B
gen ddy240max=r(max)
6 H0 S4 K3 G) y8 X
) _ s1 P+ U9 e1 e) Z" b gen ddy240min=r(min)
" z6 V* H( R9 J, z ' ~" x' [ j2 r/ E, y! W1 F
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)! S$ Y1 q# ?% n
9 I/ ]9 C8 C- Z sum ddy240g
9 a. T1 W) m: U3 Q8 _
8 C# c' L. c9 t gen yxis3=r(min) in 1+ I5 X) G- \6 c% {5 R
2 j+ |. f$ y5 M
gen yxis4=0 in 17 e% @& k; b7 r4 F6 h4 U
: L1 P' N- \, F( n1 v, E- g X* @
*ddy240g
F, p. `( r, h : i- F8 q: z5 `: A6 c% a& j8 W! [( ?$ _
7 f9 A7 P, e0 D, P preserve
" M! _) p9 Z/ P ' ~1 c5 N7 O, D2 [5 B! G
sum v5 [aw =avol]
_6 n+ |2 O5 C5 l. R# G( x& E
+ ^/ C. ^. ^2 z keep if dx240<r(mean)
- I3 h/ J7 t& D0 D9 B + ?3 P/ g% w. P
sum ddy2401 F4 e& a; F8 |7 ]% c. \9 `
$ v* t1 H4 D: L9 @' x4 Z: A if r(min)<0 {8 Y* m; h# x; b! A; b8 M
$ m8 U- O$ p F$ y; }
keep if ddy240<=0
# I9 h3 t y$ [3 Q" V6 _( Y
0 E9 P. g- Y, c; x1 [ count
( A5 m% l9 o7 X) \* m' W
6 i: A: D& {4 r9 E/ |3 \6 l if r(N)>2 {
3 v# P5 X3 `' Z2 Y 4 }, x8 e: [2 B3 [: U6 ]# @
pkexamine dx240 dy240
' e) ~1 M3 }( q
) B9 s: x P) e3 q local tempminp=r(tomc)
; [: Q* O1 P4 T! ]$ l1 s restore : @4 p9 e$ R5 m/ m7 t
}0 M6 g$ `; `$ k5 m6 |! F) R
0 t/ ^# Y* K% \& d' O2 `! f' o# p
else {
6 N# P6 w0 Y: P: P# D* H 2 c0 f2 `0 _7 ?% l |4 k* |
di "cannot find minp"
% { E- C. O; L; ~' W! W* }: k 7 }" d7 Q) N9 s: e% @( d
restore 7 b" C: R" J# v: h$ E- i
sum dx240
; B) r) k9 w8 A' O local tempminp=r(mean)
( @' z F2 Q& P! e* ]% R4 W / m- G& a* r/ J \" {( Y4 b+ I
} w( j# D/ v$ p0 j. i4 `. s6 n$ O$ r
}
7 x, Y+ S8 x/ G6 [- W2 E else {. s- _2 H4 S) g
" l( w) A& L2 i* l
keep if ddy240<=r(min)
" P8 d8 B# m! n / s8 f) t3 {0 ^+ U: [# U" k* k
sum dx240$ G$ R0 M3 Q9 w' V$ Z8 N3 D0 F' O
1 I& i2 R0 ^! Q" f' ^7 Q local tempminp=r(min)
+ w& Q1 }$ |" ]% ~ d restore ; E# N2 Y" m6 R: o! C/ o
}+ [/ }6 p" B9 d
2 I/ i- @; L* y6 o
9 c3 i2 ^; n7 c7 u5 X
$ {2 w5 \3 r H3 o! X7 E9 G) N
gen minp=`tempminp' in 14 ~3 n5 Z+ m& G+ H" a+ O" f
*240 minp
+ ?6 z, m- Y0 |; ]7 }/ v/ E
5 \4 l7 d0 s: M3 K j3 i% {+ S+ c/ J0 l# h/ _- Q3 V
5 Y$ Y/ S8 P! E6 Q- f4 F, @: h
preserve
% @4 X `/ Y- u7 `0 m. S y2 x6 R8 p; ]# m" B
sum v5 [aw =avol]
5 ?3 J" _* g( U4 n- W ' o- c4 y% x P: ~3 d0 A
keep if dx240>r(mean)
5 e+ N) Z" U8 m, L ' w2 S3 I( O5 V' ~7 ^# r
sum ddy240
4 M+ w* l# l7 O2 S1 m/ j 5 B" V) t9 Y( D& y$ [4 G
if r(max)>0 {
. h6 H) z9 j& c4 Z4 o) U* I4 N V5 m
) G8 i+ c0 e/ D! \ keep if ddy240>=08 }$ S# v, u" @! [2 X$ ]9 G2 j
! `4 p6 }: B5 d6 d% L! b
count: y# p0 V9 v, b7 t! f
7 t; M5 `- O; O# z& H f if r(N)>2 {3 q! P; h2 V( w/ {) V- k, i- D
$ n- [" X+ i1 ~1 Z! i1 |8 Z, [5 y
pkexamine dx240 dy2405 X* h3 e) c- u) b
, f E9 d, C8 b$ C
local tempmaxp=r(tomc) % h' h8 c' k3 z7 _4 s' |" O
restore ' |% ?/ A5 n$ _
}
2 J- ]2 v2 J: n, B; Q- ?8 _
( W" {( M5 T$ v |* q+ a / N: L' {$ C/ }! h& r
else {
* z6 _# K% B D- @ restore + S, x. `7 Q% [- d
di "cannot find maxp"
; T) t1 v2 E5 r
/ e8 j' T; [% T0 a0 U: w
; ?5 ?( ~" I9 N. F8 o, _: b; N sum dx240
8 ]7 a; Q- d8 R6 @ local tempmaxp=r(mean)7 G6 e3 V# y( I# \
4 h1 k* V2 {$ F2 I: F5 \9 s7 q
}
- l) p3 ]7 M# d0 t5 ` ! v$ \, E& n, `7 S! q/ M
}/ V, t- c2 L& E8 M
9 X! z5 Z- ?# z2 h! [" j
else {
# W2 x! F: |' q) S. \ L
! x; v& w# o i$ ` Y# q% h# E keep if ddy240>=r(max)( {2 s1 \# [' `+ B7 H8 [$ D
* y5 Y# k: Q6 ?% Y
sum dx240" y8 A. @0 u+ n9 o
$ O' q$ N. ]) x local tempmaxp=r(max) ! }7 L0 z' j6 b/ v+ M( O5 X
restore
+ Y, z0 k: _' |4 y8 _ o }
, v' Q8 s v! a* e
1 n7 e2 s7 G1 z' G! s1 u6 _4 W- M3 w& v5 l p/ R6 ?" e* {7 e- B7 A% e0 u
u' X: n' Y% M
/ P3 I* r; _2 L g/ p& v) y; i8 I
gen maxp=`tempmaxp' in 1
" I; | f/ T. S% m ; D# y1 A$ I: a) d
*240maxp
. R# H; O! U0 U; O9 e
0 K, t. S2 l( U. C4 S m2 T9 K
, Z! J! O% O1 ~+ p0 }8 I *-------------ddy240pminp左侧高峰值-----
: I( i: j Q! x1 T6 I! O# }! e/ j $ o/ M; P ?( G1 |# t$ J
preserve / M3 }" e' n* c6 ^, ?
% F! W7 `! i2 M; b7 x
keep if dx240<`tempminp'
* [# L* t9 u- |# n$ X # n% f; c, x& S4 a2 ]1 A+ J: y4 S
keep if ddy240>0
: _6 c5 P; M3 m$ L4 u : o; D2 G( b9 _3 J1 w, F
count' @6 C; B: W/ k1 h( \
$ n$ ~2 z9 t6 |6 v) y7 Y5 y if r(N)>2 {
0 ?: p' R+ g+ B7 X9 a4 I9 ^ 9 a [& V! m3 q9 C2 l* a
pkexamine dx240 ddy2407 r, b# r* c6 y, D1 n0 e, K4 w- z
( ?2 n* D. v$ `# z* Q6 w; ]3 c
local tempminphddy240=r(tomc)
; z |, U* F2 F3 e* f2 K- W. C restore( J2 i4 G" r( Z# X8 u: s0 Y9 c
}
6 ]$ W& j$ B) m & Y' ^) \ e4 Z* Y
else {
' K3 Y; k+ H5 s8 e& Y9 I restore
8 P9 _: z1 D, p% k di "cannot find pminphddy240"
3 M, \8 @, `1 t ; N6 y) k B* l! \. L/ ]! _
" y$ G, H2 O5 }, g) [ sum dx240
3 ^" v8 a: R# } local tempminphddy240=r(mean)
9 S# ?2 f2 U3 I. U ! ~# F# F) |; y5 R
4 {/ d a) Y/ G' D( g }* j2 |3 X, Z& @) |6 _/ ?" {
" ?* F D6 {1 S. B: k
0 Z0 f' m" E, v- [8 Z: ?5 x
3 L( m8 V- r$ E# B: f1 x # V, J% b' a3 l' m- j t
/ u# V6 O7 V' z. [
: c3 X' |0 i9 z# h gen pminphddy240=`tempminphddy240' in 17 B/ L, p3 l% w$ |; m
* s+ o# E, ^2 a! z, u+ f . _/ c( V/ B3 U8 a
*-------------ddy240pminp右侧低峰值 -----------------( d8 p4 z" }, ~7 q! E& t
preserve
+ J$ J$ m7 f) h7 s' s5 j9 N; e ! O& c$ ?7 w) A
keep if dx240>`tempminp'
9 y- g1 `6 I( T2 d* A! W# u, M# x
! _; P/ C. L8 W keep if dx240<`tempmaxp'& D B: H- E' Y
) h( M' z( _0 {
keep if ddy240<0
+ _' m3 |- u. B7 ~" ^/ M5 `
" d" J$ O$ f' _0 W gen temddy240=-ddy240
' j) u' W* X+ F. y! q5 T $ H( F3 S% S% L3 `; i K: R i" o
count
4 [+ h8 q' [6 E' y# a9 e
) o9 U' w3 y2 I( O; q if r(N)>2 {
& R7 h, y$ x; Q3 v' H3 g
5 r: `/ T1 }, l4 k pkexamine dx240 temddy240
, |3 t$ p2 a$ Z" G9 g' D 5 k3 L2 ~- i% X0 [/ Z" }
local tempminplddy240=r(tomc)+ s' P1 A6 Y' p0 M# x$ v
restore
+ i$ M' y3 \% b' ]4 @ }+ }) ]1 b) P/ @9 i0 s) z, B1 y; g# _- M
8 w2 Z0 P/ G# C9 ^. T else {1 R, \9 O: M o9 ~# ?
; e1 R7 _/ J# c+ y7 a
di "cannot find pminplddy240"7 t! O5 n% i$ n; y4 M
restore
2 q" e9 ~* Q2 i! L $ u. p; U: V0 u4 U# a1 e4 S0 D
sum dx240
: }/ f+ W! n- S ~0 Y* q local tempminplddy240=r(mean)
% h' ], X) g+ L2 b 9 t$ z. u! F% m+ u" y' n6 \ _
, U2 s4 u: Z% N! N* S6 M: B }
8 u( Z }. Q! f2 f9 ~( b7 k
: d6 E/ n& u3 ?6 b; r+ a + x8 P m/ z6 _) p% g
5 M. \5 e- R) j% D+ P" i
8 D0 u! e* {& J1 |
% O; I' V2 ^7 R4 A0 M gen pminplddy240=`tempminplddy240' in 1
$ l. ^3 d0 ~9 a4 B% ]& `" ~0 R 4 ^: O% X& p0 Y e' |" ?: r
*-------------ddy240pmaxp左侧高峰值 -------------------! ]6 O( T$ Q; t$ K% G
$ o& q! B) ^/ u/ p" w1 t
preserve
# @' e: q) Q$ l" M6 [2 w ! P k7 w Y7 @8 \3 g& D
keep if dx240>`tempminp'6 T# ]% M! m: ~& S
D* n& b9 p" L: C keep if dx240<`tempmaxp'
& _+ K8 d. L9 J3 M * |1 `& f# L1 V
keep if ddy240>06 t! R: f( z( i9 S% s& `" _; I% B
count
+ L! ]$ U# h6 y1 [0 _
/ {: a. a* ^9 G+ F- } if r(N)>2 {
r; R* l# L$ k. Z; S& ]7 D
* p7 [0 d4 U0 V; S. {' f pkexamine dx240 ddy2403 b% U+ b; a( s
. N8 ~9 Z; S" s3 L7 _) X local tempmaxphddy240=r(tomc) * R6 S0 J1 x3 D3 _
( }4 j* j8 U5 K; g restore
, o8 a* a7 m" Q0 T }3 {. l$ _% F% w' w1 w' X
: o. G$ P1 X. D: a else {2 u4 ]8 z, I! Y* P" ]
4 G% ]( y$ [5 S4 s6 Q
di "cannot find pmaxphddy240") U1 G1 c+ o$ W
restore/ g! K3 C* \* r. w4 I( n) x
S2 x5 B1 e# v$ \9 c sum dx2402 i: @1 b( o. N; Q7 w- h! c
local tempmaxphddy240=r(mean) % u; b8 Y8 }2 T$ k- I
{) Z$ A* c& y& I7 U: _8 b
- U6 m& a: g! L6 Q+ p; D }
4 j, R4 X% b: d2 ?, j. M - r; L7 _ k0 r( c
' m6 P3 z, l4 S& V% i# p6 P
* k* _ i6 f: d& y
Y' h! s" h4 f2 L5 L: Q 3 b7 l G2 S# @$ N! P# d+ U J
# m& v% S J3 `$ X$ U
gen pmaxphddy240=`tempmaxphddy240' in 16 r# _2 N, p- l/ }( n' k9 w+ P5 g
2 |' f7 z& {: M! d4 r! p3 ^+ l
, _$ g& W% b" e
*-------------ddy240pmaxp右侧低峰值 -------------------
( L3 ]) W& ^: j: w8 u# G
$ ]4 \6 u( V( L* b7 \( p# z preserve
* l: I4 o# X& ~4 F( K/ P: B . D+ p$ u6 _2 f1 [4 j7 ]3 L. T1 H1 I# `
keep if dx240>`tempmaxp'4 K3 U/ Y% w4 S$ c. }3 ~' z5 h, b' [
, f* U: e& W* a: ~' |( |9 B
gen temddy240=-ddy240
: F% f# ^- t' Y: g) H
; k: B. [& T& @3 ^3 b7 C$ c keep if temddy240>00 N2 Q8 H0 K1 w2 k, a
/ j2 F$ @1 h1 O9 Q* C
count0 w2 x7 h! d( \1 o; D8 H
$ H: [) D7 I7 P: G/ d
if r(N)>2 {
% G2 W' a( k* Y! ~6 Z7 p3 V
/ K. `5 L& p+ y pkexamine dx240 temddy240, Z8 W& l+ h9 K' R# p1 ^( z
& x" w. f7 E' p. G" o
local tempmaxplddy240=r(tomc)
+ U& E4 j6 {2 R* s* x restore0 ], H$ D/ I. w1 Y
}
4 D, g6 V3 N3 C4 g6 |6 \7 t, z3 G; g
% W! A% k9 _* s3 f& K1 v else {
. t5 f5 G3 F) y5 E restore! l: y8 q- D" \3 i
di "cannot find pmaxlhddy240"
6 |( s: V6 ~) K6 m 1 F* ~% q+ T7 N4 H
- o' b$ P ^ ]3 U4 i+ t6 u
sum dx2405 U0 T2 ]5 o; H" B( w' ^8 B
local tempmaxplddy240=r(mean) in 1
$ R7 {; m# e0 W1 P4 F/ i2 m
- _, b5 R& D% U4 n! @( ~
3 o+ x! l9 [& J4 v) U) E* [/ J }* H z1 u; d1 h, T" w* }
; m( H) P7 X1 T; d0 p
+ {0 R% g1 @; d$ ?
; B+ }& E, r+ V0 t3 s$ o6 C
1 I3 q/ n1 T4 i7 F: H/ [ 8 f2 m6 U! }2 p2 y4 |
# G) X" ]1 b C9 Z) G: Z' y, F0 P
gen pmaxplddy240=`tempmaxphddy240' in 10 v5 a' o% Y* U2 Z" ~& U1 ]
2 g3 d- n$ C( `9 J* g3 {
*-------------------------------------. J9 n* x4 ?+ ], J
* f2 M/ Q: Q5 v* X \# I# v' E2 t gen price5d=v5 in 1/20+ ]' G% @; w% r, E
( c5 o* R' C; Z: } gen price5yy=_n in 1/20# o1 X3 W9 t( X V2 T7 t/ o, ~
: \; N& @ R* f9 k
gen price5y=price5yy*(dy240max-dy240min)/20) s0 B3 w2 S- g) _ x
% N& V9 \' w+ P0 M5 D7 o *price5y &price5d& a ?7 u0 w8 z2 V$ a
3 _) K8 f i. b+ a5 k6 } t! s6 c# p( d
gen priceny=price5y in 1
* {9 Z$ q, m+ D + V9 c. [# I" w" e* K
gen pricen=v5 in 1
/ @/ G% k& q! d" \ L
8 _# s" f0 r: n % x: B9 f8 c# d) \& l
*priceny &pricen- A1 D1 A9 P& O0 N! m
8 V6 c' h. X2 R( } F, G: ^ 8 [, R1 }/ c5 _
*-------------------------graph------------------2 W' z8 A( z/ P4 c6 m$ p
: Y9 j, C/ @: P) `
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)
0 L2 a: V2 q* z1 c0 N" R$ K
% m* n7 q" o, ]; U- J* ---------可选项目----------------------
3 Y1 ~. R8 C, q$ C*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))7 g9 d- ?& M0 [9 m! H
}
6 ~2 J* v7 x# Q8 A8 hend
7 r" d& g) i5 F: ]5 g |
|