|
maodeng 发表于 2013-1-28 13:13 2 k* B1 }7 H, v6 J! `& W$ H- {
. hello 300236+ S+ H" S: G/ ]: K
statement out of context8 _$ I8 q% Y- ~) P' B( E0 ?! Y
r(119);
7 L* @: Y) }% l6 C1 {5 i m! c) y" n抱歉,最近太忙了; @" h5 p1 q6 [+ ^
5 s& Q5 k \: P! g7 D- o
300236 我用下面的程序试过,没问题1 V: g+ i+ V2 t$ @: ~2 J2 N
- A8 A- i. q9 ^! F( O; V
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试0 \1 j) @- S4 S; Y! _( m; j, A, H
\' }* K9 v. s1 N# q0 r. T3 X# [. mcapture program drop hello! \0 g+ q$ a5 ~5 T% D. s$ c
G% V4 m! Z3 K0 w2 jprogram hello: U, Y7 R/ M: q2 @+ `
% F( }+ r+ k8 \ quietly {
1 C9 e9 Z6 J! _5 N' t/ d$ p6 D* r. t0 ?' {0 q: |# x' e
clear
* P+ u# H. z4 b8 @4 l: t3 h4 I2 S4 T* d; g ^' G
cd D:\stock\test\source3 @) L2 n/ c7 F5 w$ Q8 p
N6 V: I4 G5 e& Zinsheet using `1'.txt
& j( l( u q6 R$ E: I. A) v1 s7 v
6 P2 T& H! X2 B+ J- H1 @ keep if v5>0( h2 @8 U3 _& g
) S; C1 b4 v1 L# M2 ?' c8 ]/ z5 e
gen vt=_n# p7 X9 |2 U: m9 O0 n
; v, q: h: S4 @; t4 y" Y, C# ~ tsset vt
7 b5 J* U, X I! y0 a# L0 q; e/ t; c& X
gen zf=D1.v5, Q- M: Y- s$ \# Z8 y# v v/ }
9 L" J' ]! m. b, Y gsort -v1( K8 i1 U! R/ g) u% |/ t3 _
" @+ X, f6 K6 [4 y2 }8 r# r
gen avol=v7/v5% F) X( L3 D: D/ C1 z; V) Q
, M- r( S& J9 w8 x6 z
keep if avol>0" E4 V+ e7 G" |7 Y2 Z& C
6 T" I7 m8 y( Q( }
drop vt
( C4 O% L% G. j' ]
+ ~( A; D8 n2 i7 t. |# ?$ O0 X gen vt=_n+ m( W) b: r0 h) A7 z% {% k6 \, k
+ i- E: |8 }. T! u# Z2 `' ~ tsset vt
5 _) j3 N$ D: b% G# A 6 V9 P" U6 ~5 U6 e
sum v5 [aw =avol]
" Z+ \% S1 B s& o/ T1 A
1 {) A1 L. g2 o+ h8 ? gen amean=r(mean) in 1
$ e8 Z8 Y% i [ }/ I4 l
0 i4 ]% ^3 {0 }1 q; V * 总加权平均值 amean
, B# d2 U- [) ~% u1 e. i* |( l
3 h3 K# A* ?; W $ z" h* n: g+ J+ h# \% e
keep in 1/240
$ T% d q+ n9 f7 e
' P# m& H0 E) Q+ e sum v5 [aw =avol]
7 b! [: @1 D6 r( _/ ~2 d, ]! s9 h; _) l& c+ P- x" M( R3 O
gen mean240=r(mean) in 1
( ~: B2 |: t @) c) |% ]6 P" K4 Q) f % w+ T+ s) X! `4 e
*240加权平均值 mean240, G7 O; J8 P7 V) Q' p2 y2 q2 q! [
9 X, A/ w' c5 X, H! G+ R set obs 500 / I6 F" w, D$ G2 U
3 i* `3 ]( E3 g% T6 c
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
0 }0 P" N( }7 V; E
7 v' F; V# j% R) Z6 d H *240 kdensity(dx240 dy240)
4 V$ V( r& d6 u6 j8 ]9 l4 M
# E: ]8 E) n; L7 t8 w& X sum dy2401 O: @% ?* g+ ?' F) P" n* ^$ r4 y. L
. s' h. |8 o" ^" H
gen yxis=r(max) in 1
; c4 w8 F% Y3 i7 R5 O, U : g4 W, F* h- z0 ?. ]0 {8 y- e
gen yxis2=yxis/28 c1 K |9 e4 W5 Y
" L7 k- n. W1 ?% O, O# R: x" m *yxis; w: b, J2 m- J/ S b/ Z9 r
" l& z( l$ G% K! V2 H% ? gen dy240max=r(max)3 x# y0 _1 Z+ o8 A" ^
9 G4 K: Z- I! g: |
gen dy240minp=r(min)
( N" m1 [/ X: d) [ M- ?4 Y( A( G5 @1 r - h: }. B, u# ~
gen vtt=_n' F1 W3 y5 ^: \. U3 V" J! {
4 i5 p, W {' ]7 b/ X( R$ r tsset vtt
$ C3 V8 e. V% Z+ I& q; D: I0 }( f5 Z- [7 b/ I( N7 d! f5 B
gen ddy240=D1.dy240/D1.dx240$ Z: ^. A3 M) E+ f3 ~; g V
. q1 ~9 x( Q& S sum ddy240
9 g S( }" H, Z/ E% S: E0 N' ^* ^ % ~( C) N8 F- s3 q* P
gen ddy240max=r(max)1 Q+ f8 |$ R* m+ q
0 ^) |0 ]! [! z& j. O/ W* E gen ddy240min=r(min)4 S" w+ L9 X6 U! ]4 W
! v, u! Y& F- K& U. ~ W
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
+ f0 y2 u" K; [1 P
5 T0 T# ~, T J9 l sum ddy240g
( k- Z. I( b' V
& f; v7 r% _) K gen yxis3=r(min) in 1
& R" I0 { h( F) }; M; f
4 S) _6 R, X, r: D B gen yxis4=0 in 1
2 @) o7 j( @) T8 t 6 a" y/ i* o" Q/ w5 E0 {9 Z9 q" e
*ddy240g ) q$ {. c2 _$ r& ]
" x% @2 y; n; q. O
8 k% a5 y; z) W3 X0 i, v preserve ; p2 f& w3 P- S" n
# a( ?* T1 p( \8 t. |: T& P Y- B
sum v5 [aw =avol]2 `- O4 A1 u6 |' k3 W x' X
2 _* ]5 }6 t9 u& y2 @ H keep if dx240<r(mean)
( i/ p+ m: y7 o6 X; Z 8 _1 f& ]+ p" `' `
sum ddy240
4 o9 H6 e2 A9 i( P! e
6 m1 C; Z- L3 F- _+ K: U& v7 E if r(min)<0 {% d0 H0 e" L/ C& w8 ?
" e& g; f7 @ q3 Y q keep if ddy240<=02 b# l, ^ i! \! ]8 f; u9 p- }- S/ B
8 {, ?: O- g% V% a count. S: d/ O; i, ]) _
; x( K: w; U+ G if r(N)>2 {0 B% Q0 s. R2 c+ F
& y6 D0 J* {5 { pkexamine dx240 dy2406 `! A+ H/ |, L) c& r
# N( |) X$ }1 r" B* b( ~# R local tempminp=r(tomc)9 H" k0 r3 b/ \6 F$ V6 P, ^
restore
2 V* r* T' f9 g" X" R* z: T: c, N }8 q+ k! ?$ I" h8 Q$ P6 W$ ]
' P) v/ |* E4 B- `* Q- P& d. h) M d
else {
$ r5 x# _$ U4 `: Q8 P0 Y $ C% [9 V$ @! G# K4 k- f8 m
di "cannot find minp"8 y- `6 Z1 s& C
% E. D5 y0 f, D+ l( h0 p0 }8 G$ _+ C
restore
9 E( h$ W) i8 `4 L: ]3 H) u1 { sum dx240
& ^/ T+ E, C: H b1 b+ c" p local tempminp=r(mean). T# h2 a6 A) G. ~0 w" F
& z! T7 A c7 A- h% q8 W0 L& q$ w
}6 D! I" g" n# E" _
}
6 j6 z. ?0 n- M else {
- m$ p+ j" n+ t* i' I$ q* \* {
- |- U1 T1 t/ a+ w! |6 I keep if ddy240<=r(min)* v6 B4 A1 E& ^# @7 ]6 w
}" }7 ]5 I$ H+ E7 \( u( N
sum dx240- U. O; q) ~. R) R
" U4 z) v3 n' M9 \1 | local tempminp=r(min)
$ ~3 g& H8 l, p- u restore
9 b4 T; R8 s2 J! p, G }
4 U, \1 |. a: U' z* B
. ]# x6 ~5 x i9 t' c# V- a, r
& E) B. G: I( c, b, D8 X8 G! K/ g" F5 g& c: m2 j h& Q' v( o
gen minp=`tempminp' in 1
. I2 `$ \+ ~' ^9 j+ ?- j4 P; v5 @ *240 minp" e( F+ p4 h3 d. b- d
' X6 W3 t/ E6 r
( V: y# D! \* W) s7 ` , d j! h. i! ]* W7 ^$ m
preserve
7 m* K5 u7 J/ s- {. l. B
8 U$ e( i- F5 H, d: f$ [ sum v5 [aw =avol]) O5 d. M/ z+ z7 m9 \
1 b- P: I; [; i
keep if dx240>r(mean)% X' p) p/ A" u# v# |4 V8 r
7 K/ `' g: _6 q6 Q% k: |/ s
sum ddy240/ f) D2 Q' y" x1 z* w9 D
# n' s, R4 R+ J7 \2 ?6 @/ Q
if r(max)>0 {7 D6 n* \3 h+ h8 ]! n; ~
- w/ V; M2 p2 {9 Y keep if ddy240>=0: T6 f! m0 [: Y* i* d
6 x9 L% V0 R% y: w, ?0 Q7 k
count
* F3 k! N9 s, r4 ]7 g
1 |' } ?5 Y* o; ?6 M/ S$ u if r(N)>2 {
) C9 Y! g& L5 k6 ]0 b& l; x8 t
2 {/ D$ I7 ^* E8 H; v' M$ @2 t' V9 t pkexamine dx240 dy240
4 M( T. r8 X+ F# D: b8 o z3 ^
( a8 A, U: T/ `- L! u3 a6 {- J+ F& L. Z local tempmaxp=r(tomc) $ w5 S. d# [/ `, [
restore
! \9 g8 ?: ^& n' k6 q6 T7 R y }
# D/ M0 @+ B( c. h$ a# Q6 }& P
, t# H! m1 Z; b% F1 F: m# ?
$ {. t1 C" M/ A: h1 @( C: t* O else {$ X/ o/ a% B% }) I0 ~' `
restore 7 d9 j7 `) B. J
di "cannot find maxp"
, K! O4 j: V2 @3 I3 A7 e( A8 Q1 o 1 u1 n3 Q) t9 H& s
, s( F, w; {, e# q# {- {. y sum dx240$ @/ S T! r0 y5 O6 d4 u8 ]9 q# n6 L) M
local tempmaxp=r(mean)9 f" N+ r. A; A, }
0 h8 {: ?; \. [! L1 H5 \: K5 }2 m( d% d }$ L5 G' k: M7 r% n3 @3 a
$ S6 \6 w/ X0 ^) F
}
3 _$ |) K5 E! v. a2 O' x$ v ^1 G
- c! I; B; R7 `$ a0 [" M else {1 @/ \! j2 b, z' D
/ |: E+ d; i- I+ {3 f/ U5 I& W9 r' a5 u keep if ddy240>=r(max)
" ^7 h$ ~" I( Y' D! H
E" \* u- G$ z% X* L" Q0 C sum dx240
5 `# L! f1 S3 k5 N& G% I% H
5 s, i" W. r' X6 | local tempmaxp=r(max) - N! I4 f! e: r% U9 b% d
restore 2 D$ l l) o9 Y9 [$ H: ~
}
, G8 T$ O n1 I6 R+ M8 X
& N! ~! i+ E: R* L# I d; F# |4 I! {+ _. h" D" _9 T* K: @
( s4 F3 k/ E2 S$ E, Y
# ? m2 r, ~. |6 a: Y2 N- ~ U gen maxp=`tempmaxp' in 1
; D, r; s! R& Q) k $ k+ }4 g+ W3 o8 c7 w! h5 w9 a
*240maxp
: ]2 V. y4 U* {' ^! i
* l! q) M8 Q: O: r, k6 J, c2 e
8 b7 v8 ]6 m( Q, R, N *-------------ddy240pminp左侧高峰值-----
, O4 b/ a# e1 o5 m+ X9 o5 Z
; O7 b1 j S- K' ~9 ~+ p) z preserve
9 w; r9 c" p1 m) R) J 5 ?" K8 ^, ~, r
keep if dx240<`tempminp'0 @7 M% {2 O+ a- G' q6 I2 o
Z+ L3 F5 m1 [8 _* S* S6 A
keep if ddy240>0
. M2 ?3 n! O1 p( o( T; N3 L" c0 t 8 E8 ~8 M# F& u% M% H$ e+ _( R
count
( M% Y5 Z0 d- N3 i8 S
: ~; ]! C& v! X. I/ N! s if r(N)>2 {0 E" u" D! O( v- o* x! Y
! e, s1 ?. }8 F
pkexamine dx240 ddy240
: U, p, X! ?/ p
0 E- M! y. T1 I' T! s4 Y+ }; k% Y local tempminphddy240=r(tomc)
, b& Y/ Q. C$ n restore& q# @6 j$ W. e _
}
) J1 y: Y% k3 D3 `
B! u; l. V d) P else {$ u( | s3 a8 e- @/ S5 b
restore
5 f" b3 e7 k# v3 a di "cannot find pminphddy240"0 {# j V% L. R+ Q( i Y
5 d0 a6 X. b: E% i& v* v1 s- N
8 E! p5 W& ?9 i, r+ r. y& i4 Z sum dx240) N) C. q4 \% T* B& p" U
local tempminphddy240=r(mean)
* |2 }4 i) ~, }9 v& J6 J ; l, [3 e& I+ g: h. r. s7 j. l8 z& R
6 a* b5 J3 G- m" r8 c5 B, @" Z) i }0 J, a# w( q2 h- p
) }" a9 d/ W' E3 |/ Y: N* q1 Z
6 L; }0 i5 D! r& m9 l. e& I0 M1 _( ` 3 ?7 s: G4 _$ s) R: O4 d
: J' h3 ?9 R3 S
) b& [0 P, M& c$ v4 B
- m. S! I% B; G2 [2 Q gen pminphddy240=`tempminphddy240' in 1( L E( G! z2 L8 \) N& T; u
3 W. j( v+ F. J* C$ F
6 X# G/ A- h/ F+ }1 l
*-------------ddy240pminp右侧低峰值 -----------------5 V$ V* U6 ~# R0 f# S! }- A; u
preserve
6 I* V4 I/ ^" K
) d4 G: D+ d' G2 D& n keep if dx240>`tempminp'
1 i: {5 K. f4 E( t2 D $ Z2 k8 `! b- H$ K
keep if dx240<`tempmaxp'
7 J5 P( X7 L; I' w9 g: u9 v1 X. N
3 r) V% s9 z- H3 s9 v) d* k# O keep if ddy240<0: b" `4 z. U, ]% N
6 V8 t z% t5 Z4 V7 G* ? gen temddy240=-ddy240
% W/ t# F4 ~& t5 ^
, A9 ~8 k' i3 b; w, n/ }0 { count
( Y& {0 ^2 S% o: S7 }7 T/ x . I9 f: g! X8 Q. x! N9 {$ `
if r(N)>2 {8 b- L6 a) D- h. \% C
2 I; E: Q, J6 a pkexamine dx240 temddy240
9 v# d6 U6 v$ Y6 w# h5 G
: X6 q* U5 Y3 V6 t/ y' P local tempminplddy240=r(tomc)
" z5 |5 l" J' } restore
! k6 d8 c2 R0 g* ` }7 ^, \* T2 f& _
# f& w+ w/ t( i) ]' @' d4 i else {& T5 C1 o0 s6 k0 Q; A. V5 z
e4 i& t$ x4 m# S x
di "cannot find pminplddy240"+ }9 j- W3 u# j/ U* Z8 N# F
restore8 [% V0 e# {; O; ]( p" e/ _
! i# L% u, J7 I e; d
sum dx240
3 n, N9 }# M$ G local tempminplddy240=r(mean)5 ?$ f3 }8 w- q$ {* z! Q* J
" f7 p% i" |7 O# e# \
: d/ F! S t4 P& X }
2 v* F% ~- Y* @5 {. B3 {
# a5 S+ G) ^; A
! U9 N' I* l" Q& B
! H9 w+ B. |9 \ # }0 D; o0 a7 y' x9 R' K- t0 N; b
" C N4 d6 `; D* U) `- p! N) A& D gen pminplddy240=`tempminplddy240' in 1
8 V' o* A! e8 Y& |* L 3 X' h- B- U' Q2 L0 c5 n7 M
*-------------ddy240pmaxp左侧高峰值 -------------------
( } X$ y( o$ R8 r5 j4 ? 1 O* Q. X# F5 b
preserve
: X/ J& U- c [8 h 5 U' M% X4 Z. U) \
keep if dx240>`tempminp'
! s) y4 v8 [- n4 a" N
8 s, R; p! h# Y. ^8 a- A2 w1 }* x keep if dx240<`tempmaxp'7 E6 M' |/ I d& F8 o) I
5 t8 |% t5 j, L( H: N keep if ddy240>0
, P. U# b2 [, }) t/ k5 l count& M9 x/ j9 a- ]
1 J2 J0 `( Y7 V% O if r(N)>2 {2 D. v- M/ L# p$ K
' [5 p. |" j# E7 `8 |' i& ` pkexamine dx240 ddy2404 g! n2 v8 U" {- b( ~3 z
" ?- r- a. A4 ~3 ~3 k {
local tempmaxphddy240=r(tomc) . F# Z+ ^: Y4 k* Y4 u, B/ o; z& L
. _% C# e1 Z" C) @4 L2 W( p/ M
restore2 x- q+ s$ Q0 P: ?( K
}
8 q! c7 q: [7 n
5 N6 }* p0 N W* a+ y else {
" R/ O9 L; M C4 o; e( M
" z4 q. r. Q/ X0 Z di "cannot find pmaxphddy240"* \+ ^! a/ c5 B& n! i1 L
restore- M& {6 J* k6 E6 I6 O" S) ~
- i8 x9 U4 g; h! O2 _! Y sum dx240
# C4 N9 Q0 Q4 X1 L local tempmaxphddy240=r(mean)
! P$ E$ O* h7 o8 Q% l 9 z: D2 x% o' P' D8 {8 e
; k0 ^3 B2 G* i: B! z }
/ {* ]* f; C+ V3 g# e
2 `; u3 N z/ H4 R" f
+ c1 J( t: X. X. J, c6 l + G# T! {* A N: i% }/ f
5 r8 W. V2 ~; `) Y# a# r 7 W$ R1 F3 A. l2 M9 F
) G$ I3 e0 E1 I* k$ d. n+ b
gen pmaxphddy240=`tempmaxphddy240' in 18 ^- W; \% c7 C) w4 S, g, A+ @8 O# |
) y8 ]! l5 N% k! l3 ]& I5 W* M & u4 U$ k" z/ y$ m+ R$ L" w- s
*-------------ddy240pmaxp右侧低峰值 -------------------
- ^# p% u3 M( n7 M
. _3 @& P) k# B% R( `1 q- A preserve e( ~& t4 f. v
$ N3 z' j! D' I& L1 \* d keep if dx240>`tempmaxp'
2 H* J& O! ~4 j+ J) x0 q! G
8 y$ {5 l, o6 A9 ~ L( Q gen temddy240=-ddy240* S5 b0 {$ G) @ e
: s2 R' |2 j2 C+ c
keep if temddy240>0% o+ H% n" r& N
0 j3 v% V' ]* }
count
6 Q/ p& ~! V0 l3 A* _- g
8 o2 U' j5 G" N% z8 R0 b1 F ~6 g if r(N)>2 {' Q" i$ @" C$ P! }2 I% f
) d& Y. Y- E2 y3 `) r* E8 d; {. S( z pkexamine dx240 temddy240
2 _9 o* U' Q0 w# {( [% V1 U
1 o$ j( w) p$ G1 h* \ local tempmaxplddy240=r(tomc)
4 M# _! `( Y* J0 {' w restore2 J7 J6 a l, h& _& G" J! P0 S/ j% r
}5 \# v' J& P9 e& o: w6 ~
7 U, o6 M8 h1 r+ L- ]. z else {
+ R6 H$ Z* {$ F2 p* w restore7 M0 H. |* K( C9 R; r& ]
di "cannot find pmaxlhddy240"
2 W# G7 } X7 d6 H! P 9 K# [% e( P4 H8 z' ^" A+ N9 I* {
$ Y$ X5 |: D* _4 E: b+ d4 W
sum dx240
8 T1 `+ u- o( E& r# Y1 v% W0 a local tempmaxplddy240=r(mean) in 1
& B9 P' b8 ]) Y" } # T- `* W( {( x0 Q7 d
7 D% _* G( D4 ^! ]* i6 F6 z) | }/ G9 ]4 S+ N9 K6 ?6 C' l
* S/ l8 L! n, B' g4 J$ q) ?
1 i1 r& V( O6 ~7 p$ z ; C4 \& O9 t1 [( D9 V2 }
2 t' E) n% ?; Q: B) ?
, W7 @+ n$ V- ~" q
0 w. ^; m" i/ E/ h3 G. ?. O1 I gen pmaxplddy240=`tempmaxphddy240' in 1
0 T. `* D1 p* f5 {: X d2 H & N: q4 N# y$ _0 P) ^% |
*-------------------------------------
W9 ^! T8 G; M( x . \" {& u% P* B9 ~9 n! i
gen price5d=v5 in 1/20
4 Q3 S' ~5 r; c. S% y0 D / V! O2 [ u: S0 I- s
gen price5yy=_n in 1/20% e3 A5 V1 u, J
( N& A6 U. K3 i9 \ gen price5y=price5yy*(dy240max-dy240min)/204 ~! P/ Y- @# Q/ C# v1 g+ `( U' x
, ^+ a% `4 ^0 f. S0 {
*price5y &price5d# s. P$ z: ]3 b8 h
' i6 {7 }! }1 d$ Q4 t gen priceny=price5y in 1
7 q" E: L/ V+ B2 H( S& ~# C 9 P% L0 a# R. v3 Q
gen pricen=v5 in 1" e. D: U4 Q) T' C
1 q: M1 n2 I. ~2 M9 z* V " H$ `- ~# L x+ b/ c
*priceny &pricen
$ a/ r& n# n' j& r
/ ^1 ^; L5 O$ a* c 0 Q" Q$ N( M- Z- |+ P2 p& H4 W
*-------------------------graph------------------ j5 ^6 d1 s+ F$ S- e/ a
& L$ c( e2 o3 S1 M! | 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)$ ]4 |! S$ C. P2 J! B9 @5 s
% e8 H6 U! \) }" Q1 Y
* ---------可选项目----------------------( O% I# W0 C* Y1 s7 N
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
* g) b* m: Y' `}3 E/ s" v& [7 \, @) O; X0 Z8 d
end) _$ ~7 Y8 L [2 B
|
|