|
maodeng 发表于 2013-1-28 13:13 ![]()
* O& ]% X% h) E5 Y+ d: L" p" Q. hello 300236. e2 k! u q/ C2 Y* j7 @- Z
statement out of context
4 L# b+ y( o8 T2 Er(119); 5 {* ~& Z" o8 U9 W& o& u/ B
抱歉,最近太忙了6 E6 ~( w1 O1 W; V$ G& c
0 ~' d# I& i! @# J$ O N# W
300236 我用下面的程序试过,没问题
' E$ C/ @3 o$ Z- @0 t3 h+ t
4 S5 f# E* E) T你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试& L m+ V/ l; s6 @# U
( n1 X, _) r# c
capture program drop hello* a6 k% M9 H9 j: C# }( O+ b
+ a3 z' `+ Q$ {
program hello
; ~! A+ V* ^, K% S# v8 j% R6 Y
( h: n$ O9 W7 _ quietly {. G( N) \4 d) N+ L, J$ V5 N2 z
4 o9 _, D6 F: ~1 H+ I6 eclear+ _5 I8 r) R5 S4 E1 n6 A
& p" z# s; O& o% O6 O, P
cd D:\stock\test\source
% {2 |3 F9 Q7 @0 C" c0 c2 c
# [$ ]$ G% {8 \! n5 yinsheet using `1'.txt* h% c* m1 e" L7 n) {
/ K- k* I" n+ [! H8 x2 Z) G6 } keep if v5>0
' U6 b0 j7 `6 B/ B% D
! w( P4 r( T; `. P# L7 d' h) N gen vt=_n" G: R' `6 E% S" [+ P+ J
% `* ]$ `, ?# K: X tsset vt# b8 D6 T8 A" j9 O; `% W6 h
/ }$ ^% M: T8 m8 |
gen zf=D1.v5
: n6 h# P4 R5 G6 P! u( E' ]5 l& L8 a2 \8 c. W( O
gsort -v1
# l: s# Z A+ T3 G/ [' s. P& V3 Z0 @/ r: _4 s9 u" o# B9 J
gen avol=v7/v5
9 @1 d' U; i3 z$ V
4 p9 r' n( y/ ^1 I keep if avol>0
5 z. d1 g9 s0 J$ P+ e, j' N
/ Y- |9 S* w. V; I: ^+ m i: g drop vt
# |" [9 @( t/ B& K
% X/ O3 H& p9 T2 c {# D gen vt=_n, P: a* i4 I# s( p
4 j0 x K, N F9 s
tsset vt
* X4 z# ^" ^& k: l$ E9 ]! B2 i2 e) Y , U7 M2 z! ^' X3 B q% c
sum v5 [aw =avol]" g8 M6 G+ v; @$ p7 D" B
5 ]6 a" L- f; |8 {$ M gen amean=r(mean) in 1
" g1 O$ s! k7 x( |8 A+ k5 ?2 B( l" B! l & \% Z9 }+ m6 y
* 总加权平均值 amean
5 ?& | u# F h/ k, C) O 3 U% ]0 j# D& M2 E+ u1 p$ B. O' T
# m5 O# h% V+ ?: K) B0 Y keep in 1/240
' S7 R& |( G; L; R) _ D
5 M2 y {% Y2 |+ [ sum v5 [aw =avol]
! ~4 {' b. V; i0 B6 f2 y
/ ] a6 t1 O9 k8 d gen mean240=r(mean) in 1
$ n9 O5 r% N" j$ Q1 z$ J8 r * e4 Q- W, e- m( N4 X
*240加权平均值 mean240! a3 {7 o/ ^ w
2 `7 p0 ]( ~4 Y set obs 500 $ e4 B* ]: ]' Q
" m2 ^# n/ j) t. q3 _% ?/ a kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph, z5 A2 Y+ Z: a D; ^
, v& u3 Z+ d: K$ G; e+ Z *240 kdensity(dx240 dy240)% b) _: G" H0 v. v& ~( I- h' {! x
. d. k; J) e, y) I5 X( Q
sum dy240
+ W7 P- G* b z n/ P' H0 H9 ]
6 e5 B! y6 @% H gen yxis=r(max) in 1
/ ~$ x6 T4 s$ g; Q- @9 A a7 s
1 P" _* T! r7 {0 E gen yxis2=yxis/29 r }7 a* r0 |; X) s
5 X' S; T0 C" K' D4 p *yxis
% P( y, D; U& d7 H3 `* X $ h' X. }6 m' v% _ q* q
gen dy240max=r(max)
/ ~8 K$ l- _5 }( ~
3 N: S. u0 q& N gen dy240minp=r(min)
9 U7 O4 q0 l/ ~; \+ U& \
% \. G# g9 u1 m/ c6 C gen vtt=_n+ b% w( Z* l: b, e
7 n ^% f8 X U# K/ c( G
tsset vtt* d. m' S/ r8 @8 l4 t
: K% w1 T1 a5 k
gen ddy240=D1.dy240/D1.dx240
+ P9 @- l5 o+ f
; i$ e; g! h( `& v sum ddy240! D$ j. o" i1 b
% F9 d5 r% V/ C gen ddy240max=r(max)* ^9 Q4 y! L; d3 E7 v1 x d
+ n7 `: F, L3 S0 ~" K
gen ddy240min=r(min)" O+ ^5 W7 i4 L4 O, \
6 J& u( Y. a9 D2 a& X7 a gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)9 f1 ]. V! R) A) l4 J
+ n, N. h, p/ |6 K8 Z
sum ddy240g' p6 Y% F/ t+ K! n% V. P1 i4 @
5 W& C5 y2 x1 C) o: { gen yxis3=r(min) in 1
9 n) ]" J/ ^% f , r9 i0 ]0 b n- Z
gen yxis4=0 in 1
" t! K: i6 o/ l4 }+ G* D
1 d g3 ^. V3 ~ *ddy240g 6 W) }- t' ?, J# o ~3 [8 N# D
% n5 O9 C9 A" P' O) K $ w! |! Q, `7 R( |0 y, S* ?0 r
preserve $ {! `. h- _& U8 c8 [9 O ~
: j- x& Z9 Y j" A9 B. E
sum v5 [aw =avol]
i% O+ W( R! I
$ l3 K8 X' {+ \ }/ c" v: }. o keep if dx240<r(mean)
3 |# ` E* E2 P ! a: `- s! ]+ ~% ]1 N. E
sum ddy240! n7 e( B& F+ N2 B) t% s
0 X6 A) ]7 t L( |) Z+ V
if r(min)<0 {
( z/ Y0 D; q4 ~6 z2 C ! ` \3 T V8 I: \6 H4 _
keep if ddy240<=0
6 e4 e" P H1 D' A6 |" W ( @. e& p8 U* Y; \; s+ s
count7 a" T; q C4 W I' I# v# |3 ^
7 ]$ b2 |% v h if r(N)>2 {- n! @! z4 K6 c3 [3 G' u
( Q; w7 Y% F$ l
pkexamine dx240 dy2405 x$ e s2 O* c3 u9 o. a
( l. s) I/ ~1 Y! @" j
local tempminp=r(tomc)
t( u0 H# O, q5 k( N2 E: U restore
8 j6 e0 l) b9 {8 y1 }$ A' P }0 m1 p( k+ w: X2 S
6 G2 D. i3 Z3 q7 I( M7 g5 J$ E else {
! q# b* u; O5 C# A& q0 B y) m( h# ]; b5 q+ q
di "cannot find minp"
8 K) A$ f* T( p& z W7 c, P
5 N# [" A8 z) J+ b+ R) x) f restore * |9 I3 R9 `% z: g) m% Z, H8 I
sum dx240$ {& k7 k0 O2 y4 _: J
local tempminp=r(mean)0 V: e! v, S. C
- j' c" B. S" o" j5 l# P2 H2 Y+ M
}) p* [6 r4 |8 ?$ U: U- z* V) u
}, @' j4 N: {! x3 |+ J( f+ _2 B8 Y
else {( R1 L' R, i. q! F( S9 H$ S
2 ~0 m+ f, c: c. j# F4 W- X0 y8 r keep if ddy240<=r(min)/ T9 ^$ I" U7 V n' M, Z
3 G" f8 ^ D- g# T; n" R3 _* ?
sum dx240! ^/ n/ P! N& t y5 u" S, O& K
( [+ E# J8 m- c) o$ Q8 i
local tempminp=r(min)4 C8 F# U( q. q
restore
/ m* W2 u1 ^% m& d }
$ h& b; g6 \8 C, z9 E6 ?: ]# @1 e8 J: d5 n: [# ~
3 G. Y* G+ x* G; z$ W+ n; V. W0 v ]4 ^* W; R
gen minp=`tempminp' in 1* ~6 M; s) V" A3 t9 K7 I [
*240 minp6 C3 w9 e2 s v0 F$ Y8 P4 w
1 h" w& H0 r6 P. y! g+ c1 R+ [: ]6 x1 ~' p& c5 N# \. W
* z1 v9 f3 x) T* u8 F! ^ preserve
+ w* g1 s$ D$ |5 g) M& }$ K! r ) V; X8 c! o- _& d% |
sum v5 [aw =avol]% W" z: j5 W8 I7 @0 p3 D. K
! g2 }! Q( b* Q: }# r/ h& E, M' T keep if dx240>r(mean)9 k6 {0 T- f$ S
3 N, Z& g9 @" Y sum ddy240
) ~: l0 y( \5 n, f! K- B3 N0 A; M# x$ `
( i( m/ I3 @* B$ ~4 J if r(max)>0 {) D; [5 e8 E- k8 I
. f6 I( [3 r6 u+ J" M, Y S( R keep if ddy240>=05 v% s' {2 o7 P9 K7 ?
1 d6 Q0 k7 G8 w% w. G
count
) _5 J' s, g. ?" N. c1 W. s* i% ~ - u0 q# ?: Z: _( I
if r(N)>2 {2 W0 z& t) k8 ?5 Q; v
9 K5 c8 V' L; Z pkexamine dx240 dy240, d% X. v; q u' C# r2 f, D2 M) f
" w f4 Y2 F c5 L0 ^' |6 ]# w# b
local tempmaxp=r(tomc)
2 x: ?6 B. k' p- u% X: w restore 4 H$ T9 }4 f/ g1 U6 w7 [, P
}
, C0 C( k7 I$ @4 H. n# Z3 J6 Y' C
6 X0 ^2 o1 Y5 n% `9 C . R8 K9 R* ?$ F
else {
, {$ Y: `# [1 p+ C! K' l restore : N- r& u) L8 A/ l
di "cannot find maxp"6 `. S! z: }5 p7 U* ^& Q& | w
& j5 P, j# t, V) ?# I
: k7 y; T( J! }- h7 A. y sum dx240
/ u/ P' P) r: [8 X5 H2 D local tempmaxp=r(mean)
5 H6 C. k l# V! e [
* A4 V5 [6 ?$ V; ~ }
* _! C, ^5 z0 x 7 R* O/ q9 p- }' ~! ~, J
}
% v' Z: g! G" Z1 U % A$ z2 L. e* V2 v" ^9 ^
else {
2 Y( }0 I! Q' E( D/ Z0 {! k. A# }; R8 t
1 C7 l. \ R1 Z8 {: g+ P" o4 ` keep if ddy240>=r(max)
; q" L7 F: r; W/ g' I1 E 6 c B- B+ j" o
sum dx240
( o0 r- G" N i; M3 M* W; o9 k/ P4 h
+ R, F# t; o G2 V$ F- D local tempmaxp=r(max) : B; Q+ `! W F8 l
restore
! x% [5 H9 S! R }
0 g% T# v" l) H
& B8 n8 h' O- @. B% ?& J
, L9 u7 S& @) J& L& W: z$ M# p- M3 Y
8 u+ w& N# f D# k; v0 i
5 h; y0 S, ^. x# S# B gen maxp=`tempmaxp' in 1. t' z2 h6 {7 I
/ I# r& V2 L r
*240maxp3 X! K F5 R% U6 k& A
5 W" J2 Z6 k: l. I+ v* Z2 F" C : @2 ?8 Y! V+ H( E
*-------------ddy240pminp左侧高峰值-----" o& ~. y$ g3 Y! x( M
) @! c1 N: f8 r( O& ~# Q1 ] preserve
4 Q8 \* A0 F8 L! P" d2 z( y- n! t " t( h, r; i& |
keep if dx240<`tempminp'5 V" m7 s' b) C+ o4 `7 u6 W: z
7 S' u+ }. d6 T. U& O0 I keep if ddy240>0
" `, V' }: a/ `6 w9 w' S
) C7 b" r( U" C" m: u7 S+ K- I5 c- A count
8 B$ B/ }# {, M
) U9 a7 Y& v: U8 E if r(N)>2 {
+ F6 b: I9 g2 [2 B$ T' n, X+ G4 \( o ( {3 F3 g/ ~* K5 f
pkexamine dx240 ddy2404 c4 o9 p1 K$ }( I. [* X2 ^
2 I- l+ y" i/ h9 M4 A; d8 t/ R
local tempminphddy240=r(tomc) 5 X! t3 R0 [7 \5 N
restore
+ ~2 w& ~% T# R }4 h; D: v* _) x. |2 g9 x) W
: _- {! v5 _) ] else {
$ k f$ l A0 H" R2 e restore ; Z( S2 k; ?! w: T5 Y
di "cannot find pminphddy240"
) r. {! v: G/ A / }9 C1 N2 u* p2 |6 N( R
7 S1 `: T3 [7 A3 B( N% @- a sum dx240
: G# c5 ?5 J$ m local tempminphddy240=r(mean)
. i4 X7 q1 a" b: {" @6 x 6 l+ N% a2 N% [' `
3 \' ?/ _$ ~- T2 e
}) a$ A) H4 T6 N$ c$ D, P
+ G4 P% D. M5 P6 B' r 0 Y7 z! i% y0 H3 n: q, z* N
Y9 ~7 ~2 Q+ R" x' x( p% g
! L# B7 j7 U+ U0 ~6 s
3 ]+ @- B" x+ k8 T4 Z2 U9 d
% \ P5 O; C I2 ]+ G; E- ` gen pminphddy240=`tempminphddy240' in 1* t( |3 ?; r6 m% Q( a" f, f
5 g0 _1 y$ ~6 R0 p 4 l3 Z: ~9 G* E- A9 @5 u: {0 {
*-------------ddy240pminp右侧低峰值 -----------------
+ E4 q) @! n- R+ B. @( n. v# p preserve 9 {5 ^; t4 ]6 C# |
8 b; S% q3 I. }; c9 p$ f' G
keep if dx240>`tempminp'
- ]4 ]) z' w: W9 z $ {3 a" Q2 K1 _: k& ~3 h
keep if dx240<`tempmaxp'
. D* u5 W. I3 C% S3 @: }2 E $ |+ b5 i( A) t/ ]" D
keep if ddy240<0
: E% f0 r; i. i2 c( Z% u
2 w3 R7 b9 K, @ @. ~1 B. j z gen temddy240=-ddy240* F% u! K; r+ p6 N
0 M! ?$ B9 G" X5 e1 }+ G% O3 ^ count
1 H/ s" U- D7 y, _- t4 \9 K. e' A
: G2 [. `- A& Y. e. l5 h, W) { if r(N)>2 {+ f: C& [! [& T p1 {( T+ `
1 q0 o& W# p& t8 g* t
pkexamine dx240 temddy240
- s/ x* v& i$ x* H3 ^' ` 0 W0 U) O: c* f/ \9 ?; I
local tempminplddy240=r(tomc), a2 R# N) ]4 p5 o9 z
restore
% z% e4 P- T1 h' m }" p+ w" J1 E( X8 Q. L! ~. x; e
5 P# j* E+ }8 _' }; l! y& z
else {2 j6 r' J3 f$ B b7 j- X
1 b2 \. m# e8 s& ?
di "cannot find pminplddy240", l# w E( H. h& D; T6 E1 r
restore" {6 W9 z& ~5 f/ ^6 t0 D5 l6 S- E
8 q" h! U0 D7 C5 n) H sum dx240
- V1 S) F/ u5 k* L, F local tempminplddy240=r(mean)
0 Y" Z# L% A g * `! f0 \$ c4 ]( [( X8 A
: k0 [* p: E' h9 c- h. f
}/ P+ G3 _ l @ U- r9 D
! [3 x/ X* x- Z0 p* @9 D( D' j 5 N& k9 Q5 h" @- m
& P8 @0 k$ l3 }6 r & o1 R/ a( F8 v- B$ q- t! c1 }
+ U6 a& J# l$ P b! ^ gen pminplddy240=`tempminplddy240' in 1
! Z- P. w P p; M
; a! a- Y$ h+ i2 J; k( \+ I% z *-------------ddy240pmaxp左侧高峰值 -------------------
; n: ?4 U0 T: e# Q
+ n7 R% K& X/ k5 h. Q" | preserve
. J- _2 f( j4 O$ g5 h! g& G+ a: t
* s# r2 m& {7 G0 I$ f keep if dx240>`tempminp'
4 `! X5 S8 b* @0 L- i
' G% W+ X H/ l" o, O g keep if dx240<`tempmaxp'
% d9 N4 M: m% l/ h
. r1 {: K' ^( v& B4 D7 \ keep if ddy240>0' {& r: X4 C, L2 a# ^1 r
count
" ~/ h5 ]3 M, b1 y* _5 U
% k7 ^0 s. s9 k; d5 k( Q- S. O if r(N)>2 {
( x) b/ j# w4 ?$ [( S
! j/ l! {2 X$ S: z+ R5 [ pkexamine dx240 ddy2400 |5 i: g. T2 v( G$ D6 n8 O
0 o/ I8 }" z4 J: w- q, R
local tempmaxphddy240=r(tomc)
6 f3 N& b6 l6 A 5 S8 G& j7 l: I! P9 j
restore5 s$ h- J7 \ g: X
}! e+ ]% N% \0 b3 _! E
% @( B1 Y2 {# z1 J0 j' ?
else {5 Y( M5 `8 |; v- o2 G3 _0 E3 S
: w- J. R2 _1 O di "cannot find pmaxphddy240"6 g' n8 q6 e! ?. p5 z ~
restore
& H) W6 Q) W4 ~. m, C( {# Y1 `
$ f6 C6 ?% L, i* ~" _: a( j sum dx240
. `) T5 o {' L9 J* J/ ] local tempmaxphddy240=r(mean) 1 b! M8 S b: `4 k( r
8 D8 }1 \6 L3 g6 e9 Y' g
! u! L" N1 Q. I& H0 D- w
}
! w) Y! x# u$ f# X5 P
8 ~7 y9 i- m- Q' V 8 g8 u/ |8 i$ v' O: O
+ L; n, b6 q6 F* A* W7 X
1 M7 X2 E$ y( N7 U! Z+ Z, X
" O3 |6 R- P w' K
; A, f ^( X1 U$ d9 r' O. N gen pmaxphddy240=`tempmaxphddy240' in 1* u* v6 X. G. K% c" }7 O( b
6 |) I6 e: @' H+ p- S
4 u8 e( W. p9 E; V7 e A
*-------------ddy240pmaxp右侧低峰值 -------------------
8 _& J2 t4 |+ C8 g3 V 4 [- \* x) [. c$ [( ~& L3 _) ?
preserve
3 r F9 s. i, d, |# g, ^3 Q # A" L: `$ a" c+ t3 ?' O/ [' l
keep if dx240>`tempmaxp'; ?8 [0 M1 y* ~8 X% k
; H( k% u! j* I. T/ l r6 W
gen temddy240=-ddy240
m- w" G% |3 K ) }# V8 a, r6 d9 D% y) O
keep if temddy240>0
3 i; z$ \$ a. J1 l2 t 3 J( C- q0 W" Y
count% Q0 t, E1 K5 _# Y
0 n3 B% J0 V9 p
if r(N)>2 {
/ C/ A. \/ q2 @: n 3 B, C9 q: z9 W/ Y5 w$ K, @
pkexamine dx240 temddy2401 Z' Y3 o* G B2 Z1 G
" ]* i9 v0 S1 ~3 G6 m local tempmaxplddy240=r(tomc) , ?0 Y% ?+ ]8 \1 G. H
restore
3 o u% {8 ]+ K0 Y$ p) r* h& U }0 l0 x; l* `7 |4 z5 D- h
' d$ Q1 |+ Q4 K# ~/ s
else {5 n# j z |* T: z1 G$ [6 X9 o" X
restore
* [4 _2 p# A) p1 A! ^ di "cannot find pmaxlhddy240". _1 }7 i! Z6 }
& {; k9 h4 n8 e
" k9 q2 S, T P4 B3 b sum dx240- \- U: m y0 s9 q* J" j
local tempmaxplddy240=r(mean) in 19 y, F# S; ~3 X5 h
, n/ [1 B$ k: Z; [
" Q6 @% R0 [5 S: j) z }/ q; _5 v& S1 z+ P; |; D
* M! c% L! I5 @7 n& A I4 p
5 O+ L% P; z- r! [9 |, \3 i$ p
7 M& b- T3 v8 f
9 k, O( F8 Y4 Z( a4 o: Q
: y7 a6 p. F7 q5 ^$ w) T
- | Z B9 L8 f$ E, ~ gen pmaxplddy240=`tempmaxphddy240' in 1, J9 z' Z0 e& i5 M
4 {1 [6 M5 z F+ m" u9 J4 l
*-------------------------------------8 m+ c3 O) @, }5 e5 |4 Y
2 k6 c/ @! _: S, S gen price5d=v5 in 1/20
+ P+ p" r4 D% l+ P7 L+ ?1 l4 X
0 u( m/ j7 ]4 V, f gen price5yy=_n in 1/20
6 e, j/ Q; W0 v$ W% m& y + B/ ], M3 o, ^- \+ c% z2 t
gen price5y=price5yy*(dy240max-dy240min)/20$ N- w7 f; S2 C1 E- @
1 P4 ?2 i( ~, W& j. Z& @! H
*price5y &price5d. `" ?0 @9 d1 Y% W
. b, C* M( V, {$ |. z gen priceny=price5y in 1
/ R& T- ^1 z K6 ^5 G( ^- g. x * g5 @: c9 W7 f/ C- s" A8 e; T" Z
gen pricen=v5 in 1
6 Y4 o: T5 c1 [- ^! u) R6 g1 t6 J! p0 j" P
! C) r& q! s( o n$ P
*priceny &pricen- c5 ]/ @1 N/ x! V
8 ]) J3 U! e# b# r" b5 J
* ]# u2 K7 }1 [1 D *-------------------------graph------------------8 u0 S2 ]) N, _% ?0 m3 x
) A: H. @9 Q6 O4 H3 b! K# y5 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)( q6 s8 r, q @2 \* e8 D: H
" C; n! w2 p+ |3 G/ I
* ---------可选项目----------------------9 J R2 P" `& Q6 Q, m! W: R5 J
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))" |9 L8 ?0 ] r4 n
}0 C, H7 O" r; s7 M
end
2 `& N; l* ] K5 m- \; `& V |
|