|
|
maodeng 发表于 2013-1-28 13:13 ![]()
( _! Q9 q! _/ p) j* X9 g/ @% S. hello 3002369 g5 w) D* M: z" W/ I( y
statement out of context
; |- T3 o8 t {" W' \3 z1 {) _& y$ vr(119);
. b8 C# O( b/ N/ p& H9 c! I0 W抱歉,最近太忙了( t6 a: N# ?% l! V
& i0 T! ]0 R: q' H
300236 我用下面的程序试过,没问题
1 Q$ i% Q* a% K
, _7 Y$ E; j6 ]" M: N1 _你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
! e% ^! ?! f7 `7 U" F
! b1 J- s T! l4 x- ~6 Zcapture program drop hello" m% e" W, o% C1 i% s" Q1 Y1 {
$ p/ {4 P7 ~: q
program hello
! E8 c; D1 Y" t: [* n
8 o7 Q& n. _, ~1 j" y7 J quietly {* }7 W+ t" \- M! t' S- M* k
0 K% f# O9 g9 O+ [+ o
clear
$ R. Z+ r& d! y$ f; o' N0 B* W9 W! w, a/ a3 G( d+ _
cd D:\stock\test\source
( i! A5 x: { c+ @5 l
0 G" x6 t6 ]1 i8 Winsheet using `1'.txt9 N5 @8 l8 |. c' H, y( a% G
& g( f( k! P5 B" s) T1 N
keep if v5>0/ w0 q. }) m; `; j
9 J! i1 v. X8 N gen vt=_n
, ]9 n( F# k: B) @ % }+ o+ O% u' f5 r! t1 w) K
tsset vt9 e! G5 N& T$ v9 B8 z3 I
7 X9 a& Q) J+ z$ s+ t8 e# o gen zf=D1.v5
# J9 r; F6 H, |8 r- y
. ? ~2 T" k, c6 u7 `0 D. G gsort -v1
( i. k9 r; Q& `5 Y2 @# b: @5 @, T2 A1 S
gen avol=v7/v5
K; T4 c5 f: o7 W6 v5 i2 F / n1 f' p7 ?# V% X
keep if avol>0
/ W2 S: x7 i. I5 {+ C$ i# O4 c
* Y0 u7 q, i0 |, K3 ~# W- T) E( f drop vt
" \* l* @5 H- r2 W0 n& A1 T2 k; ]
* _- r- ^2 ], `% v gen vt=_n/ g. Z3 T' ^$ x$ F5 R/ h
9 \1 B' T+ ^5 J" P, B; w tsset vt3 h: e) B& @0 b
" ~5 | X2 b |, d
sum v5 [aw =avol]
6 r# o/ S- }$ v1 K Q% B* N9 Y' w, t. ?
gen amean=r(mean) in 1% h F& v* J: C/ R+ B# C
: D$ A/ m5 [/ k2 T5 I& z1 Y1 e- I
* 总加权平均值 amean
, ~. I4 [- M& ~: I
) Z# d9 n3 x2 R' g/ d & d( }0 W; y0 L* T) D
keep in 1/240+ I% n) p' u" f7 `) p( E" F9 a
9 A, l: N: K8 u- e5 y. l sum v5 [aw =avol]
4 V: {& Y* p, ? F7 y& r' y1 M
* @+ b1 c" h( _$ ~5 M gen mean240=r(mean) in 1
- |: j) @9 ?8 k6 H# q: V. e. I; v / N% O8 Z6 M# r3 A
*240加权平均值 mean240
7 {7 Y. I4 m; L( K# r0 F 5 k, M& b# `3 j+ W; M1 N% k7 r
set obs 500 & ~' R+ D) x* C
" d- }$ {$ B- y kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph, h+ f5 I) p p
" N0 L$ @2 M8 _1 L' U
*240 kdensity(dx240 dy240)
% x% v; C3 s6 @3 Q
" D, p' Q: ~; O/ z) a sum dy240
* f6 y* R: ?9 |- |' N5 V% B
6 j6 N- U/ a! k6 K( `, f gen yxis=r(max) in 1
2 j* `# o4 [! z+ ^+ \, {
. W7 M! e+ S% K- { gen yxis2=yxis/25 c2 N& M! m, f0 z; D% C
7 s, H! s" ]& ]2 F/ E- K% z *yxis- s$ t/ I. f0 W) D+ z
* G7 c$ R! k0 J" z( x' B* {( d9 s4 m gen dy240max=r(max)9 V8 C) b- a5 Z2 O- z: @/ A
& R9 p- a: Z% r- S3 a gen dy240minp=r(min)
1 C" C6 K1 L) q) q, z
1 @2 n1 T5 r; z* X gen vtt=_n8 y( S8 o( M( q+ ^) A9 X1 t
9 x6 T# K: Y6 b8 H+ n
tsset vtt
1 p# m: l! {* } J# M7 y
5 g" \2 @3 t6 c& y% {8 D gen ddy240=D1.dy240/D1.dx240' ` M- D+ l, p" n$ e9 e% P
) _/ }) B* ?1 ~7 Y% s' s$ i1 M7 k: D
sum ddy240, m3 I, A6 C. N; J) J: T4 f( T
7 y8 f+ P1 i1 q7 o- V
gen ddy240max=r(max)
: t0 l8 t$ k* J; [ ) Z8 k8 r. c: Y0 [! I
gen ddy240min=r(min)
- Z7 L& N! E7 \0 p; H ! d7 k+ _1 |( r' F
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)1 E: V' y2 `" S- M* H5 p0 I
1 h) t8 u- c" @ N7 }
sum ddy240g5 y: R# S+ K1 s1 X! a- j2 ]
8 b2 x2 }1 Y0 W# y5 {% v
gen yxis3=r(min) in 1; J2 k, J$ l S& K4 {( d# H: o
9 ]- V) z' W; } gen yxis4=0 in 1 P. u t& y L
, [" F$ e' h X4 k6 X4 [7 v
*ddy240g
( q& n! T# I; h1 R1 K V& `, W9 f7 m6 }, ^
+ [; R, s5 P& o u* g% c
preserve
- e/ j8 K3 j7 L2 ~5 n8 o 6 N9 T' z5 O& H; s( |. E
sum v5 [aw =avol]# w) e5 O- C! ~% X1 w6 x
8 b7 @3 L4 a( E, y- b* V7 A; F$ V keep if dx240<r(mean)
8 Q* i5 i- B& N: b7 K( _4 \
: E% H& V6 e: w- N! \3 w sum ddy240- _6 p: B4 {, x) `: O
2 q% h. U8 Y# a! J5 ? | if r(min)<0 {+ y# |% a7 m% \- ?1 C1 j5 h8 @
, i1 n% v; G2 h4 L! I keep if ddy240<=0" J, z3 k* r @6 Z9 Z2 u
7 H# r9 X6 f, S" B. s/ ? count. M$ P9 e8 z* s9 { S7 m u, T
5 S0 k1 S+ g8 y3 R! f if r(N)>2 {
4 U4 a' D5 L& q$ h2 |' J $ N u) L6 d) A2 n
pkexamine dx240 dy240' F2 L! f- i$ K# N- Y: V7 t7 s
" n5 ~! M3 I$ o( g
local tempminp=r(tomc)% k N) b& G7 z F% E* }
restore
+ u$ y7 a& ?3 }- ~; b+ G2 \$ k4 d }
; n) I9 [. i6 a2 X; H. L " p' s Q8 f4 L+ M3 C
else {: L# V: I* [7 U/ X5 D6 V) e, ^
; [3 E" U$ s* ^% W di "cannot find minp"& @& ~/ S3 }& D
8 o' o% G' B6 U! O: b
restore - V, i; Q0 H% m7 n- _$ b% k# G( _
sum dx240, `% {( A! F+ {$ Y0 H3 U6 G) i
local tempminp=r(mean)$ N1 c% c* }7 c x) E% {& b
9 N \. L) Y5 ]- k* o3 |7 p- | }# g. W% c D! F7 p+ n- b
}& G4 U1 c' k. Y, ~) ~
else {* d/ N' K. F0 [0 C2 u$ a7 z
9 }9 ~) Q3 e' y" P
keep if ddy240<=r(min)
' ~6 k2 I5 z7 D! V
$ Z: w. @8 V5 h/ I8 z sum dx240
- h' S* l" m# b3 i- i/ L ) }7 M- h5 {. Z
local tempminp=r(min)1 F! t/ W( t' H* X9 W- }9 ?
restore 6 W& n2 W6 {7 a/ ?
}
/ B2 e ]0 o. o: ?) z7 q! X
7 y J: E) Q3 g! T. L* p9 }5 N! o: N8 ?) e
8 L- c$ ~* k6 _) O4 p8 Z8 ~, f gen minp=`tempminp' in 1- j- K( B4 k: G
*240 minp# [* W) K1 H8 I& j6 ?% h# s' ^3 V
4 k; i9 [8 y; F9 |
t$ }: n% q: T: ~ 4 a( h& [# k, Y( V
preserve
6 X8 F$ y( h8 G8 m/ x " d# ~- K- h+ b) n
sum v5 [aw =avol]
2 l& W' j- G- X
# `% K5 E$ j) Q keep if dx240>r(mean)
1 m# i/ T( P# s6 [8 S# R1 e
+ i2 s. a) t+ _, c/ s! E# ?5 f sum ddy240
0 Y; [, [5 A5 U, C4 f+ o
) E1 X( o4 i/ c$ l& g# D% z4 j if r(max)>0 { E3 e( l, A% I5 E) p- O, G, [. }, E
4 I2 Y$ w8 o2 u w; _$ O1 T keep if ddy240>=0 v) H0 ~8 w, l. V* J: Y$ y9 l) d
; P- I7 j# u! g' i& i7 f, @ count4 r- W' @6 r4 F) p
7 J k Z, i6 G7 D( F8 l% z if r(N)>2 {
; B/ M9 `5 s/ P! D8 \ - [ E1 @+ ~/ a" m
pkexamine dx240 dy240& w' [! _1 p$ ^; t. P
# V% e- z7 M6 e5 E C7 d- j% _. j
local tempmaxp=r(tomc)
$ {) X% [ o* r( ~6 E7 e3 ?4 w* V restore
! K: i4 f( n) |2 A% J0 G9 P) R2 U }1 {' Q- T: ^& _; _% L0 r
* g7 {% _, H* ]8 l9 V+ ?4 C9 _
9 ]: t, g" c- A+ Z3 N* E else {
/ J# X' W& [" I restore
7 V* F1 w+ b W7 \ di "cannot find maxp") q0 j* X/ Z0 e6 L U; q1 |) R
* R$ [% |3 J% L
/ Z. W8 O; s! I' e sum dx240
$ O9 ]- X( T+ W- T/ n/ S( J local tempmaxp=r(mean)
+ Z, |5 e: u) s- [: E
4 u* F, \7 W8 o, X3 J2 m }7 R9 |+ b' B( K5 A
$ q: \# `8 ^1 L7 }* f1 A! d1 Q3 a8 ?4 L }
' |7 h; D! K, `% k: y2 ` 4 B& c6 _9 y1 P B" |% A% R
else { y' D' W7 i0 }/ h) C3 G0 N$ f
$ y3 J! s. @" k2 A( o/ e8 d0 d
keep if ddy240>=r(max)% s/ u( w: [$ }2 ^. B) \
2 w0 o+ c0 m# l P# p1 S
sum dx240
& s) R1 ?3 W7 J' {3 L: u+ K g+ }
" D* Z5 d% G0 ?$ z local tempmaxp=r(max) 7 y( R, T9 F* u# q
restore
2 |- o5 `" @% E- x9 t% I }* k& s x( @9 ~9 s* k
0 _1 J2 f% @& v. `8 D; m5 b: C! d
8 G; o5 ?+ C. D5 M/ H1 L
" P4 f+ s% V+ Q9 Y' Q5 c& k) S( k+ S( }6 C$ \
gen maxp=`tempmaxp' in 1
& X/ s! ^# ?8 V: C" T3 W: U K
6 O1 B8 {! X3 {1 S* R *240maxp
: ]7 u N& i9 q+ X U+ O1 y; q. y. g/ J : v6 Y) S+ E) b+ c+ W! p/ q
( C/ d# U9 g% Q
*-------------ddy240pminp左侧高峰值-----2 d U) E3 u9 v$ o( l, l1 b
( R! k3 C% Z8 D9 m! H preserve 1 }( g8 _, [6 W7 V
# s0 {! P& H& K; `) `
keep if dx240<`tempminp'
8 ~5 j/ T4 ~# v3 A* c/ o$ P & K; g' o2 N' a4 q' U0 P
keep if ddy240>01 Q% M( a ?& H$ g7 N0 b
7 k- u3 y. J* F {& h
count4 [: y+ p$ ?+ s
% k$ k+ i* y! ~3 I( H4 g if r(N)>2 {
F1 a5 D* X1 H, |; `! P H p0 d$ L$ h6 F6 Q7 V
pkexamine dx240 ddy240- S# Z' ?: Q# I# j, e
, d" Q" C- Q! p! m8 a, \6 S- P local tempminphddy240=r(tomc)
% {5 ~6 i u& K- Z restore0 B- t3 w% l' o8 L
}( |# M, q' t E5 {% M. X& ^1 Z+ k
+ g" d, c5 N+ o! M3 ]
else {$ a! j+ h' [& @) r8 D
restore + m' D* \: D+ {3 Y2 R$ M8 \/ l* @
di "cannot find pminphddy240"
: X7 X" R1 D2 U6 u- b4 S
- {! S( A8 e: J0 v3 R4 q
, e \( W; i$ C sum dx240
* d# O" K7 `4 C9 o$ y. {3 H local tempminphddy240=r(mean) ; F, j6 q7 Q! s% Y! f) ^# @0 I8 `
$ C& d: Z0 f3 l! y
1 R" v; W u8 Z4 t( c5 ]2 [ }
, j2 C! k1 [2 t4 O9 }9 P( j0 | & o- y1 k+ O! i" U7 F. I. X; m: q
' h: R+ ]1 a0 ?" u& N
; _5 e; H, T+ U3 I: m& ]8 ^. v / m5 F* `+ z1 \2 h% O* i0 i8 i2 X
8 a5 u6 }$ E& g" l9 f+ E
1 q; I" j9 E8 K! }' O6 n# L gen pminphddy240=`tempminphddy240' in 1
) V3 ?/ O6 G" n4 {, S0 V$ l % U, r" c; b- }( R! A
1 Y0 F2 V/ b3 }6 P
*-------------ddy240pminp右侧低峰值 -----------------
2 ^, T' y- a, P preserve
3 _4 b+ ~0 K2 A4 l" B3 @, d7 c3 X 1 O" `1 ] |2 j
keep if dx240>`tempminp'& b; g! M- x5 @! @# i
% K+ P2 O) [6 p) H d w
keep if dx240<`tempmaxp'
- U+ s) l/ d2 m3 F$ W* U# T
Q, B' Q8 s# X; x keep if ddy240<0
) w. M6 w* n4 Y( ]; x6 P- p
h8 {, V0 p( A4 O gen temddy240=-ddy2409 q% m$ k; ] F$ r8 K
" h, f9 ]7 V! H2 W2 b' N count
/ `% G `" j1 U: n' _# Y* e 9 i' p! K2 Y6 Q
if r(N)>2 {( c1 ]) n- n! T# a
$ v- W2 k& u/ j+ c$ k) u7 E( u pkexamine dx240 temddy2403 H4 ] Q- |3 ^. ?
" g* ~2 P' _& u2 z% l9 u
local tempminplddy240=r(tomc)4 L0 j2 d4 t: N: n9 w: M b
restore
0 X8 o+ q) C! Y5 z( M" V' M }% V( f: Z4 s3 M( p- R
4 t. J8 [' w% X% ~4 h else {( S7 U6 P0 ]+ h3 r) d4 a
: ?4 S7 g) l. S$ Y- P di "cannot find pminplddy240"
) m x2 M. {6 p9 L! W restore$ t- c* j" R' P
5 t; V0 L) k6 f6 C0 d) _; ?! R sum dx240
& X' _0 h. f" l7 P- P, Q/ }: u9 T local tempminplddy240=r(mean); ]; H) W7 ?" u; v" q k( o
% G( z x( p8 n# o6 q1 m( M + Q- s8 @) N5 M2 X
}
: p Z1 ~0 q c4 g* U+ E# ~/ f" F
# H, j5 k; {$ ]) q; u
3 |8 U% Q9 ^' L! n# p% c/ ^3 `
% t& R6 u+ _* g# A; V ' r' C: I! I7 n, q1 i6 X( X, w
" H- H, Y+ g! X W; s
gen pminplddy240=`tempminplddy240' in 17 x. e9 a& C+ |$ G9 o1 q
& A" b* O9 C6 I0 U* N1 H
*-------------ddy240pmaxp左侧高峰值 -------------------* j9 t. U0 r c1 {5 V$ L0 u4 y
$ T( e( u6 s+ X4 q* Q( C0 s preserve * K; _& W+ n7 E3 F6 O8 m- {
& s& b" ~) Z/ n9 ~
keep if dx240>`tempminp' L4 N. G4 k$ Z& }+ O! z0 B4 H
# g7 ]# G+ M6 h
keep if dx240<`tempmaxp'
4 \/ d8 A, |" ^. C1 n0 N 9 k( b0 V' E8 T0 }0 @/ x- U
keep if ddy240>0
$ j3 C, G7 B9 S& ^9 B count
0 I2 X, ~. }9 ]: Z6 o
1 X8 z1 r# x: o, v+ t if r(N)>2 {
3 U6 L& ~+ o& `8 o ( H3 M; v+ x) i$ P& d0 X
pkexamine dx240 ddy240
) X$ R! K7 K4 |2 W1 E& O 0 F0 K' @, H+ @
local tempmaxphddy240=r(tomc) $ e4 e/ R2 Z+ u) m& y* {
- e: y' s; b, r5 W8 T restore+ K' F5 ~5 ]' w! b
}. z. D, X- ^, z8 K' Q3 {* K, O! G/ n# }& e
" f; U. k& A, N G else {
: |! i, ]. h+ ~# M8 U5 d / l/ |$ ~- q+ d- G7 l' n% Y0 t
di "cannot find pmaxphddy240"3 w/ Q1 X8 w. C$ A2 s
restore9 s% z( Q( b$ E$ g# ]
! e( x+ A2 ^$ n# `
sum dx240$ o& _( H7 p& A
local tempmaxphddy240=r(mean) - x# G9 m6 c e& i& T6 }
) V% @& @+ q; ~$ z2 M5 g
7 [7 \+ T8 W0 C& G8 E }
7 n# ?8 q: i, D/ B1 }8 L. R: T9 r ( a& Y; p4 d& c3 a
; b( h+ _/ h& f) z0 M; S- E
- c* K7 Q( I" k# O# a% e$ _
) G# N0 x" w; r
j, Y; L9 @! z" K
3 @" T4 M" J: k) Z gen pmaxphddy240=`tempmaxphddy240' in 1
4 ^; v6 K) M- s. S1 i# {5 D
) q% m+ U& a& D2 e: g5 n$ }, I) E * u4 H, v% R1 @5 s, }' I
*-------------ddy240pmaxp右侧低峰值 -------------------) `4 ?7 S. e4 T& y+ k* P
' }3 e) O8 {3 |& e) ?& \ preserve # B! O& ?( ~+ G N1 V( A0 N
! b4 M; W/ z# t+ L, |
keep if dx240>`tempmaxp'
2 @3 v: s* ?# `" e ) U$ @' F/ v) }1 i' v2 m7 G
gen temddy240=-ddy240+ o5 Y2 N/ s, u3 D
3 x+ `+ r; t' \' i% d% G
keep if temddy240>00 t3 H! o3 l G9 Q" l
# Q7 X) ]1 }7 |; j+ z2 D& z9 F
count
! b5 k/ s+ g4 n3 Q
7 i/ { @% O4 C( _& r' \3 P6 t2 }/ K if r(N)>2 {0 U9 s% V1 ]* k
* y. S; C' {7 o# y
pkexamine dx240 temddy240" q0 H# l- G9 j0 r/ f4 I
. A2 O( n8 ~) B7 ~/ m0 e5 } local tempmaxplddy240=r(tomc) 0 e( q' U9 P/ f; a
restore# x! K% L4 v6 m6 P
}) X2 \! [% ^( x" R
' ?+ L) x3 q3 z/ A. E, N% i else {
+ S: i: t$ ~5 o/ d restore
& P# S+ E/ A/ Q [5 R% N3 L di "cannot find pmaxlhddy240"
\; z5 }9 I' f8 r 4 S* n+ s/ \4 f+ t, |
+ K7 ~, ?: [+ }$ @3 v sum dx240/ o4 d9 Y2 H2 F
local tempmaxplddy240=r(mean) in 17 ]$ S: l+ U" y2 _! \
2 F9 o8 p4 v8 y
4 W; V% Z- I9 T1 E6 H }
* g, [& U3 E9 T2 t 8 y% ~1 y+ E6 A) J* i
3 E" ~' s9 E2 g: y, g5 v7 V / ?$ M, I: Z$ w: t
0 X3 E1 R3 w( n9 s9 M
* g* }( b, \3 X5 O
% H5 f+ i' \, c/ U+ ]0 O- M1 i, K1 D- \
gen pmaxplddy240=`tempmaxphddy240' in 1; q% L1 D! {- f, E
& N5 X, `! \1 X. U! Y *-------------------------------------
w+ z8 h5 Y/ H$ J! Z! T, T $ S! a4 [% g& D- R [9 [" i& q
gen price5d=v5 in 1/20% }! {8 Z% h/ ^3 O3 ?5 n1 Y ~
. T# X7 ` r+ f! q! h
gen price5yy=_n in 1/20
' v( v4 |: E- }# w* w0 g1 l8 o
" ?/ c/ ^0 |/ V" l gen price5y=price5yy*(dy240max-dy240min)/20
3 P6 N9 M+ a/ v8 \( e4 D9 U4 j , K9 ]# c/ a6 B5 Q+ d! K2 V
*price5y &price5d4 r; ~- `) x0 w9 T4 o0 g
9 d+ f9 J* Y" Q- h! f& o; X
gen priceny=price5y in 1
7 M# Z4 g/ j6 ]7 J! W6 n . V' B8 p) q& d- |2 R
gen pricen=v5 in 1
8 z8 O. E" f7 n4 @4 l: `/ k0 d, J5 U
7 q+ a) [3 Q, p4 I- g
*priceny &pricen
. e7 k* B( y) G) ~8 |% x) Z) y
6 ]3 z H& ?) b2 w/ I 9 O0 m+ Q4 g" P. X) ?7 A) E$ s/ h* F0 Z
*-------------------------graph------------------$ G5 d1 x! N0 k
8 s- P6 ]; g& _7 i 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) ^8 {# _$ _* i( J) Q) {
/ v7 R# [& {8 S+ j7 g
* ---------可选项目----------------------+ b: P( U; g4 |6 G ^ T% y
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))& f5 o- f% f0 d
}5 g2 ]% j0 z4 Q y& ~; J
end' x6 A. A- } I1 r* b& ~
|
|