|
maodeng 发表于 2013-1-28 13:13 8 j& m+ D2 r- P& q+ l9 Z9 D% f
. hello 300236+ c& I4 H8 ] {/ _, W- b! q
statement out of context& I( y3 j) |0 n7 V {' j
r(119); 7 s8 q/ M% e( {* Q+ G* Y
抱歉,最近太忙了
( m R5 n( {& b$ B
+ H% ~ w' ^7 z1 P$ }1 Y# T300236 我用下面的程序试过,没问题1 S+ k) u1 g6 y: Q
* r8 R) H2 }- j/ K- v [
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试1 x. c, c2 K4 X& j
! S: Y4 l& `5 h" Z# E4 o7 tcapture program drop hello( c# E: h9 h/ A: Z4 [* j9 P; v& {3 j
, B5 X- G4 P' k9 Z
program hello; O7 o2 l* j5 ]
9 {. u+ }# R% X6 m0 O4 b) [
quietly {* J1 J2 _& [( i- L: C- Z9 C
' t7 q2 h* V& v& N; r% Sclear
4 x( S# Y% \: E0 L$ c5 Y0 h# z" i B: A# [+ c. E! I
cd D:\stock\test\source( z1 V Z! j( R7 r+ [2 q2 _0 E
6 ?7 R9 q& v9 Y' y8 Q
insheet using `1'.txt
5 i9 _. C% p" C+ X1 v: L
4 C3 G& f S1 M3 r, A keep if v5>0+ z% Z3 e8 t P1 s1 L* L: [/ W
+ q; i# V7 f, O T& Q
gen vt=_n) I" B4 C# l- m: @- Z2 \6 {
& i. q) f4 M8 z. Y R
tsset vt2 w; v- A; h, q/ U. d0 Z
W5 _$ l- B& y4 i
gen zf=D1.v5* c4 s( ~/ r% o; |1 r
+ U2 a' f: C% ~
gsort -v1
* K" e; \% C( Y* k( d& T6 Y6 ^( z0 Y$ a" b( d1 f7 T
gen avol=v7/v5' k2 J6 J4 @3 J0 a: e+ ^8 o
0 z/ s' p% _. m keep if avol>04 z5 X6 A4 n# l. o
5 n3 r2 `) b1 }4 Q, R! |7 B" P
drop vt+ E q! _9 F" n3 O+ Y+ G
+ E; _ L/ V! A( k0 N# i; Q
gen vt=_n1 n" H% n8 Z b9 j' n7 Y
1 Q' q$ j* ]4 K0 I# j tsset vt
5 V; w% ^# t+ m- g+ v- P
# f0 Q" c1 C# {7 V sum v5 [aw =avol]
% z" S6 F7 M% l1 N' r! j8 V% f/ N' ]3 V5 }0 [8 e2 _: B
gen amean=r(mean) in 1
6 \9 S) e6 Z% N, n
6 h: A$ G8 c# w" n5 m8 U8 V: d * 总加权平均值 amean7 W2 T( k5 F. Q, o# ~) r* J, O
9 C* D% z( j- Q. Q7 @% X0 q7 ^# L
; |- ]% r8 u: C0 ?4 t4 R keep in 1/240
( ~; v5 f4 p, V1 A% z
5 F! F) k; x- Z* q% H sum v5 [aw =avol]5 J, z3 I( l4 i' ]4 v' F' T) K
. c* a2 p: w O1 Y gen mean240=r(mean) in 16 O8 _6 @& L/ p1 I! f
$ M! C- b* x( Q- U# n5 d5 r *240加权平均值 mean240
1 d: f" D+ f- _ + ~! j9 {( q# a
set obs 500 0 l1 M* |. \ l8 I- G1 B
+ z' ?/ s+ }6 S3 d9 M$ c9 |/ a2 d kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph4 L! E+ J: u2 O) e6 H
) o) {; ?9 j$ C5 h7 {6 P8 J *240 kdensity(dx240 dy240)- N. Y$ j! p; H7 Z) @! C: p/ }* e
3 R- [6 ~1 A8 q9 | sum dy240
: A. U1 B5 v F) O3 O- M$ u
8 O2 P" u7 X/ |" a gen yxis=r(max) in 1( Y5 A) R/ M% R( n' k* m
" s% Z/ @& z! \* N gen yxis2=yxis/2# n6 S6 _* D- @( _. ^: D' z9 m
- P8 Q7 y" S" S7 x% ]
*yxis
# `! S. t3 K; g( ^" B0 Q/ A
7 P0 H# r: J! {6 a1 W+ A gen dy240max=r(max)
. M! S8 v8 S# w2 B" V
) Z, k# ~9 Z7 z gen dy240minp=r(min)
0 X9 `! N, l5 A8 ]7 o( z' x: I - A; v* e' l, C* j6 b. ^1 d
gen vtt=_n
' l: s$ y$ p" N+ P( K) _" Y
- p. O3 {3 b+ r: X+ h" u tsset vtt
, q5 A5 w3 y4 @( R; C. c% l) r. t( W; @' p
gen ddy240=D1.dy240/D1.dx2402 H' W9 K' q; O0 g
7 b9 G1 v# V+ l# g# x1 x8 G% C
sum ddy240
2 B9 f/ c5 M8 F' S: g/ l4 o/ j. Z
6 H h" J( f* A( p gen ddy240max=r(max)
. `2 R1 A- C- m1 ~+ i3 M
5 q. J2 E! b7 Y gen ddy240min=r(min)" ]$ A& K# H/ C& B- C* T S \
& K" t; R8 {: V9 s
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- V9 @ t: Y" t3 L+ A% Z5 b7 l& Y
|, [, C4 X0 P
sum ddy240g
3 c) E& \! R. [7 ~/ y, U
/ f0 \8 |, S# e; b# W X" ~ gen yxis3=r(min) in 15 ^" z; k3 P2 N2 G+ K4 w9 C
0 k7 p8 y' p0 r, L
gen yxis4=0 in 1# n3 E2 M) W2 A: V% u# W' p/ }
}% k5 ~! d, @0 ?+ Z& E7 i& }
*ddy240g 6 T: X* V. Q n, w" a
5 N8 b& g( @& j& `
3 y* p/ t: ^' v4 j
preserve
8 F8 g) v4 d& G& c! r/ J& \
) b; ~: u4 `& o" h6 x sum v5 [aw =avol]' t( I. A" p2 o6 w/ W. p( B
, c4 r" t; v: P% \3 G4 c) P keep if dx240<r(mean)9 U2 O+ ~& N7 Y( ?. x3 _6 ^
?4 F8 a6 n( U& c
sum ddy240
, I% |# v: T7 G1 f/ g
0 }" g- z" l+ n! Q* v if r(min)<0 {1 z& o4 P4 V6 ?1 c; s
0 q% x/ o. p! |+ o' | keep if ddy240<=03 `3 c( W4 s% S1 L! [4 C2 ?
$ C6 a8 J3 J& K6 e- k. @ count8 E6 [7 Y9 c. s# h! l. _
8 H. r% ]2 t/ I! `$ x" l2 V if r(N)>2 {
4 ~" W; d# h# J+ R8 p, L3 C/ l6 D
' D J3 c/ h; d6 G6 ^; H pkexamine dx240 dy240
2 @( H+ `, v2 z7 r8 k3 _
- @2 S9 F0 A& E: D* f! Z local tempminp=r(tomc)
1 O: ^2 N7 U1 u4 _) { restore ) S3 g' Y( S, ~) g) N" M
}- J. a9 ~! g; Y4 Z. F; x
7 \$ j( U; D* p$ q$ t4 P( |! }
else {$ t: w/ u) V( y3 P' ~4 Q3 M3 C% X
( e" E# S5 Y" C di "cannot find minp": F' e: V1 U- L0 k/ j7 k
- ^! W2 |! [# L9 {' z( w restore
1 b6 j+ @5 N/ N y$ t sum dx240; ]: ?; y' t1 K: k! s- p( ?6 O
local tempminp=r(mean)
4 @+ N3 |9 P% X1 o% G( {/ G 7 F- a V' j$ ^8 D1 x
}
: F0 y* K" \0 B& h }
' L2 v2 L0 j$ Y, L! r else {& D- V8 s5 |6 K. a2 q
! i( d3 B6 Q8 |( @# n. q5 Q keep if ddy240<=r(min)* l" }) }1 ?' A( O
; r, f2 _( T+ p8 ~4 ~$ S
sum dx240+ O3 k( v2 P* w. Q
: X1 m% s" p; y1 R n* | local tempminp=r(min)9 c4 B3 s1 R6 O/ p" }. q! q5 ]
restore
& t% M+ d# G1 [: w }0 A. l9 |/ Y' k; ]
- Z+ @" O" l$ ~! s. }
]8 j; w/ ^% S
8 Y- H( Y! l7 {& d6 [# I gen minp=`tempminp' in 12 M9 o! ^, Y6 `" A% Q6 L. z
*240 minp: `6 H! d& U* D6 r2 e
8 b( V- x% I# O9 X" J- z2 |6 a# I- N2 l3 }0 ~% @4 C! p
( B Z' f* q' x2 U: g0 L
preserve
- B+ N8 g/ e( Q2 g/ p6 ]5 {4 f+ O! i
8 H% D) y) T5 ?7 r4 A9 X sum v5 [aw =avol]
3 s+ @+ \: Q3 |9 m) g q
0 X7 q! |, S; X; s% ~ keep if dx240>r(mean)( W, G5 _% F2 n# \, H+ N3 ~
+ n1 U% w3 b7 l/ o# t* @% ]' u sum ddy240
( q! p1 t8 ^* M6 f' c' s* g ) K" H G; v8 b: V7 e
if r(max)>0 {
_) K4 d# F% D# V" Z0 F, ? " F* v! s$ E# c. \8 ~
keep if ddy240>=0' L% K" r# t2 R5 ~' f% n5 S
9 T& v: k2 k# Y: H
count
7 U! ]* Y6 C/ X+ ~$ l+ w 9 O* P, a1 ?) E1 m9 U! n/ ~
if r(N)>2 {
, Y5 z% v# _1 H$ Z
1 e6 s) E/ H7 ^7 I0 ]" { pkexamine dx240 dy240
. A8 {% q4 R' B7 k5 z) C' t 7 {. e7 N9 Y) Q+ \6 ]9 t o) K
local tempmaxp=r(tomc)
$ }* m8 C+ R# E1 Z restore
) f/ f! N# I- s }: Z( x2 ^2 O, @, A9 g
4 ~4 y! u+ y, r- ] e& |7 u- Q; l7 i" l
else {
+ B5 T& b4 G% Z0 e4 \" } restore
/ N0 W% S* _- P di "cannot find maxp"
; Z, o2 a# Q. l, K) c s9 V
8 J. v. W1 f$ d
. D& G; r, s# t4 J& }. u sum dx240
3 C6 ^" U( F; q+ E6 C- d- A1 r local tempmaxp=r(mean)
" o0 q9 o+ u% A: l( r! v
7 {4 O e; b3 w& K7 K) X9 V1 o }
- R" [. p) H3 j9 ] H; `- K4 P. g % e4 l m( c! G o
}
9 k6 J5 Z% y$ z* ]" ? 2 D; W( ~- o g# v, q6 S1 ]: L& D4 r j" ?
else {
$ @' }) c- t8 x- W
7 H3 [6 R& l6 y( v& `0 K8 Q5 r6 c keep if ddy240>=r(max)
0 B4 |4 [' E( Q. M8 ` $ S$ ?$ w& n" b: L( c% S" E
sum dx240
7 v: [4 v, D5 Q0 _+ _ C( H7 t& e: f% R 1 A7 U# G! ~9 w: {0 F) C
local tempmaxp=r(max) 2 ?4 I4 T% T# d* W* P
restore
n$ e4 m2 s$ K) g# B }
5 J0 J$ x) M# F6 `! s4 f ! F+ ~, ?5 t% [1 b9 L# E- c5 [9 V
- D$ W1 I$ I% f. A, D
( z% A5 j+ A7 _
3 H5 V6 l$ q$ c7 {+ U5 E gen maxp=`tempmaxp' in 1
& [: S. k' y& N: E
0 p. [2 P* a& q L% A! V- i/ b *240maxp
S6 ?# P, f }/ j* Y% h# A/ w4 F
' r' a9 o$ V8 n3 i8 J 1 S- R7 H) s, v: e y
*-------------ddy240pminp左侧高峰值-----
z8 \6 [9 W2 Z$ a: |' R5 v - t1 a% l- t; H) _% p- m. j. T7 V1 {
preserve
6 G ]8 p4 E; V6 J # ~3 p; C7 u* o
keep if dx240<`tempminp'7 [5 ?# H, b/ I _
2 Q" H. F$ X$ m% [. z
keep if ddy240>0
9 H& r7 b, \7 q 5 L6 f4 f4 p7 l! n. Q0 O% G' q0 K
count
, K+ b1 a. k# H. i
6 ]% \2 T) ^ l# _$ |+ P' Z if r(N)>2 {
: t# H! @/ \/ f+ c
9 }* N* m; K& G& t% J8 s' Z pkexamine dx240 ddy2404 f( r; K& P* _2 O! d# U
" Z/ N/ |3 u; Z& D2 g1 j2 ?3 r
local tempminphddy240=r(tomc) 5 z" ]. |8 P! c4 Q4 K
restore! q0 w+ `5 f% U- z9 o9 \; c
}
( V- b& e0 D! i$ J! V% [ " ]: S9 J; L, N/ L8 |0 R2 J. \1 |/ S
else {3 d- K) t. t( O, h
restore 0 u% W; D; x7 @ H* \
di "cannot find pminphddy240"
$ U& b' x' P' X# a0 c% |) |9 r 5 a- p+ Y9 b7 |+ k
* g U+ S0 r' T I4 K2 ^ sum dx240
( c) ~/ p2 F7 R% B! j6 t1 A local tempminphddy240=r(mean)
, _4 J4 m; {' `5 e# C9 H ) F& z0 j. }+ M& L4 [+ V+ @) |
' {2 H! V7 v0 A
}$ l0 _3 s+ t4 Q* a! ^
8 N, R; W7 i$ c y ! E9 c! y* o7 b9 R' F$ i4 [% t* m
: a. e( M" b$ `/ F8 g. a( k
@( U$ Y% z U. ]' y2 H
" P& k l, h$ G! J9 f# A ; `0 S7 O Q; B( t8 s
gen pminphddy240=`tempminphddy240' in 1
# q( @$ j% k1 U# E3 F1 B- V9 h9 ~6 f / T( R( n2 P8 F2 O( o* U$ I, ^& j
4 V' u i, l; B *-------------ddy240pminp右侧低峰值 -----------------1 r/ P* g# R2 j: \! f
preserve $ r5 t# c* j) p/ W* K- f
+ b2 c3 x$ m* ^- G. y5 Y; P
keep if dx240>`tempminp'* M V4 `% S. \- H! }3 o, f5 C
. P1 b0 `: V. E. {6 y% n1 n keep if dx240<`tempmaxp'1 t+ p' \ B/ [9 v6 `9 W
- u$ o# \2 ~ c+ H1 i& Y' R keep if ddy240<0" q9 R: K" Q* v3 ?$ b
) b" z# q, Y/ l" ?, V
gen temddy240=-ddy240
! E) S, ^5 b: t& l! X1 K8 g
2 ]( u, [( N3 l ^3 ^+ h5 y- @ count0 ?9 d" ]. n# v W. P) K) @: b
( Z5 D3 N( ^' F- ?1 `3 N8 o if r(N)>2 {
& K1 O" L; \& i6 h0 p( }
: }+ V: {8 b1 m) v/ R( E1 t pkexamine dx240 temddy240+ U/ N" Q/ M7 F. b5 G# j* i6 q7 v
6 d1 i1 t' o* L8 [* W% { local tempminplddy240=r(tomc)
: ]6 \$ S- a. J8 P, p2 m* R restore4 p6 c, K. o1 x. e
}' L; ^5 f) r: S0 g
G# X ^! } Q. u8 |# x: e else {- R" Y1 H* N. }/ w9 |7 j! f
! f. n1 g8 ?( a/ b5 J di "cannot find pminplddy240"
+ m) C7 q5 C; t" u6 J restore, c$ B/ q) r5 t# c
) f' F7 M. s* x0 X sum dx2402 s$ c1 j( u" i- } j3 h9 T
local tempminplddy240=r(mean)
- p( a$ R- N4 h
& j, k4 B. w" g
0 Z% b4 D" M1 w: ]" ^" c }
4 p) s5 b0 Y4 V9 j2 X3 F5 p " d$ {. `. {' D0 b1 }) [5 o) N o2 K
8 k+ M1 Z4 {3 X8 K1 D! W
8 U2 W; e+ Y8 e 8 s0 o r( K- I7 [. t$ J& o: e
4 R9 F8 D7 t8 t/ n/ i* c
gen pminplddy240=`tempminplddy240' in 1! g% O# L1 `/ @4 C2 ]
* X E, D% Q2 |
*-------------ddy240pmaxp左侧高峰值 -------------------1 V# I' R& Q. b3 H
$ n, V: \; b4 U4 p
preserve 2 \6 c8 G8 J; W7 b1 M k
- p- {0 h; S, l% e" I keep if dx240>`tempminp'
1 e8 r' }2 Y6 Y; q$ X$ b3 J ( b, w+ ]7 d" }( [4 e/ |8 D* s9 k- s" ~6 ]
keep if dx240<`tempmaxp'( A4 E" `2 Y' c5 n' v. b3 O, Z
; C9 ^! K4 I; c' o# u
keep if ddy240>0. F; ]4 U2 P% ~5 `* _
count h! @1 x" E- @& d( ~2 z
6 j# O3 e; n& q3 k; I if r(N)>2 {
1 Z7 J6 s9 g, i( A . j* ]' y; z0 O) f/ |+ u4 g
pkexamine dx240 ddy240 v) b/ L/ c- X X; C8 Q3 K
+ e# N; c" n: y* J: B local tempmaxphddy240=r(tomc) 5 J5 I. u( w- y" Z) L
. q/ G: v% n! \ i- k$ T
restore
8 x$ ]) R( c7 a& P# M: p }
% E8 w. i4 w% j: }% X6 { R
8 O5 C, L$ ^7 k' b( n else {
: P) V1 J0 Y$ [$ B. e ! E1 l+ y3 y4 O" i% g7 J, n' U% q' _
di "cannot find pmaxphddy240"
. {4 [, ]% |% @+ ~0 h/ X restore
; K% `7 [1 m- Z# \6 s: @- o 1 c+ L5 u# W! t7 M
sum dx2408 t, ?0 X9 R9 O) s, O3 U
local tempmaxphddy240=r(mean)
% N2 ?! s, S4 C5 A ) g, _: }) G+ o6 k2 D( ^& B. M" _
/ U* U! L4 {8 D
}/ E; w( w7 f- y, y- }* S g
' |+ w1 m; @* }' F: r* J( m
0 D3 ]2 j' s3 ?; O! d) m+ e
% E9 v7 z, G$ `' Y / d0 ]/ p" K$ o, P4 n! ^
3 b& n# G L! z- u# y 5 @" s0 P! J8 r. D# v: J+ S' F2 [2 C6 u
gen pmaxphddy240=`tempmaxphddy240' in 1
, h* i5 w! @. E) L: }0 J ( ~- u3 v( ^3 V7 Q+ c
; z) c/ x, ~+ x' C *-------------ddy240pmaxp右侧低峰值 -------------------
1 ]5 U Y7 i0 X5 F- X0 ]: @
5 f: ~6 z* f+ {, V preserve
. X' S8 V' Y2 A7 p% h% Y6 v* S 8 @% X! s; U- _# F
keep if dx240>`tempmaxp'
$ b0 F9 z( G6 U$ L2 v1 N - e. ^: v8 J0 f- l3 Y- i; A
gen temddy240=-ddy240
9 z' G( o( x, l
S. E, ~9 @1 t' _. b7 D keep if temddy240>0# W! H% J' t" ~, l2 a) t8 b
* F! J# r! I, n( J, Z5 D f count. ]8 r2 z2 ^' ]3 j3 H
1 {4 h* p' m) F, C2 O9 E
if r(N)>2 {9 G" [% P8 d" j
~+ ~2 d! P" o" C% S+ y) _
pkexamine dx240 temddy240
+ ?" C+ e8 @' U! T4 ?) x % `" V ]' e, |( r
local tempmaxplddy240=r(tomc) ' N0 H- t( ]/ Y e$ {8 O9 \
restore+ H# @! P. s- X& l' u. |
}; Z# L/ P) O h& ]. p
# ~- ` [6 Q: c9 r- \9 ^( I else {
! g, v7 F2 q, W( s; u restore* l* v3 g* x5 e; m! `5 j( z
di "cannot find pmaxlhddy240"
3 m0 k3 r* v8 G
$ t# ?/ R+ s/ t3 o; G ! r* W* M3 U) \& V+ R3 j, I$ N! O
sum dx240
* w- j9 C N6 y! k local tempmaxplddy240=r(mean) in 1 J2 B+ P& \1 Z' y& H: n
8 D R0 o- H/ y$ d2 {2 r0 W
0 J) q2 P4 c2 b, T. C' i5 z
}
8 G' ]' a2 _/ U$ a% w" Q) s- N0 H ' F+ V% ~& D/ ]9 z
" f, B" z% D5 L7 X
% G5 o& G7 G0 D1 H2 m" R$ F9 Y/ x
+ X; k: I$ y: t9 P+ h! Y
* F2 l! T) h# M8 N1 j. M7 [: x
+ y$ W& D0 N% b5 Q gen pmaxplddy240=`tempmaxphddy240' in 10 _ b4 b m% g5 K! I3 S+ V
) ]: m1 F5 w4 O7 q0 ?
*-------------------------------------
5 L0 u" d3 Y5 K( O% K7 W
+ X( k* x8 h9 {" C/ Z* y+ l gen price5d=v5 in 1/20
( u, Z& ^; x/ R8 Z/ R7 ?+ g
% u& K0 e5 }; E; J$ {& i gen price5yy=_n in 1/20
' I" @5 ]( V& v4 ~1 A6 ` 3 w' x/ s9 T( f5 U& c2 r8 x
gen price5y=price5yy*(dy240max-dy240min)/208 E9 ^& v% O, v5 S9 Y7 u
6 I5 v& [# C R$ M3 y9 A) X3 d
*price5y &price5d. @$ b5 ?1 X) R p7 Q# P
9 n2 J/ g* P) S" [& W
gen priceny=price5y in 1! F: {4 P# n/ P, F8 `* W6 M2 ]
/ B9 Z, c6 e: n& F8 k
gen pricen=v5 in 1- c% ~+ L7 s- \: O4 B5 k9 Q
5 j5 |# e t6 g( {9 ~ 0 @: `- H( I0 L q! s9 q8 g
*priceny &pricen
9 O( Q5 h- [$ s9 u& r
7 I; g4 k- B, h+ R- m+ Y Q- I- Z# M( h
*-------------------------graph------------------" q9 \, x1 q# B8 t$ ^6 C
. j8 A9 K5 G- X7 J# }" e5 x( I 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 T( u' N" }# U- X2 O" `. M' ?. l3 ]) {* z7 h1 \
* ---------可选项目----------------------' c9 S4 ~7 |) O j: Y; G7 d
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))3 N5 A' E7 s" z% l" x1 ~: Q+ k
}
; e: Q8 S, E; ^' S: kend
/ M& r% D$ }, M |
|