|
maodeng 发表于 2013-1-28 13:13
/ l( W. i: I6 j. ~. hello 300236
- v* Q, Q% V) r4 T, ?statement out of context
$ o: M) g, q& u- ]4 Gr(119);
9 X4 H5 e2 a) c( M/ O9 t6 J抱歉,最近太忙了9 w6 X- N! w% A/ l$ N
* [, N: u+ R& p1 C$ ~
300236 我用下面的程序试过,没问题
, S A; Y C' o9 |, U" I6 |7 q
5 E1 Z) K9 \+ \ @" }4 J, m你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试; Y0 L. ?$ j' M
0 K0 Q/ s+ H% _* F
capture program drop hello X9 b' E' G8 \2 r" w
; k" }; X9 n$ ]. D
program hello+ w) R3 d; v" D+ p$ }( i
( ~8 a! \! X, E2 f* D( C" k! Y
quietly {
! O5 G4 }. ]% R [5 O" c5 d* r
9 Z6 x# Q; U/ E& X9 sclear
$ t0 [3 O/ b/ G/ t5 v3 {0 D- J6 M# d d% w6 n* u$ v# f
cd D:\stock\test\source M0 ^, G+ c, V* \
s, F' K" Y# }- d
insheet using `1'.txt4 t+ H/ H5 d5 f f7 q+ F
* i2 R" l) d' V( ~( } keep if v5>0
+ n+ ^) a. f4 K/ v# C; m3 x, Z- d $ c1 O# D" ]. @1 C8 z* |
gen vt=_n0 o. `4 W; O- ] |
) d; w$ J. l; u" J
tsset vt
- b, C! h* u8 A r; T7 h9 ~! D2 F; W/ L: B
gen zf=D1.v5* K1 C3 y( z# e0 h- X+ y
# w. Q5 h. }* @
gsort -v1. l+ ^4 Y7 `, w3 z4 Q
B9 e: U- b. O# V7 v2 w% q
gen avol=v7/v54 g& y7 j9 A; Z/ h }. g
% L1 V& X1 O D5 l
keep if avol>0
1 A4 H0 `# z, R! n5 s
$ ~% b" z/ a1 l& R, M! t5 } drop vt
6 l3 h* a6 h% N' ], ]2 [- A
: U1 J# g, J4 _ ^ gen vt=_n% p9 S" r T0 d5 M: N ^" Y& C
5 l% k1 ^# D L! ~3 O f. W' | tsset vt
8 W/ m! m8 E. D1 W/ ]$ q + V+ F; c/ M0 \) _, U# y0 d* ~
sum v5 [aw =avol], X! q) J3 Z ^, ]' v8 P
# z% H8 x0 W5 r1 t$ k
gen amean=r(mean) in 1; S: {1 l& f W7 R" J
3 T1 H6 V" k V& G5 H. {& ~
* 总加权平均值 amean
( C$ ~, l4 a$ }1 D ; b2 N3 N7 j; v: q
' B# } ~. `2 |3 J% V2 v keep in 1/240
/ Z# h! }: }+ n: \2 n2 n; A# \6 a- e1 \+ o5 B6 }
sum v5 [aw =avol], \, Z) s; o \: D
' |2 Z: h) U5 J3 q) v
gen mean240=r(mean) in 1
5 w, E6 J& t# h( p# ? # N; K# [- }% Z9 Y) _/ i
*240加权平均值 mean240# d/ @/ |) L/ C) u* g0 E, _1 E6 ^3 s
+ f: h6 x) ~; [0 R2 Y- H' y set obs 500 1 e1 O( ^3 @& \) @- Y$ R
0 Q: z' I8 W' q q+ x1 U; q4 F kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
& x' f7 H7 c) ^
8 l, y) {- K a$ |+ Z) e, V% t *240 kdensity(dx240 dy240)
$ Q; o0 e5 V( f9 R 4 S8 `; M3 b) O, O5 n' B+ T
sum dy240
6 x9 j, Q) A& J9 a* }) P6 K; R4 a5 M 3 X: D1 Z3 A& W* f) @4 W
gen yxis=r(max) in 1- O& M' ?4 ~! _3 y3 X
1 p" W) F& V5 b4 m
gen yxis2=yxis/24 h$ W# b' `8 ~ @
! F0 }! r5 ^% k *yxis
" S% B- A% d4 y# k( @
! B2 T, a7 Z2 C gen dy240max=r(max)
, O" G- V( W# L5 {: ?$ b8 A5 ` : ?2 V2 X1 ]& L: U. L; y! F
gen dy240minp=r(min)
( o- a! Y d2 W, [7 r' f
% V9 L0 u2 ?9 a; _. T. m. g( o' } gen vtt=_n
7 f' T# ~! ~: E2 O2 N5 n5 f& X3 \# H6 A, V
tsset vtt
3 \# x, g( ?: M/ m. Q Q$ r2 r( V8 d4 P9 c+ J2 g" [
gen ddy240=D1.dy240/D1.dx240
: o3 I8 m4 U, p
' [' F; N ~/ B1 b7 |# R0 r7 @ sum ddy240
) T3 R4 S& e$ S8 Q2 Q ' G3 `4 V$ D0 C& ~
gen ddy240max=r(max)$ E6 K. o5 V5 G% H
) v% C, J$ P5 z' i
gen ddy240min=r(min)- p; F) A; a" _/ R
" }7 N% N+ R i2 i; k* x, ?% y
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min); [. n! E# B- I* L1 U
& i- L0 H4 j. q, ^
sum ddy240g3 f( o1 o' A4 _) P( p
' M' w. s+ S9 b4 t/ e, Q- L* j$ G
gen yxis3=r(min) in 18 |- _- U) s5 m1 `7 b9 U
* n: k3 H/ l$ `* v! J) Y gen yxis4=0 in 1
( r- k- E! k- H& K1 u# r) e ! E1 C$ [8 l9 N9 u1 P$ t
*ddy240g - F8 P& s+ q3 D3 T+ H
. [( t+ ]! z+ N2 o0 J1 @8 }8 A
4 L2 m. R8 K& r" M+ K' p
preserve 5 Q! ~- Y# d- o/ b: Q7 w4 w
: Y. ^3 A$ a! m
sum v5 [aw =avol]
* j( l" \' p, V* O6 `! I% Y 5 H$ g1 {4 w K" ]0 H1 _
keep if dx240<r(mean)* U/ F" [" C: O. [! U! F. R
* N% R$ U/ f- l sum ddy240
8 L5 I! i: M- ~* x5 h 2 A1 h8 B. a% E8 Y
if r(min)<0 {
& ?2 N7 {1 m! c7 X " g6 ~3 |- W1 v3 i2 x: i% B% p
keep if ddy240<=0, F4 C6 j. H8 k8 x0 a. y
7 ~) r, @0 y s count
4 c' j' i* |' d D4 o ; R( C5 ]3 H3 P0 [( I! E' e) T
if r(N)>2 {
, C6 \- M& g/ j, X( H9 b1 p * t# i/ B. C0 V1 i* F. R, ?
pkexamine dx240 dy2406 ^9 t0 S' W- s- p& G" w9 Y
3 n' e" V `$ T
local tempminp=r(tomc)
' d* V7 h6 h/ I- m0 T& t restore : j7 E P3 N& X. M; _+ g
}
8 {, |' Z( o' k' y- L1 T0 N
, i3 J* f" J3 j e2 S% J else {* t. b, ?; Z8 c
: Q1 w `+ G$ o3 @ di "cannot find minp"% P: j# b/ v2 H& U# \# s
4 V Z4 p5 Z& c b restore ; z; u) H+ n! R: ]4 O1 |
sum dx240
* i$ Y! L, D4 a2 i8 j, ` local tempminp=r(mean)
; y0 u( x: G, X; I: { & Y, [! ]- I E- Z" \# s5 ]. ?
}
- s5 b# k* \* s/ h% b8 a' G7 P }! x! _3 ~9 t; v' P, Q; Z: Q
else {( U; e6 q+ U$ Y& g8 D8 I* i6 k
5 u: j# E4 X9 K4 e' z" X
keep if ddy240<=r(min); Q- u" G- k- q: c
) M$ v$ r. g' L/ r
sum dx240
# x8 p* ^$ E* G/ |: X
9 [! n8 v* @9 _- y$ z local tempminp=r(min)5 b6 f( d* s" C; K+ X( p( W
restore
6 k) {& Y5 k) w9 v }
9 P3 R/ s( Q8 o( O1 f7 @& h; Q
, n; a f! d6 i5 u* h' d6 W4 F0 J. c0 Q& n- h
6 d: V, H% |8 r, O* a% n gen minp=`tempminp' in 1. c) N( f% d! @% C9 j
*240 minp
( e! P9 x1 E) `( _
0 r3 w' `4 E W: \7 d) Q. J S
~5 {+ ]' ?2 K5 K. i; u
1 r' O+ ^0 d3 t! W6 @9 q preserve / w4 D! S3 w1 A( z
: y' r1 W p4 c. t {# `( T
sum v5 [aw =avol]5 @' e, H; ^, O; K
* C! ~ B- A5 o7 A( W
keep if dx240>r(mean)
2 u% F3 ^- C# h; u( y, M5 h
8 W) w/ [- o" \# Y sum ddy240$ X, E3 T& G: Z# h
' d3 U+ R H# t/ ^* F4 U0 J1 X if r(max)>0 {5 b6 W. _9 ?0 V3 ]2 b
% i$ ]9 z% H' y# d( N
keep if ddy240>=0
$ F) y8 L* T# Z/ [6 H& K% d
1 a A1 o5 E- x% w count
( G' H' z ?/ }0 ?. y+ B
- r9 m3 M/ }2 p8 b if r(N)>2 {
2 y& t7 Z4 Y1 Z3 b: {9 Y/ v3 ]
' d W5 P, H0 Z& m1 t- l0 M2 A pkexamine dx240 dy240- J8 ]% g$ }0 S7 {6 }" [! [
- z: d: q X( _ local tempmaxp=r(tomc)
, [. \) e. A! F; l% N, Y restore
/ |- s+ N$ z+ @ }
9 X& s6 r/ q" H + M5 b* X8 i) J7 G
% d: ^5 z9 F/ {" r) u7 o
else {
9 Z( Q) ]/ t2 \' n. r* i0 y+ o h) h restore
7 ~( I! n* b! X5 [$ z1 u8 o di "cannot find maxp": d9 |. _& ]6 o9 G% F/ u
: P8 Q+ V5 ]% ?6 ^* V 5 F* h2 J; T0 ]8 N
sum dx2403 g: R, a5 U. J% n: x
local tempmaxp=r(mean)
8 i$ ^7 ~% K" n' ~9 U
! s8 r8 _& I s) F( b$ E }* `/ o7 T7 h7 ?8 j: |+ t# G
) L' |9 H8 w; L9 I1 V
}
! p6 J' k6 h7 ]6 q
* U2 S4 i& i. r O- J6 C else {$ l. [. Q' u% E; O
. O) _2 y# i8 P, Y keep if ddy240>=r(max)
+ I4 b7 u% G0 f3 M" s$ J
* X( j4 f1 C" w$ y( v; _, X sum dx2409 u( a6 A, D. E2 i2 w* a- S/ {
8 \, ]2 Q7 c" D, w C local tempmaxp=r(max)
, j& g. r" e* b6 N2 o! ]! K+ H restore
A- M7 ]% }% R8 K4 I }
+ o7 V2 z |8 k9 K
1 R7 M6 F) H& c" t8 n
7 I6 j2 o9 _- T
" B3 O! r: a* L, V' L
" s+ _9 `! d& B9 j$ } gen maxp=`tempmaxp' in 1
3 u( b# T- _) T9 q) W
" l2 p3 u) ~ l+ X4 c+ `1 O# u$ p* A *240maxp. R8 k+ D/ G* I& v; S: A
3 _4 S' ~) B1 y9 T
1 F9 d# F# K/ @ *-------------ddy240pminp左侧高峰值-----
3 t- v. S G! { 9 d3 M$ r, F* u0 m# ~+ q8 o
preserve " x5 t7 L: G3 ]
' h* y6 U( J0 B: o6 U: H j keep if dx240<`tempminp'
2 p; a) H8 h/ c% |( a
3 L; [3 f. w# Y T# A' s keep if ddy240>0
# ]1 H, I3 d: E& ]
8 n- z% @6 B) o count% O+ l. |% t; ^7 D5 o& f% s' F$ ~
8 i9 d/ f& n0 k* R$ x, M2 y. Z4 x3 n
if r(N)>2 {7 r% U* ]% Q! }8 ~+ X* p h
" f7 a' ]# g1 `( s1 b- `6 S2 @( P
pkexamine dx240 ddy240
* w3 H' W+ H$ U; i( N" ], z
8 u+ L1 D$ G# l+ v3 e local tempminphddy240=r(tomc)
3 k5 R5 _ o9 p3 q restore: l4 V5 }- g/ X' X9 U q& ~
}
& [& m7 G/ h+ u: i8 O
* f: j6 R$ o0 ^4 X: K& m else {3 W: O$ u7 l" \, w0 ?) L
restore 6 L% d: [. N7 I, @2 J& z
di "cannot find pminphddy240"
/ j$ {1 n+ r* T o1 ?$ Z% T' d 3 ]. _8 a) N0 s3 ]# N
" e( u9 p" S$ s( e& u' ?
sum dx2405 p. I$ G, C v# Z7 Y; y
local tempminphddy240=r(mean) " ^0 _$ G+ p8 }5 X& J
0 O) s, n1 Q- G9 Y& \1 i
* V' ^6 l' u; m, j& x }
0 @1 S( b" t7 [ ) C2 H& b0 P k. _" W
" o1 g$ d/ @+ v& G8 d# ~: p4 L
& g1 {0 V: d8 q; m+ o & M+ a- r1 X. }1 A7 Q
# N/ w+ F/ }5 w/ x6 r1 g
# ~. K5 s. M" S9 g! p5 v& A
gen pminphddy240=`tempminphddy240' in 1
* l$ p s, K2 E" {! X' }. U. t- Y
1 R$ \; I6 A* I" o/ `$ q/ E: D
- _8 N. j, K- I+ `8 D4 i3 e3 | *-------------ddy240pminp右侧低峰值 -----------------# O* Y' o7 O2 C& q# T" w2 F
preserve 2 O5 z, W5 n) [3 n
. I5 K6 E/ y; T keep if dx240>`tempminp'+ t" R0 F: m% G# ]( g! Z
. x; F/ P$ ~" U* x" l! v$ j8 ]- R keep if dx240<`tempmaxp'
, }1 J" M6 r/ O0 \9 L 2 Z5 _* Z J$ T8 ~) I
keep if ddy240<04 {9 X* U+ h/ w7 j1 y" d% \
0 L" l0 y1 U2 w" D8 W, Q7 o9 B, G
gen temddy240=-ddy240
8 }8 s2 S* \7 n" q* P
' m; }& m& T2 Q) O9 s0 c count
; q$ C1 S: `. x! k8 w4 J# s
5 m" s! ?1 d. N7 K' Y if r(N)>2 {
* O. ^4 E6 T& u7 J$ L8 W5 l) X 8 ?" r, G/ a$ a
pkexamine dx240 temddy240$ Y% b# T+ T3 |" K+ I
- w/ X9 d# f$ ^4 x8 e* U" x+ r local tempminplddy240=r(tomc)0 P6 l3 C c6 z* x1 O
restore% b$ d: i( [- ]1 Y0 U
}1 S& N9 w" a6 H" O
6 _2 r6 R! P! ]- x1 c* y else {
1 J) R: U# t2 X- G3 |8 s* V 9 H5 `9 H5 N% ^, h9 @- ?$ s0 f. T
di "cannot find pminplddy240"
' G: _! X+ m c# i( w restore# k" i) D- d& X4 Y6 C9 H9 u9 h
+ z; N! [8 B9 `; q, {3 @' A sum dx240
8 S+ d/ ?: V# B+ u: F, h& { local tempminplddy240=r(mean)0 v( S! a& C) ~% J. g: q$ `
: W8 h: y8 o4 V5 k
" `: {2 [% S% r; i8 z6 G4 k; ^
}
9 Z2 `! C: C6 N/ D& L$ f; E' \, |/ w: X
* x. Y% A. z5 |3 l/ }
7 D6 W2 B/ Q( V
) l" Z4 |2 J. x1 b. o* C 3 ~8 q& C3 a1 Q* ]$ W! ]% E6 ?
' u2 O. s) E& G2 H
gen pminplddy240=`tempminplddy240' in 1/ Z3 d8 \8 i; s
7 ?& R0 `% M- G# w6 }$ U7 T
*-------------ddy240pmaxp左侧高峰值 -------------------
2 H Y! Y) S: Z/ j v: _
: k6 X& e M* c& s preserve , H$ N( v* n! G* L1 V) r
6 ]6 b5 D# }9 {* [6 [/ V
keep if dx240>`tempminp'
4 u! c; l6 Q* b, }% ^6 H% N8 C
4 j U+ {, ^( b- e# G keep if dx240<`tempmaxp'
" O+ ?9 L F9 `+ j! ~
; B6 D5 K1 N: X$ o- F( R* a keep if ddy240>0+ l" n) I% ]* J% p ?# g
count
% L0 ?/ y/ b K8 x( B, s 5 D! P4 h: s/ [
if r(N)>2 {
+ y" }. b+ c$ p- p1 B* }: A5 R) T
. F9 @8 G( G8 M pkexamine dx240 ddy2407 a8 L+ P# f* X8 P0 T7 C
" N- m+ V1 v7 c
local tempmaxphddy240=r(tomc) / e" @& p6 b3 R3 c: y
) V9 C3 P9 n0 ~2 d restore
{" p( [; s3 h }2 Z% J$ e) K- V; I) \
5 G) I* e2 V: @1 p9 i* Z2 O7 j
else {
# t+ @5 t& r/ C9 X3 t - c$ J' I: @ ?
di "cannot find pmaxphddy240"9 l- A: x# ?! a( l) K- \9 D" b. U
restore, \! q" m0 h& F* R) c0 u5 Y' Z
% t! g% |3 x7 V2 ?6 h/ u
sum dx240
) n! L- C& G: o4 x local tempmaxphddy240=r(mean)
5 S) F4 W8 a6 F2 T # K3 `( ]/ |; f" i$ r5 j
$ O( y/ F- Z5 K; x2 p" V4 y$ p5 w! m4 a/ i+ L
}& u. L# u+ [) O: q! X$ U
# |) b) P! c" P; D; z. m" Q9 O' E
6 [" ?6 @, e( \8 J / e5 q" J6 m2 }8 N5 [
" v1 [. U6 h) z1 [ & v1 q4 |, N4 h& B1 A
: n7 |6 Z, k) F5 u% U1 s+ T gen pmaxphddy240=`tempmaxphddy240' in 1
* _5 W5 \! }* k+ `( H/ c
( ?/ U5 j6 V3 E0 ~' M4 Z
2 v% v) l9 q7 Q& _0 W) Q *-------------ddy240pmaxp右侧低峰值 -------------------+ ^7 T; D4 e- z% U, v
+ n% h% D ~1 e) s' V( Y) |! P% R; l preserve ' p: U" c/ D+ [( Y& \5 S
/ ~, x5 P- O" H! q
keep if dx240>`tempmaxp' }. r' U" `6 F; q
, c5 C6 i# ~! [1 R* k gen temddy240=-ddy240
3 ], `5 `; i# L5 m/ j1 J- T
3 ]8 o9 H, K; I$ A* K keep if temddy240>0
2 d( B7 _; G7 h E8 _& u/ v
4 ~6 s7 a$ _4 q8 G4 d# |6 ]% s count5 `0 J) v5 u8 d5 u
: h$ ]' V7 P; z2 p
if r(N)>2 {
) g2 R. j3 a' G# D. f 9 C. R& s* V2 `$ t# ]4 g" s. t
pkexamine dx240 temddy240) F& Y; [6 v( }8 J, ` f. b
+ K+ i) G* H6 H o4 ]2 C, z* S; O local tempmaxplddy240=r(tomc)
x. z& T) k6 H3 a restore. t j% O2 G# x' o+ { M- b4 c0 B
}
0 y; z8 _# F% @$ G- y5 V: p% c3 p
) o( ]+ T: x3 E else {- j ~( q# c3 t* F: A9 h9 H; d4 y
restore
. o# O" ?8 S$ D$ ]5 O di "cannot find pmaxlhddy240"* Q9 p$ x M; h- P: ~5 f" L
" i, M# v' G6 d% i- H x
. Y+ {) X7 T" o1 n) d' k2 C5 J sum dx2404 x5 W5 s5 k9 x6 j5 |; W2 W
local tempmaxplddy240=r(mean) in 12 l) E/ d6 ~ e8 i
# B8 G. p, L/ G+ Q4 o& B+ X6 a f
' ~% \- t2 s# G }" O5 q) ]2 Q' ~- C
( a2 ^4 c( W6 K
1 P4 r& m- A6 `+ G2 m
! Y0 c6 J$ `2 C6 \
( h" T+ ]9 t; J1 E9 D
1 J# v2 I5 \8 C ' e7 {& H' v9 q) i0 g: ^
gen pmaxplddy240=`tempmaxphddy240' in 1( _* P8 @* Z+ R$ J- x
1 r1 y) C: F4 X5 v5 a) Z( w4 {
*-------------------------------------6 j6 b t6 I/ i1 [2 ]
$ k- X9 g" c) H1 t3 }3 e6 b# u
gen price5d=v5 in 1/20# n! w# r6 o' G' k# a
5 r& a) n2 H+ m+ X( \! e. Y
gen price5yy=_n in 1/202 S0 p" F8 x6 b; F: @
' w D% f$ W. j, A1 U- T
gen price5y=price5yy*(dy240max-dy240min)/20% ]3 I- Q* x+ a6 `0 w
; u" ?* l+ q& ~" t *price5y &price5d! n w: r( l1 ]( Y% K. s/ v
6 o/ s( ~2 u% k% p3 ~# ^
gen priceny=price5y in 1
4 u: a& |) e* N* R+ D% u+ q# I
( o9 [$ {& b6 q4 d% h gen pricen=v5 in 14 r/ f, |8 l# E/ a4 j* m, f8 c: l6 U) L
: y p( f8 _8 w0 ]
" H/ i% S' R6 A+ ] *priceny &pricen
/ `( u2 a& s& T6 T7 R, [' K( y+ p
K6 S* u7 M$ e* Y0 w0 g- } 3 J2 H& F9 j/ r! _1 r
*-------------------------graph------------------
& H# ~) I7 `4 ?$ X# P ' h) @6 Z1 b6 n% p$ \( h
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)2 C! L, F# E1 W
0 _: v* i! N( L5 |: A5 A
* ---------可选项目----------------------: j6 y) R9 c5 R
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
# I8 B5 Z: |& S; E+ c0 Q}
7 h _% X& T: Z, H. E: vend
/ b( _' ?0 E' o9 _% l) s' Z |
|