|
|
maodeng 发表于 2013-1-28 13:13 ![]()
# q, B# ` x L) x; C5 R. hello 300236
+ d% ^) d8 v4 jstatement out of context
/ P" I8 f. \4 ^# Er(119); 1 K! |. ]/ e/ i O
抱歉,最近太忙了
5 ]7 J2 K& o' e
& w* L$ P; l9 `- k9 r300236 我用下面的程序试过,没问题' w& i9 e, X! G) S
( n; i) A" k* n5 |你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
! W- e/ n, d9 W, X3 s- I: x$ Y6 t& J' P
capture program drop hello0 g8 h0 u' S3 s! C0 Y5 d
; J% V7 W6 V8 S3 `1 bprogram hello& v0 B1 a$ R2 e3 @. c
M! G/ Z& h. l& _ quietly {
1 c: }; ]/ r9 r- |, J1 Z4 N- c) p$ |4 @/ c- g- T* M
clear/ l; i& C1 L9 ~- Z4 W
% c+ Z6 C/ I% T5 r9 _' _7 l2 m( _
cd D:\stock\test\source; D* a* B- \, U4 }3 P
- c8 I+ q8 F- Q0 s. r W$ Dinsheet using `1'.txt7 S: V2 w, J, Q! C
& E7 K+ K3 T! P% l+ O6 w keep if v5>0
9 L6 {/ C% m/ F# M$ L( h& D ( _3 l- ]! k3 F8 R9 [
gen vt=_n
- V- P: \- k5 Y( e) z. i: X+ k5 i 5 F" k1 p, Z" D- q. r
tsset vt
4 {) ^7 C6 \! g- n
# q! K0 c- }6 t gen zf=D1.v5: G6 {& _. Q$ A8 c3 O4 B
3 e# k8 q( X+ Z. h- Q gsort -v1! u1 P8 q8 p1 T& T; i7 n* c: z6 z
r- X3 |, R! p" ~4 d9 f6 b2 ]; G gen avol=v7/v5! v' I! I' F2 e4 s w
+ j( j5 `! w3 [& ~ keep if avol>0) V, C6 K7 Q% w. \/ {8 v
/ _" ~) N! k4 q
drop vt6 i1 ~# E% o3 D7 |7 G# Q. P
) P" F% I o# O3 H6 b" {
gen vt=_n
, W! @% ]! E5 |( O) f5 T' @
5 e* O# E2 P1 F! H1 d* n+ B tsset vt
9 @& o; _" C% X" H ' l: Y/ x) i" z
sum v5 [aw =avol]/ m" ?( ^3 o" s
# Q. l: V) N- \0 K gen amean=r(mean) in 1
5 G4 R* f1 b$ s# x e# K9 E 8 r `: X" w( p- h2 m
* 总加权平均值 amean
) Q& ^" @% X4 {# ~- g) |$ t * L/ p* k/ B$ ?" u; t, i6 H
2 k q( D9 u' a) c' f; p- r" i keep in 1/240% V- E4 B7 v+ l+ b& m6 _* V
( N5 s/ w* [7 V" { sum v5 [aw =avol]
) y) s$ T8 m' e( L u5 Z- X+ R* R& P+ ?/ t
gen mean240=r(mean) in 1, b5 x- x4 a' _5 T
& F; S; ?/ F9 `( d) V# S
*240加权平均值 mean240& b4 C7 J; I% X& Y6 ]9 U0 t. b
: E3 E' F1 F! _- V+ w set obs 500
& s3 S$ v4 C$ _% D$ ^ 9 \0 X2 p. E4 R0 |
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ o" R( A: Q: \/ c2 t
/ s* C3 g8 B' A8 v7 X6 T
*240 kdensity(dx240 dy240)2 a* v" k+ s! i+ ~. P0 U
6 h" R |" z: C% W' ^, L sum dy240& f# F/ Z6 k5 `
9 {+ |& D6 Q/ S9 ~& K+ _# z$ S gen yxis=r(max) in 1/ k! ^/ `9 G. q1 P1 B( I
! u+ E9 X7 n1 B6 B1 F6 O gen yxis2=yxis/2; L% C! s1 E# s, Q, M8 b
; s* x; [8 D# S8 O/ ^ *yxis
/ Z5 K4 S& E( C$ P" Z1 c c/ o 3 M1 {3 I" D9 S( R
gen dy240max=r(max)
: J* \+ s* g9 l1 R' y/ ]
; q; r. M' W9 a2 f7 h4 L gen dy240minp=r(min)' H1 j6 { P9 h1 O
6 [' W; B! a2 P' V7 w+ ]8 c gen vtt=_n, F4 s# h4 `% M3 \+ r1 x. i' ^
+ q9 c. E+ K( G" a tsset vtt
: U$ k6 V+ D& P( e1 d$ |* W+ U6 r4 V4 Y- \, s* B0 K5 Q
gen ddy240=D1.dy240/D1.dx240% {" i5 ^; q8 g! I! M9 x% p
2 i' [" e* m& l& W4 o; r" m
sum ddy240# Q: ^8 K# l* A S2 a4 I
* s) I; q' z) E1 l* D( ^ gen ddy240max=r(max): ~6 \# b- ~7 {, u6 D, `
+ h& _% P0 l, T4 F, n, e
gen ddy240min=r(min)5 ~) K# e# M" N( \) Q `
' v% N, b) N1 u: f( @$ w
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)# x/ M7 _% q' m5 A$ r
1 m' z# k$ C6 ^' z1 ^ sum ddy240g
- P. Q ~) |; l+ t " F$ p$ H! q: X! U0 M
gen yxis3=r(min) in 1
7 A. [% U) E% L* j5 ?0 H
+ Z$ @% p' Q8 w6 ~- U! r gen yxis4=0 in 1
- |6 Q) S/ z4 M) u4 ?( M
% e) M! n4 _8 u *ddy240g * g/ [1 ?& a3 r1 l" r& _' x8 f5 g
; x0 o# ~. ?2 u$ a0 Z
& Q* f6 x8 R5 b: |" b$ i$ K preserve J% ]& g$ L% U
8 T5 c+ v1 V7 Q; K3 O# h' T
sum v5 [aw =avol]! T6 _+ ^! U) E
5 Y6 M0 O+ t& ^* u; X+ c3 T
keep if dx240<r(mean)
# H) h8 ?0 Q& i1 c8 K, P ! f- U) r6 H% c
sum ddy2404 `5 D ]& j) T& |7 p8 Q$ o3 i
; b% m* |! E0 s1 M/ O$ q8 { if r(min)<0 {5 w- n' M( I p- ]# Q! u) v
_7 c2 G& Z4 o, c
keep if ddy240<=0
1 z9 |/ B2 L) Z) z% A5 A4 n4 l
$ G$ a8 C- r' _! y% R count+ x$ K) n8 r E/ [' d2 x
- ~- x% y4 Y' z if r(N)>2 {
2 J6 y0 E* @) z5 f$ w; u
+ T* U* ~0 |( X, C' V pkexamine dx240 dy240
2 q- @5 R# l4 Y2 d9 v4 f, c 2 e) l+ @, r; D. O
local tempminp=r(tomc)
$ Z5 i$ r7 d, Y- b9 i, v restore - F3 }" w7 E* B, K0 C5 f9 M! m
}
$ s; D; W- ~/ ?+ r1 E- M 6 a: m- B: b% r7 @
else {
* f3 n+ o% D- f- O ; f8 u3 `. v( s2 C, a
di "cannot find minp"
& X6 k" u9 q$ b5 A# \& X) Q% X; k& m 0 ^5 D9 o( ^: W. G* n* t3 g
restore : B: I0 L1 Q0 S
sum dx240
: ~& c& s6 ?. N: A# ]9 S local tempminp=r(mean)
) g5 [% U3 g Q6 _ T7 x
: X3 e' j% g6 @: n }; o# G+ @& T% {. i
}) Y* a# x5 D" c% i& T* W4 x& O, A
else {# \5 b! c6 W; Y
+ v- X) p3 s: P keep if ddy240<=r(min), _ n6 O/ E) V
' K9 c7 v7 j9 i# }4 u' h' R sum dx240
! _* n& \1 P& P) {7 e6 k4 {1 t4 D ' T @3 L8 [. B6 f; L9 t* y, s/ a
local tempminp=r(min)
- H: [; ]: F/ ^: X, c restore
' k2 h; `5 h6 n% K- ^ }
* W" w+ v' s% R1 _& @, `
3 `0 A3 s2 E0 k! H! A/ j' y4 H9 K4 f5 D
8 Y9 ^! }( r. i1 D4 |! Y! N
gen minp=`tempminp' in 1, h% N# Q [# q w- {" ^. Q
*240 minp
& @7 Z( f2 \: T0 t) [$ e" B5 V# ]4 x; L9 E% Z+ R V7 B
6 u1 `6 Z# I. N. z7 z. V+ H 6 D" a2 {& J, y- O( a( d$ @/ u1 h' p
preserve . F' u, f- m! O8 d+ e9 J; l
: l! L# F! f: |- X# L" v5 }
sum v5 [aw =avol]
" u9 Q% `+ d- `( @
; K) k" {& }. }% y. d keep if dx240>r(mean)5 M) ^9 X; }! U X' U9 r: |5 L1 l
& \9 Y w& G. ]% Z j2 \ sum ddy240
2 f6 Q' s* y# u 9 A: j& e; y1 E) }. Z- d9 V
if r(max)>0 {
2 a. n( C) n' }5 { 1 R% X, g6 u+ N7 r c
keep if ddy240>=0' U/ z0 ^! z* _6 I" i4 Z
c" \( ?1 P! t% U5 [. h9 j& ]. I
count6 V' r! [4 E+ c/ \% X, f
1 ?9 `! o9 F9 p) r/ }9 z0 ], J6 V
if r(N)>2 {
7 i! k: n# Q, A K# h0 @# H ) x/ K1 A, t0 v+ r( X7 \
pkexamine dx240 dy240
! r4 v7 |2 ]2 P8 o , J$ }7 b6 A" l7 Z+ U9 N1 l
local tempmaxp=r(tomc)
& R' u5 S Z. Y8 G' U0 [ restore : @7 |; [/ ]3 ~2 V
}7 k1 g- v9 L) A; ?8 I
: ~0 x* ]" v; K0 m# k. e" q ^
, [: b- Q6 ^/ z9 f4 b5 X else {, ]! f3 G" F- B& Z2 y) I3 W
restore
6 w ]) s/ p6 w7 q# d5 i di "cannot find maxp"
1 K5 o0 F1 M- ~1 p$ I* H ! f- @: p: \7 \; N
% r9 P% g; v' [' E
sum dx240
' R; s# A, z. y6 h/ {( }9 n local tempmaxp=r(mean)
. ]8 X' E x" ?! t7 E
/ I2 x# ?1 y$ }9 U! |2 g. R }
5 v4 L; R; x( n! v + R% Z2 r* N; D# T
}) X% h0 X" Q. o! \% c8 D# Z, u
. Q0 C' f/ @% n/ I) N7 C9 R5 ?1 ?4 E
else {" ]( Y7 _4 ?$ R4 v ?
1 q$ P* S5 v& w% I keep if ddy240>=r(max)( ^3 u5 j4 v/ B8 Q5 r0 u
- ]1 ]; y' F* k) m: I/ r sum dx2400 _3 U9 J0 [! m+ O
# c: X B! |/ J/ X local tempmaxp=r(max) $ O: F" n! K# [8 S4 E8 `. l% w9 p
restore ' ? w- ^. D( {
}7 B- w( F$ b7 |; A) k% a
* f7 q& N8 G; P5 X9 ^: n
: j+ E! g5 B y, [' ?. W' v; n; F
$ `5 z i: A7 I+ R1 r; e D/ b: K
, B. h g' G5 [) }! Y' J gen maxp=`tempmaxp' in 1; F" X4 E" l& g: |. H" v
+ W% n3 q( J) S; A7 t/ l" ] *240maxp
/ u6 V1 \ q& }3 V$ j - T( T" p8 @5 b9 d+ `2 j
- z6 ]9 V% {, M8 x8 ` *-------------ddy240pminp左侧高峰值-----
% {; R/ M/ M7 G# M
( k0 q4 y" x8 r6 O preserve
$ C8 w# V9 i. l" v8 S+ e6 V
* j2 E# j" b1 v" X/ z keep if dx240<`tempminp'- m% Y) h% Z" S3 w# ^. M7 p
0 v- i' b2 s3 g9 q6 s
keep if ddy240>0
" M; h! G" u3 |# T6 u
2 d8 v- m* q. D3 t& O" j count7 l, [) z1 t* G% ]4 e7 e
6 L, r+ B7 a+ F0 r& ^9 r" @; v8 j: w; @ if r(N)>2 {4 k; N# W! W; S) B
3 r9 d) ^& B& U8 N pkexamine dx240 ddy2401 O' w8 y( V) Y! P9 c, C
$ B% X' I' }: k: B3 E! w. [2 P- R5 |
local tempminphddy240=r(tomc) 9 a8 t0 E1 ^2 Q4 |, U
restore! y& Q2 a1 R3 }% d' P
}
/ w! s# T2 u( H( q8 H! ]
! l% m$ e9 ]6 k3 K! U else {
) `6 t6 q, d" F2 K* G$ K restore
" p7 f8 B" P3 F8 R& w% T di "cannot find pminphddy240"
! t6 x- G. {$ d / U m4 F1 @; ^5 r1 s6 ?3 c
& A! Z( c c& J8 X
sum dx240
[4 K$ \2 q' o: P; i& S5 C local tempminphddy240=r(mean) , k+ P) m, D% c; Y; M
9 s6 J3 ^/ E+ B% y* B 3 t; b* l" k- V$ l$ i, c8 V
}2 q6 w5 P4 z2 S0 D* P
6 R0 a& _) V3 n( f ! q# `( Z1 l9 T
9 C0 w5 ]8 L$ |* u8 D2 a, G3 T/ r, [
K9 Z/ L" X' c4 W) X( s3 C/ p
4 a4 r4 f5 f! Z8 _$ X6 l. h 9 p$ i* _# J& M
gen pminphddy240=`tempminphddy240' in 19 w0 U/ ]2 V3 a8 u4 c. S0 L8 q# w
9 P; k8 V3 U/ {( O, B8 D' Z I: w " B' l2 [$ H3 j( P2 E8 u) g
*-------------ddy240pminp右侧低峰值 -----------------% K8 V$ m @: f3 _ p# ^4 m9 g
preserve " m+ Y6 b' l' U( o
) P J% _% O3 b0 a keep if dx240>`tempminp'' T- O& M, R7 s8 h, Q% Y
/ j. r0 N* [% P% Z- ^6 r" k" L keep if dx240<`tempmaxp'+ u6 V3 n$ g. Z0 ?" L
' E( y" b$ c" l0 ?) M
keep if ddy240<0
4 \ q& I$ i' \% r9 q 7 k1 J. u! \' `# ^3 m( \) Y W
gen temddy240=-ddy240
% p4 S S" W! G/ I
) O1 A4 o3 x2 C9 @ b count9 Q7 I m( h2 @" q
6 z& ?% _- l, U* \5 O
if r(N)>2 {, R# X1 t: W. |$ O/ R. s6 T+ [: H
# |; {% E, m7 [ pkexamine dx240 temddy240
7 O& a& g7 v+ m3 m
4 ]7 Z- u, c! y$ v- }8 s' @ local tempminplddy240=r(tomc)
3 q' j+ t% J y, \, ^) t restore
2 Y1 [/ l- R2 W% j7 q$ v3 b5 E* Q }' E: H+ Z j! o
7 D) r4 D% D/ j. @5 n p7 R# Y" z else {' O9 l4 E5 e3 a
& s( U* t- D% D8 ?& d
di "cannot find pminplddy240"3 C! e/ V) H& V: c' {
restore8 o! q8 J& O; P, L( s
* f# g) u6 H; e sum dx240
, j, f4 t; f" _, M! f local tempminplddy240=r(mean)
% p) g. H' ^5 a0 u1 U( G
" a7 w& ~2 I m) d$ |3 P) o
+ k% ~4 U8 E( s$ h4 F+ ~ }& a& L- Y& b5 p1 H1 E5 k
1 x& R3 K& C; r: \2 J; F
$ l& W) e6 F! _
2 g8 p1 ^; V& u& d3 @2 _4 Y
% j/ ]8 }' j' x8 V
+ w$ V" r6 a' R; k; u" v1 ~ gen pminplddy240=`tempminplddy240' in 1! t, |, u% I0 M+ K2 {3 j) Q
; O8 S1 w4 ~. S: t3 `) M, \
*-------------ddy240pmaxp左侧高峰值 -------------------+ Y7 j; J5 \6 Y) M5 e2 z% E7 \/ Y; |! N
G0 l1 q# I' [8 u
preserve c j" i% E6 c2 s# g5 b; U
9 \+ H! `. B8 W, S keep if dx240>`tempminp'
0 v+ t+ z' O( p+ ?; m# P8 @, L
! I0 ?3 i( Z( A: D9 Z6 k2 y3 _6 \- @ keep if dx240<`tempmaxp'9 C/ e2 G4 b( T4 `7 m& @
. d4 n# T7 b3 m' a H keep if ddy240>0
) F G7 K% C \8 l1 |1 j count
% v6 r/ J# d- G* y w
1 `; U- F# p/ o1 @. o, C$ A9 ? if r(N)>2 {
9 E. o6 l7 x W# Z9 _
- n7 V1 S5 i5 @0 W- b pkexamine dx240 ddy240
. z0 Y: E/ f! q$ p % C# N5 D2 A6 H& G- E# Q) E
local tempmaxphddy240=r(tomc)
- s8 O- M1 A# l# Z4 p" u
/ L# K/ K5 D6 U1 E restore$ M, J6 L0 r1 Q2 u3 t+ U
}3 F! H. Q9 ~& p6 b6 d' l
" H/ D9 h+ t- |2 n
else {
! `( e: w" {) N
3 G% w( _" F5 w( r& v3 v% |# z; G. C di "cannot find pmaxphddy240"! M x8 ]( G) `% ?9 G. V
restore4 X% J( `7 y* s% W g+ V1 I
7 l( _' w c& J0 ? sum dx240# x7 C6 M+ R9 e- W5 s" o6 N9 w8 ?
local tempmaxphddy240=r(mean) 4 I5 q% \' C* s4 P4 A1 Q) J
7 Z: N V( b; f( C1 R% P) j4 P
; b0 _6 R6 B/ w }
; Z7 f9 |) A& a: ?9 m* c3 X ) ~6 Q$ q' r$ C; `
& O; Q- r7 n: d& \1 C2 f3 R3 i; B
; r( h+ q' V* _: g# i5 ` - S5 {; J% w. [
: f9 _$ t# {6 Z4 S) P
" K4 X% i1 I% t/ ]& y- L gen pmaxphddy240=`tempmaxphddy240' in 1
$ r/ o. Q; O5 E/ l ' E8 D6 c; {- o8 S( f# N& v8 a
* Y: k7 K/ t" I& P N3 \. x% l) }
*-------------ddy240pmaxp右侧低峰值 -------------------8 e) J; v: X" W7 u" N
+ M- B- h1 Q; ^( V/ h, J. Y
preserve 0 [/ w( a6 b" ?* z
$ u9 D! h; R0 P
keep if dx240>`tempmaxp') k/ s& L# q3 O9 c
& z; s# k' y, F gen temddy240=-ddy240- C# q0 r% R5 @$ a8 k
. ^+ u" ~. u7 {+ t7 }; R
keep if temddy240>05 p& D6 g4 {# u2 S
! P4 V+ `' q. L2 ?: W/ Q count1 D" U/ d- b. L) }$ c! {' T6 j
! }1 B$ S% i- k
if r(N)>2 {: s. B: ^# N* y- C: u, E) k9 i
2 Z, W' \% _% p# d& T4 v pkexamine dx240 temddy240: V$ o4 }6 Q) G( x
5 u8 @; W: a5 w4 u local tempmaxplddy240=r(tomc) 3 _6 j I3 r+ A# h' y
restore
; L u* a- r% U, _ }
# b; N9 ^7 ~" w( ~$ \
6 z3 X. H- j: }; \; H0 E% `3 n else {: K8 T# Z: v1 ] p# x
restore( d; Y& Z: N4 f6 b2 V! o/ C% C
di "cannot find pmaxlhddy240". I1 @8 [6 n) a: _% I
. X l# y9 O1 ]% n6 d
) R f3 w1 r5 s8 O" O1 ~
sum dx240
4 I5 i2 j- L, p. t% S5 k local tempmaxplddy240=r(mean) in 1
1 I- `# ^/ P" V, F
3 A# }4 E4 K* F4 _ U+ a" w. G( I; p
! x9 z, O3 z# W' H8 s }1 A" I* u0 w7 E9 v
# W, A3 C+ u; y' H8 ]
, h1 {/ n* U0 H
, E. s$ ~8 G0 H. `
4 \) I% I) L+ t$ V* F) C6 E * b7 C# Q1 ], K
+ h! C3 _- ?$ W0 q' B
gen pmaxplddy240=`tempmaxphddy240' in 1
H7 [2 ], n8 x
8 T- ~5 @. z; P+ Y *-------------------------------------7 ]6 E/ N! {' G9 J$ j r3 d
& x& Q& e& L# e/ c% ^4 @6 u
gen price5d=v5 in 1/20, s0 b8 [0 n: H
0 c1 t$ d/ a0 [" D' z f j5 ] gen price5yy=_n in 1/20- x2 l* [0 u7 a, o# C |: C( Z
1 q2 A/ o$ W# U+ X
gen price5y=price5yy*(dy240max-dy240min)/20; \4 k1 ~$ e# o- T3 B5 d
9 E" X; ]& g P( P1 ]+ y/ L) o" g
*price5y &price5d/ f+ w& X- f& z9 T# ]/ M
" K% {. J M+ s& }8 O2 f
gen priceny=price5y in 1
8 C1 a/ e5 t! l# W5 p5 z3 d
4 b* Q# f5 [; D/ m- f gen pricen=v5 in 1
' l- ^" d$ w4 L1 N R
& \- p* I1 j3 g. X, O6 {2 d - t! ~# p7 ?$ L! q1 g
*priceny &pricen
+ P* O. B5 H. y; v6 C5 V + ^2 q6 i( v D
& H3 V2 X9 b1 e0 p6 s1 [- Q
*-------------------------graph------------------
) D. ]3 w7 @) |4 F* o, m
' Y/ `: o8 F" T5 y' b 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)* ]. Z0 G% `. Q" Y2 i7 C
9 `5 B, S3 Q/ i2 J* ---------可选项目----------------------# q) @8 H' p: Z- O! L; W. ?1 d
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)): m A7 [ V' W. c' K# A
}
- A2 u& U1 ?% _0 L& eend
7 A9 b1 n6 z2 [4 {" m9 _- S5 T |
|