|
|
maodeng 发表于 2013-1-28 13:13 ![]()
& P9 Y7 l8 L: ?* D. hello 300236( N+ ~, k3 u. I3 C/ |% z
statement out of context
7 D6 [9 ^- Q, M. Z/ C9 n, N8 @r(119);
( G* n7 ?: O1 c, p: a' h! E" @7 W抱歉,最近太忙了
$ {5 `3 b1 T7 i7 f1 r" c9 m6 v( ?" Q
300236 我用下面的程序试过,没问题. K" d- q/ `, _/ [) V
w' u2 I& ?6 [
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试8 ~6 T1 Z# y$ N; m# S$ t$ a
. Q1 L$ c$ l" C/ P- F/ tcapture program drop hello
5 t1 O9 p5 A" g+ H2 ] {) _ Y+ u
program hello
: M; L" s3 v0 I7 s
! p; r) H' Y! O6 _ quietly {
+ J' L9 M2 r2 _6 f
7 K) L& e: U9 K/ F1 ?8 H$ fclear
/ F) d' M: f, f8 X0 V9 F$ N
5 A, E/ ? T9 f9 p' \1 I% ?cd D:\stock\test\source
8 [. A% C1 o; x9 O8 I0 O Z- i5 B; g- g% I' t" r1 I
insheet using `1'.txt9 d. r2 ?/ i8 W: L) H8 d) v
: r- M4 [# ~9 Q
keep if v5>0
1 S# F9 l- O3 p# ~' ?: c
$ [% R, t P+ K! g; K5 \ gen vt=_n
9 i" \) D1 w. Q8 t* m: Y! L1 C. j ( m6 a0 j% E7 \
tsset vt1 H! ~ m1 p, [: K9 M
" `) p5 o2 Z) Q; {# J1 B* n& b gen zf=D1.v5
' o: w% c& q' a: ]. H) j/ f4 k6 Z1 C1 o9 j1 @. T
gsort -v1
) Z0 u1 Q/ g- h( ^( V; U! K9 {2 ?2 ?9 T# t
gen avol=v7/v5
0 u7 y" ?, f+ ?, B4 E( G4 B
" O2 `" r/ } M' q keep if avol>0$ {! W' E" N/ [# [- _, C
, ~+ |1 g5 Y$ R ^0 r; p) W drop vt1 g$ d7 p/ C5 E# U
- p) a3 N; R- z& I; I
gen vt=_n
4 s6 V% `: k, R8 C$ b ( w- ?7 M, `4 Z n
tsset vt& I/ B0 V- {6 Y/ S9 ^$ x7 [
8 C% @& A6 e B; M/ O4 e+ ]! ` sum v5 [aw =avol]
+ s/ }* g( v# ~: I
$ o7 Y& \0 r: K9 l) T% k9 } gen amean=r(mean) in 1
: {) ?2 _( a. B$ F9 K
* Q: [. I* j4 T * 总加权平均值 amean
. A; C" D8 M2 S+ a+ }
7 O5 f! `) p" a1 q0 s! v
$ u8 I" {5 ^0 u* w5 k- R _/ F6 N, z# v keep in 1/240
$ o$ ^$ V$ a5 a+ n" P$ t. ~: y5 G7 ~ D7 j. A8 f
sum v5 [aw =avol]9 c# s" J- L8 ?! E2 a% k, O
* c @* _; S1 `. \- u
gen mean240=r(mean) in 19 C0 P8 E! M* a
V }+ u& ^' [4 V& N6 X" S
*240加权平均值 mean240, N1 P. c( i8 C. D, T1 Y
8 f3 p1 `, G- U
set obs 500 7 J- Z0 k; Q# N6 O1 P; T. R/ @
' a( G) g. Q1 K$ P7 u kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
- \7 q8 i a0 ]0 K, j# p
' k2 v! [/ D/ M5 h8 w; A *240 kdensity(dx240 dy240)* o- G' W+ `1 f9 e/ Z% Y# T0 H
% s8 I7 R' F3 ~' G/ }. D sum dy240; Z. _; D0 s% O8 [
2 z3 h$ Z1 Y$ m: k' c& w- V" D gen yxis=r(max) in 1" A* R, H$ f$ X n9 V1 L
& z* `3 n5 \; {- o: ?
gen yxis2=yxis/2
( P. f( K4 ^0 b$ A( j ! i( f& _( Q- b& G0 F
*yxis
' o% }5 S+ h# D. a" k: W3 p , z7 R' R: G4 b
gen dy240max=r(max)
/ C; C6 j. x( V: @1 Y, n
' }/ t1 i N% V9 J' R gen dy240minp=r(min)
9 T6 C0 P' i: `! l5 A
7 F: ^2 V# w& h( N* O gen vtt=_n( ?! w6 `& q8 A- _7 V# c
: Z K! u! V* w! z( O1 _7 ^
tsset vtt- Z/ W1 F2 G8 I' R) k( T1 K
9 j; E& @2 T" X6 n gen ddy240=D1.dy240/D1.dx240
4 h7 D- Y! a1 ]6 n 7 Q8 _& ~1 b* F) m, a5 ^7 v# v+ q4 U( M
sum ddy240- M7 G/ `' ?4 q
s# |7 {) Y* w7 M5 l: }- m gen ddy240max=r(max)) b+ [! U6 X& D0 v
$ D2 M$ S ]+ R/ { gen ddy240min=r(min)
0 M- w2 [' p O
4 J z8 B0 q3 T gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
) n; z. I$ t5 d% r
) d) G7 r/ L: z sum ddy240g
+ x3 x) J5 P R7 h3 M 5 I4 Y& Y; Q5 y8 m. C( G) C: t
gen yxis3=r(min) in 1! u) n# c+ r( k; Q- @$ j
o: |" J2 n* Z4 N% G" ?
gen yxis4=0 in 1
4 N$ h+ t) ]1 o9 H7 v( c 0 h3 @$ E9 D5 L$ X' q) n
*ddy240g
U6 O0 W2 x) z% G. z; N / ^+ Z8 l. t& d& O8 L/ G7 Z
5 r/ y" z7 W! Q4 _+ F0 ] preserve
; s" K, f" c# L7 P - y* ]% S, I r( y2 f8 Z
sum v5 [aw =avol]1 H1 H! r8 {* U5 a1 d3 _' S* h
# M2 V8 v. P) v
keep if dx240<r(mean)8 T8 j' M. C- e" l
/ z* `/ I0 F, R2 U) {3 | sum ddy240
3 |, @! \1 u/ M. A 4 h4 o7 ] F" [+ s3 e# u
if r(min)<0 {4 Y8 Q1 X Y$ c; [0 I
M O* } u, L+ t0 E2 u( `0 s keep if ddy240<=0
7 J, x$ U" H! H1 g; s5 _ # s3 \" w8 F2 J# U) \ ~: d# G
count3 A" R8 h+ r1 \) ?" X1 m5 N$ q
/ W$ X, D7 ^" Z; e2 d4 F* S
if r(N)>2 {: M) @; u0 v: `# L5 h- j
$ Q6 e h- y8 Q0 m. `6 V) }. _
pkexamine dx240 dy240
7 U( P2 ~6 [* Z; L: D) z$ Y/ w
. @& A* M9 K: A) E4 y: ` local tempminp=r(tomc)
- x, t2 {" {2 a3 | restore , e- v9 J: g0 A) E/ d) q8 a, K2 Q
} q9 ~, T( |1 h5 R% q
4 K5 Z4 z5 C# K; C else {
$ o3 }2 A7 o& k0 O) m
) I' E( n; u2 j. U$ G" Z9 V8 S di "cannot find minp"4 d0 Z$ [$ g. l8 E
0 I! Q7 k/ P$ B" n: U restore + l8 D; |! ^( W# l1 G- j0 i3 u
sum dx240+ ~0 ~+ F) h6 D# Y
local tempminp=r(mean), p( a5 `: s% O
' q6 J) z4 l5 Y3 F4 L1 {
}( W1 k7 [& S$ v, M* R
}( a- g4 r8 a, u: V. P) J( C
else {
) b Y1 ^0 B* {- R# M, V
' ?0 M! O) v3 j* w+ G keep if ddy240<=r(min)
7 T# g' Z9 O% _( v! v5 N9 g& [ * G) f& R2 j6 o
sum dx240% p- Q& i$ f0 Q
$ C( w( q( L6 r: d. c8 {" `2 J local tempminp=r(min)/ R! n5 B- l; G' P4 O! y* k& ^2 J
restore $ V! G% D. w, j4 z- Z
}
2 K2 _+ m' K( p8 `' ^& s8 I- C& T7 J$ m
, s* N4 K% u: s8 g
7 x" g" z/ F7 ?; n( r. W
gen minp=`tempminp' in 19 m0 `5 s& ?4 V: s
*240 minp
- i8 y! p q" i& w. V! w. L6 B+ U1 X
6 P7 \: l1 \9 X, B3 x% ]+ J 0 h( X$ z8 u6 x% _: |1 p
preserve
0 E4 m9 [9 f' u3 C6 x3 M4 e ( `7 O. Q( K+ t- L
sum v5 [aw =avol]% M% e% T+ M7 X' r, t# D
. M& ` H% K7 i" { I* y- X keep if dx240>r(mean)
& Q. ?5 L, m2 \7 L: c- N, _6 M 4 G; r2 S! r, M! {- `
sum ddy240% U7 r: U% [1 {% X5 I7 e
5 ?4 Y/ P; i$ K- R, G+ Q$ p8 ] if r(max)>0 {' t* g& e7 I# F3 {
1 V2 ]/ \) X7 r8 v
keep if ddy240>=0
3 D( h: L6 h6 F7 i0 q" e
8 l0 [8 p; ~7 h( S& w0 I6 Y8 U count& K G, d6 @$ l. N/ J- N
3 O: O) J) i& l8 R6 O1 Z4 z% Y
if r(N)>2 {
8 _& ]1 L+ i2 [7 a; D+ [6 l ; a5 a3 n- }) L+ P: |( F
pkexamine dx240 dy240
) P0 j: @8 @( v% C! c/ Y; G( w
8 _* m4 ^0 O# a local tempmaxp=r(tomc)
- R, ~# e5 j( e p5 L8 D* r% l, o restore
4 B# m/ U) Q G4 s4 I7 ~" l9 | }; m" B. a9 p1 q) @& T& a/ z
" g5 U0 y: ?/ @
/ o' m3 d/ P- C else {% L( S* G, E8 B: p1 R3 E$ q5 s4 l
restore 3 }6 c }" ]9 v
di "cannot find maxp"$ Y6 F: l+ j; ]) g' h1 e
9 | t7 x8 k5 ?1 V: N9 M
8 M" L: m+ W! a# f4 }+ [6 f4 @
sum dx240, C' Z7 m% Y m0 d |3 y
local tempmaxp=r(mean)
, _2 d4 j' e1 s8 Z( ?0 L
& L( l8 H2 C5 p }9 Q+ G, M2 F; o0 ^
, L2 d6 J! c9 M }7 n; B' @ }1 Z2 n1 p' v8 e
0 [6 G+ ^% _: d: V+ r% g( M
else {
+ N; U! W# n0 }
% o8 R8 T5 _5 _ keep if ddy240>=r(max)
& Q! W+ P* X( `* G5 ~, a $ [/ ~5 N- I0 i
sum dx240' ]2 s: w) j: L$ P1 i, X* c
9 d) m1 t; U6 U7 [# n: l- {
local tempmaxp=r(max)
4 o ]( A% H2 Q$ c: G0 _1 W% l1 o' S restore
9 k( w5 l. l) M& T( A: {6 d: o }* f! X5 V4 A/ e5 c# I' l
1 m% I2 E" N# ^0 d: d, a
5 I: t- a) f0 R E1 a
$ Y4 I* t+ Y% |
9 L% |* R0 J2 }- i gen maxp=`tempmaxp' in 1& K" a; ?' \6 P1 S3 c* q
" _( D4 e0 O& q5 I2 c n7 o *240maxp
, H7 W) y1 N. b9 ^ * R6 s; {# {& Z
8 l; m" @" w- F3 b% i O *-------------ddy240pminp左侧高峰值-----
; u1 g {0 b$ f a
- x3 D' _! A% Y% T preserve
% w, y2 K( {7 t& p
: [* ~# g) x( W- D. E' I5 z9 Z keep if dx240<`tempminp'
) M( d+ q" ]; | " s* n* R% I6 I" T# d8 g
keep if ddy240>0- K4 O% L9 a: H8 |# m `: ?
6 B/ m8 P8 l+ a" u# _1 \* I
count W8 }3 s# r F; b% X/ H- B: N# v
_4 C$ ^4 P! C7 |1 ~9 D8 u* h if r(N)>2 {- k& S; A' O5 N1 h: G
) E" `8 k# F& A8 N# P) a- ?
pkexamine dx240 ddy240, _3 s& u% C; w4 P. h
) G- j) d; F9 Z+ P local tempminphddy240=r(tomc) " Z: L7 }: @8 |% K" d6 Z
restore. T7 _4 r$ s+ C4 h! b
}
" ]' l/ i% E" b3 V0 O, H ) w- z( y% G5 X, s2 \5 D
else {2 w. f4 m! ?: }; q/ l& \
restore
# A$ X0 z8 Y( F; ^: ?3 z- C/ ~! }* U$ _ di "cannot find pminphddy240"5 i/ k% q* ?8 K
& p% {2 Y- H, G% n
0 F0 t5 ?5 R2 W- S
sum dx240
$ R) i# t5 X& d1 O3 j9 ^ local tempminphddy240=r(mean) . Y7 X% ^3 G7 X7 a) S4 p
6 p4 B- c+ F" o& a
0 Q1 X- S, o; y3 z- Q- W- M G }
0 `9 j& U8 ?. p/ B ' W! H8 {4 S/ V. _& n: ^( @8 \
% D6 v% V4 F5 W$ I
, {% b$ L$ m( y( |2 M9 F8 i$ e ; K+ z* N. `3 s
/ ~0 a- w ^( I) Q$ I: c/ B3 G
! R: {$ m0 h% k# _
gen pminphddy240=`tempminphddy240' in 1/ b! `% t! J5 Q# `- d9 r
, [, i5 \& X, G7 z7 U
, D. u3 u1 P( \5 q) [( U *-------------ddy240pminp右侧低峰值 -----------------
: A: n' [2 |- P4 x5 p! } preserve
% x$ ~; S3 \( J2 o
. C5 q0 `- |9 }3 h keep if dx240>`tempminp'
" `; f0 C7 _$ u( U: x
; `! t2 Q/ l' ^4 E9 d0 H keep if dx240<`tempmaxp'
5 e8 f+ U7 m& n, ? 0 p* F+ E _" ~
keep if ddy240<08 p0 K% T5 t/ d& ~2 H8 {
% q4 s; H6 G/ a2 \
gen temddy240=-ddy2400 r& G" R& p- v. H' J
! P9 F8 t' c C t) q: q count7 [9 i7 w0 s' Z: ]) x7 l# \9 N" J" F2 I
0 [& n9 B$ g3 u7 x) v; D- I1 i) F: z
if r(N)>2 {2 \. W! ]- ^0 O p, A8 `: J) m' S
# o& N6 ?0 y8 a# }# y6 k% u pkexamine dx240 temddy240
3 k: `- c+ v* g! [( @. |2 _' L
" H% Y; J/ X# x& x5 j local tempminplddy240=r(tomc)
, I; M+ z/ m- P" F! e restore6 w4 `1 d, a5 V ~; w( m3 w2 p
}. {9 Q7 x1 s3 r1 n: s
2 l: {, \0 d9 V) ]( d else {6 B. y" v0 w: X% ^, W* N: f" y
- Z0 S& M3 f: A: {8 `0 m' l# M6 J di "cannot find pminplddy240"
: @) D9 a( ]/ N9 w! { restore
$ @+ E1 e/ C( t; K
& H! V% _9 Z# R: A6 E' u) i- @ sum dx240
5 ]0 M2 T0 _! j+ a7 m6 N local tempminplddy240=r(mean)
5 ?( L8 f6 I' k0 @2 @- K: R8 f
8 T( s/ w7 U! p" [7 \& ]2 R6 D( g
7 _4 f! K& L! [; I }
x6 F+ c0 ~' }7 T+ z
1 {4 G" A" ?% h! h) N
7 C( w$ [7 N# x * I; t# l! g! {
9 X$ K9 }0 z) C0 p1 A
5 N0 G; R- x6 P! D gen pminplddy240=`tempminplddy240' in 1
& |: A- T6 ~- B1 ?
+ R$ u g& k( T: I* P5 w0 E$ s+ m *-------------ddy240pmaxp左侧高峰值 -------------------
! H. o9 X4 c2 M' O7 V( S( W
6 |. e* a6 |6 F! t8 V5 k& @$ N preserve . R2 h, T) ^- c& @$ H8 R
) I- O$ g% Q' o+ S% T2 D
keep if dx240>`tempminp'/ J3 l, b" Z7 r# n! f
! w" t7 R& c4 h5 Y, X' M keep if dx240<`tempmaxp'
, y+ q6 F3 } z2 t0 x) k 3 {$ } }! M, u$ S2 C0 O
keep if ddy240>0$ ?7 V" O" ]3 W0 k8 M
count
6 n& r. |. \7 L$ C0 }3 \# v# ^
# W2 m1 p5 @# t7 x. y& D if r(N)>2 {! ? o' C1 n* K% [9 u& e
1 i4 a9 h* K9 F2 T" _# z8 k a pkexamine dx240 ddy240
j" h* s! Y( d2 ^% X + \1 J5 }; b3 }) ^( y) n7 q
local tempmaxphddy240=r(tomc) ( M; ?+ ]$ ~, F' Z
' F( {, L+ p% p5 m
restore' V' S! F& y, Q7 c% ]- W3 x G
}2 Y) ~, v n7 b7 q: z' b# ~ g
# } N( }% B7 i/ [1 B9 d else {$ f, Y# o/ `1 |# o( `
+ Q/ ~7 E3 E+ C- q* i& c$ z9 ~ di "cannot find pmaxphddy240"% G5 P0 r) s- ^
restore
+ k% w% F6 K8 T * J' ~/ U" _$ J
sum dx2404 h; k0 j0 K* q: ~/ W) o3 V {0 v
local tempmaxphddy240=r(mean) 7 e6 z" E {; S2 G3 e
/ c- b9 m- s9 s1 U' C2 {3 T
3 b( ?4 n5 C% m, r2 d } t$ P( {4 S$ {0 J9 m1 j- S$ L
T8 d9 e7 Y* k( s. u2 F% {
; V4 V9 n/ a7 a0 B' h! u
! T; }1 F7 w Z7 { o( g0 P / m6 j0 V2 O: Z" r# f2 \7 v
' r6 S; @; ~! ]: x3 A
) r3 _7 A) S! R: L! A7 @- X6 i
gen pmaxphddy240=`tempmaxphddy240' in 1
9 X/ T6 k. |2 w" N9 l I2 N - V. \" P2 {2 Q
$ g, v2 m4 [3 Y7 D+ m& K. M* I* \4 |
*-------------ddy240pmaxp右侧低峰值 -------------------
+ l+ L5 R U* r) D* O+ V! s! w' U
0 C3 [. }( m% I5 u6 p1 T* _5 T preserve . q- ?. d! b4 }* D& H( W/ A
- g4 Y: p* B/ v B* v! x
keep if dx240>`tempmaxp'" {4 t) ~: m; m6 }) B
* t" M4 O7 S9 g2 P
gen temddy240=-ddy240( m$ }! ?# ^3 a% M( F
N2 U( u6 D3 J keep if temddy240>0$ {; E+ l% v8 L" g9 _
9 w5 W) {" M; L7 f1 n& e% j count1 f9 O1 t0 u! `8 L( ^
% _" M) [* l3 v; w
if r(N)>2 {
: K# p( B/ T2 K' e( a* g$ P4 e; O 9 D _( Y7 n9 F7 Y9 x5 ~
pkexamine dx240 temddy240% j% } \; E% u/ j0 ~
$ Q6 t: _3 d5 w, ^$ c: u0 b& X) Q
local tempmaxplddy240=r(tomc)
9 V4 V& S) Z4 w restore$ }( W, d1 b! \6 s
}
8 Z3 T* P8 b# \& f( k' M. W. ?0 }3 Q+ {, o
! y& H. g/ V7 @4 @+ ?3 t/ [ else {" i$ ?: _: U5 j& l6 x% Z# I5 j; h" Q4 H
restore
4 T# J2 E- b+ J1 N di "cannot find pmaxlhddy240" y8 Y* e0 D2 A8 L: ]2 V) [. E4 [
# u3 b/ S4 r, \" [6 w5 W$ l1 u
4 U: `( h u- o5 _* ]0 B$ |3 ] sum dx240
% z/ s! z9 q! j local tempmaxplddy240=r(mean) in 1
* B0 x: Y' v& n6 J/ V
% ?3 \* D8 F. q3 C! v% Q9 m + U: a2 P4 p) ~5 E
}
! Z8 O6 b/ N3 j* g ) @) b B) D9 o
$ ?( I& E. X, s4 v9 v2 L- e- c
' ]! K) v0 R# z" u( U
y7 h& h3 j! V$ v: g9 I6 T( n5 L
6 l" g4 R+ O7 l
- q, y9 l- t, _5 M" { gen pmaxplddy240=`tempmaxphddy240' in 1
4 S8 Z; R4 Q# e
8 c- Z4 O3 Q' p% Z3 ~+ y% c9 L6 S *-------------------------------------8 [5 z/ f" w% }( u0 N9 Q _
. v! M4 \, x; ] z `7 V
gen price5d=v5 in 1/20- t- G" y1 V& p% b( A- K4 Y
2 ]1 r. A' B! M# X2 @+ V8 [5 ] gen price5yy=_n in 1/20. }$ J% _, w7 X8 }. u+ ]
& x" _& {, s" _% m9 ^ gen price5y=price5yy*(dy240max-dy240min)/20
" w- T! m6 a$ N+ i
8 X a. @, Q3 D% i5 V *price5y &price5d
) d6 {. d% @; r( F8 {/ o: B
_/ V# a' s0 K* e- M gen priceny=price5y in 1
% @7 q' Z6 F2 `1 g5 w ; A8 k* f6 H3 H$ F1 v( N! z
gen pricen=v5 in 1( D/ ?0 n3 Z* ]
& z1 g# G1 o+ {! M; J7 X0 J
! V4 Q8 v ~, i *priceny &pricen1 Q+ m' `# d* g0 E% ^: q. V
$ c2 @1 H( N( }' }( |$ F. D
/ n1 J4 v2 ?( W, Y7 T/ b' E/ P; s *-------------------------graph------------------2 Q0 v7 p( u, _0 I! W X0 r$ O' h
( c1 r( h. N6 w' N, y2 u: a, Y
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 O5 u+ b- U( [' T. t [$ ~: a2 {; u
* ---------可选项目----------------------
. N6 S& G1 a; C9 ^# q% z* m*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
; ^% H( c' C3 f, B" Q}
. ~: V* Z2 @( Send
- A7 p* P* `/ Z |
|