|
maodeng 发表于 2013-1-28 13:13 ![]()
8 j, ]; f- Z9 D, b. hello 300236
6 Z1 {) J* G3 b$ T+ o6 C1 |7 `statement out of context
+ S% @0 F; r; z! q/ I, ~r(119);
- V1 J0 ^' I" A抱歉,最近太忙了' a _! G5 c( n a m+ ?9 v) A1 y
* R" B n' s t4 J0 ?9 l4 J N300236 我用下面的程序试过,没问题( P! L" }% X* }. V, x5 h' q7 T8 J$ ^
1 ~* j4 ~5 I1 A$ N
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试9 e8 P B0 r- V+ \! D
9 G+ j* D* e) d
capture program drop hello
' _5 H) n4 F+ K. i [1 D) ~
A: M5 s' f) }$ Bprogram hello) U! P9 C' h Q% P6 I1 r/ O
$ _; ]4 H9 m9 r: T$ J! N
quietly {
+ `( A" ?5 q, L) o2 P6 }% ^8 W% h( a: f4 r/ b$ S
clear( Y7 h4 E- Z0 }0 F2 c+ w
/ w T9 Q: d, |) ?
cd D:\stock\test\source' d+ j" A; _- p1 N
0 Z7 O3 E: M6 u0 F Y' linsheet using `1'.txt* C4 O. a. m5 u* P
7 p7 O9 c3 n. |% `4 ] keep if v5>0
. U3 K0 I* C9 t. a/ L" V' A) r 9 R0 ^5 ^- X9 s' [2 a. E
gen vt=_n+ J/ @3 }! q: t/ m5 z; `
4 ]" y6 S8 I( s4 f tsset vt" Y3 } h1 k7 {% _: l; O# P
; |9 _/ b6 X* ^5 @/ G+ s- U" o
gen zf=D1.v5
. y" p s, C; }' o2 M
$ s7 b3 K4 ~/ w, P6 P5 Y: `" F r gsort -v1
" l2 w7 M7 F) f5 D
K: {, A1 _$ G0 K2 | gen avol=v7/v5
1 R C% B. D6 U) e' a/ I 3 q) b6 q) s! ?
keep if avol>0: {7 M! H6 Y5 t" }# L. U6 g1 M
. D k+ I7 ?. Y drop vt9 o3 ~- O( n7 N; T: P9 V
% O4 | B1 S `9 A, ~# k gen vt=_n# @+ ]6 L: W7 Y& C/ G
( _* ~2 R; g) M+ T
tsset vt
; s3 p0 e: A0 e! n7 F
* b5 ?; J- P, n* M2 ^' O sum v5 [aw =avol]
8 b W- R" l+ `6 K, |; r
' x8 c( E5 u- }! s7 Y1 e' [3 Z& S gen amean=r(mean) in 1' A( y D. x( w3 z
8 O4 \2 x# [# R: }
* 总加权平均值 amean
8 G- b% t* B$ C" \9 {! j
3 ^7 z2 x& `2 @. o8 b7 f " Y4 m& |- Z B7 w/ B2 Z" f+ o
keep in 1/240! E+ q$ I8 K( d' Y2 C
6 m( u5 z8 f, [6 \+ Q9 E% p
sum v5 [aw =avol]! G# ?* l% s4 I/ T+ o4 F' O
$ U3 E. a. q# t( b' t
gen mean240=r(mean) in 1 [+ S* m2 U$ f/ N8 B) a6 J/ w
# a6 |. a- s7 {" ]2 k( }0 M2 C *240加权平均值 mean2401 i8 n# b6 z. `* ^' A+ a3 I: j
9 P0 R! \- a4 ?. C% G/ z/ u( H \3 i set obs 500 . q2 j& F6 H, z3 E1 y( R
7 Y, O/ f( c0 Y9 _& i kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
0 X% X2 J# B' P( H 4 B- L2 {9 O; H2 U
*240 kdensity(dx240 dy240)& I$ i; m0 E X% A# U) e( L
& h$ o( m+ ]3 j' X- @ sum dy240" R' u& v6 z" g- `
0 O, P! w9 y7 j( \6 A$ h gen yxis=r(max) in 1 I$ v/ b& K9 i# N8 V
|+ G7 [, H5 U5 x; y: c% F. o gen yxis2=yxis/2
: h$ N3 D! k* f
) R/ C: \# g N$ y/ a6 b1 i6 n) P *yxis
/ {& [9 {# t2 _* m7 [5 v 3 P% c* t& ]( u7 W# @+ ~3 x
gen dy240max=r(max)
5 Q9 B" j6 j, Y+ M) O
% i1 u& z/ ^% ~; @. q' O gen dy240minp=r(min)
# W5 v0 S o2 c! v# ^% w
. m: @. q E7 M% X6 c O% z' f gen vtt=_n# M5 m! x, R' q9 T+ N3 _8 S2 x2 s
% B {. L! h7 ]( `6 f7 ?
tsset vtt
! l. o" {, [& m2 m9 u1 m' G- Z$ ^
gen ddy240=D1.dy240/D1.dx240. b# k" O' X2 L* W$ e
6 ?3 i) o" H- {+ V r3 {, y
sum ddy240) R9 m* X+ g6 v) ^8 b: Q
) {+ P) P# L O gen ddy240max=r(max)
1 P9 Q( r* o$ e. ~: D/ q! N + S7 d: s1 X$ q1 |! a! q
gen ddy240min=r(min) J0 a# V* B* Z6 S" _! I8 N/ ^8 \
0 r- O' m. V. w
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)' g- ?. f" f+ ~1 ~6 h1 W( ]) S* q
1 }; g/ ~6 Q, J9 I3 u) O k& j
sum ddy240g
( S' q" i3 M0 e
* M1 R6 p$ h/ h gen yxis3=r(min) in 1
4 A6 ?$ T- }$ M/ M% X & `$ v, s9 x# n T0 m1 d( Y
gen yxis4=0 in 1
( I5 i, U. L3 O6 q( R. k8 D8 d7 \! c
/ K2 H3 j4 C5 H+ h N# Z* o *ddy240g
, M! e7 ^5 V9 A
7 d4 {$ [- e7 Q2 Y # j3 @4 B) {+ X
preserve
5 c) w# g5 e6 [
% Q, h! j$ S" @$ `; O sum v5 [aw =avol]
5 S# U9 _$ {6 j0 m3 v
; J0 O* @* [1 U( J, W& N keep if dx240<r(mean)$ u3 j* @ H0 D X+ u' \
0 M$ x# a7 ~! R# x sum ddy240
: i& c( m& T- J - _) C2 Q! T% i4 U* V
if r(min)<0 {
% S* I" ^3 s/ F. A" ~
5 L1 C4 i; ]% c! s s a7 v keep if ddy240<=03 G) @, T( `0 x8 x+ I- O
1 H- [5 h2 \5 b: Y9 c- B
count
) C7 \; x# R1 ~6 Y* u
( T, o5 v7 z" Z9 P$ Z if r(N)>2 {5 c% j* L% d* Y) M; {3 ^
% }' A$ M3 h; u, c: b
pkexamine dx240 dy2401 p9 @; i* G7 Q$ D% ]0 f" J0 ^1 q0 E
3 o g1 b5 f# o& D" h
local tempminp=r(tomc)% {. o, W% L, X h/ W! ~
restore 7 Y" e/ n1 O u' G
}
9 M& R) d; y, s # F% e9 k3 r( a6 r: m2 {- k
else { b2 Y6 ^# ^6 _' m \ O+ r- q
" a6 a: l+ |0 [
di "cannot find minp"2 O$ D8 H+ l4 G
" U4 @' B* J. F. J restore : V( ]* Z, s2 K7 ?2 \) g
sum dx240' J7 E/ p% D! [6 }! e
local tempminp=r(mean)
$ ]% ~( e0 J- \ S6 b- H* ?
- h2 j$ g) S" L& f) Q" I }, c& N$ P. B. Q" [4 L
}
* V, ?2 P/ F# T3 l( C7 p( I E8 Q* y else {
9 b3 j# f; u9 M' V8 O: r( [7 g
# S0 W7 O/ `' e0 j! ?6 ?, Z keep if ddy240<=r(min)3 v# |# c$ t7 {
% ^+ {9 a7 L2 r% V( N7 \/ L% k sum dx240
' g# B* V% e. V+ L. J8 h% r 5 b3 L, a0 q8 X, U5 p/ D
local tempminp=r(min)( g' r4 y! N: ]0 }; n% f
restore # I/ [$ Y8 \$ Y! _" _. |
}0 ^7 Q$ O4 t. m& c5 J
6 K/ V; t# _2 V c$ Y$ ]; [; f- q$ u1 v* z
2 A: C) p0 A: D! [ gen minp=`tempminp' in 1
3 h; i- m7 j, h3 D& Q, p *240 minp
* v8 _6 Y, [: U* ?5 \* x2 m+ L$ w2 N8 H6 s/ j ]. `
9 F5 G7 M1 @5 r4 w- L" [/ C3 g
; M/ ?, ^- y; F; f m7 D- {- P/ P h preserve
& j; M6 }8 w- T6 ~" a, P, {4 S. @ # }+ f3 U3 p% L" B! I3 t# U/ c
sum v5 [aw =avol]
/ L4 P( f6 ~/ b4 R ( D, b2 y: {$ g# K5 ?( J* I
keep if dx240>r(mean); Y. B9 L+ Z, r6 c' E) F( J
! ^9 U% _# L t" b" v% l9 s
sum ddy240* x' |. E5 I9 A! @! ]! g) B1 t
' i0 p2 u# Z6 Q3 ~. w% K if r(max)>0 {
! i& o7 C" F' T* H0 C; v" j - o/ p6 L) j/ ^6 V8 |5 g( z7 U
keep if ddy240>=0
# I! ]( i2 E: u* Q0 O4 H+ v ?1 X 1 f+ {- C! V3 N9 q' Z
count( e1 Z6 M+ D1 h4 Q. F
9 j2 Z( b# H3 ?6 L. _" o' g# V if r(N)>2 {
I x# {( _1 I+ b+ s% r, P # T! \% a* u3 Z; F5 k0 t ~) Y# Y
pkexamine dx240 dy2406 i% Z, I! a7 Y
0 ]0 {& M V! Q0 b, w local tempmaxp=r(tomc) % K( d- h$ t2 Y& G
restore
: I3 O3 z+ j/ ^6 i9 s3 w) f( | }
2 Q0 X. }& p' Z; B8 O0 L# W n
" k3 H' `% e) z& s, T0 H6 u! d4 @ A* c, g' h& s, H3 V
else {
) m. S" r" @9 z2 ] restore
8 d7 N( q# B' w9 u; v di "cannot find maxp"6 n p/ `1 m( i3 m
! m+ |, R# x" i
6 z6 n' o& G" V, @2 V N: Y( R
sum dx2404 }$ ]+ Z# r: s' Y+ R/ l3 `+ q
local tempmaxp=r(mean)* z/ V# O$ Y/ n& j' n
6 N$ i' M3 M& M6 w. o6 B! P# o }
; N) V6 q/ |( s, m" P" O ; D _5 T1 n4 m6 @
}# R R s' h* N w9 N' ^
- l% q8 o4 d2 Y) { else {
9 u+ P7 x" A% b3 B+ z; s $ \6 _8 q: R* d; G# S F6 y
keep if ddy240>=r(max)8 A3 _% @$ J) n# h; N
5 a: r( b: W. f7 T
sum dx240
0 {# H0 c: D/ e) q7 X4 g# _* D( A 0 T, M+ a1 s" R& Y* \
local tempmaxp=r(max) & b! |/ c$ V" G% g3 Q/ J
restore 4 h/ y+ t8 u! d" {& \
}
' I$ z* Y- I; f1 k" G( B
# m4 a* _) C1 ^6 l- H: O$ e5 @9 g* K0 p! t: e- d
( I' O: B6 v, A6 V
! z& y+ P2 N+ ?7 o/ e, \& p0 H
gen maxp=`tempmaxp' in 1
* [3 x2 d/ r3 i3 C4 o$ O5 [, P: y " Y; ]1 I7 t- v1 r( D U% W
*240maxp
2 }4 R8 U( m5 H 9 B( ]# ^4 P T0 K
& L% Z7 z' ?: o! H0 y% Y+ K3 M. { *-------------ddy240pminp左侧高峰值-----4 h( U2 E9 }1 d& x
6 F; i) u+ W, U7 [ l+ B
preserve
1 M! R0 `$ c* c7 C( o; n6 X
; @; S9 C8 M3 D& V# x keep if dx240<`tempminp'
4 q6 C7 R' `7 S. h, Z7 P ) f9 W9 K+ X2 }, }6 s
keep if ddy240>08 `: U$ `& O# @# b
1 F# }6 R$ w3 o4 h8 w) ~3 Q
count
d) @; q8 H6 i# l" q . p# t0 d) f- {0 x$ h8 ]1 E: |, S7 D
if r(N)>2 {7 \. I$ b$ L/ o, g7 L1 H
% y. p1 s8 k. ~, I0 y4 _4 o4 Y
pkexamine dx240 ddy240
2 w L6 O. H+ f3 u 5 Z$ E2 W6 e; p4 R( c+ O- W
local tempminphddy240=r(tomc)
# k" _2 `9 k! E6 m3 U8 l restore9 z9 W+ H- b4 ]/ D7 q a$ u9 P
}) c: F( Z2 `0 f1 D" y) r5 C
$ [# s* L. A) V G; B
else {* D; _8 Y/ _: J: N7 R
restore
8 ?( r; J9 @! i. D* Q di "cannot find pminphddy240"# m# n( I* v" P0 }1 G0 R
u* i" x0 ]# w+ l$ I. f, M1 n- a2 ]
( e3 }7 O, K3 N- G3 s sum dx240$ ~' p7 \! p& Y( i6 S
local tempminphddy240=r(mean) , V5 ? ]5 U) M3 z
$ e, d* R( R; t* n6 d 8 \5 m" s) k; y0 L
}
, m# u R7 d" i6 s4 z: s! F $ M" x m7 t1 a, e, o; }1 d: V- [) K
k- U$ B8 i5 q( k9 J
' G* E/ h8 e, v9 H) v% B v
& b" |5 ~" ^2 |! h. ]
5 t* n/ B& K% @) J) a
# g) h' Z$ g- B3 p' n" } gen pminphddy240=`tempminphddy240' in 1
: f. Z" \$ ]5 b$ R* X
& S9 p) A! E5 u' T+ k2 u
+ P% G, ^) ^+ ~; M: w" ` *-------------ddy240pminp右侧低峰值 -----------------
( `( S/ }4 m( W& A' r4 S: Q preserve
# |4 D% B. {* |) Q ' K5 T# y! o, Y: q
keep if dx240>`tempminp'' Q8 F: P7 }. n5 F
- R- [- ^6 ~, n keep if dx240<`tempmaxp'
0 Y8 i* V4 s2 i) [$ u
! S ]5 H& A2 C/ z! x( ~ keep if ddy240<0' [, p7 h& K2 g! {3 o( R
$ Y/ w& u4 n- k3 X
gen temddy240=-ddy240) c2 h: M3 R! J' t
# ]7 l' c3 c/ z5 C. i
count
. W1 F- _+ ^* w5 U6 A
1 C l- N- @3 T5 v X; a6 o if r(N)>2 {' C' x: o, c3 N- `
3 n9 a9 W( }; S2 e
pkexamine dx240 temddy240
4 t ?: v' f! D; [; g: F: f( k) d . {' F3 F7 a% ^" q* W6 F
local tempminplddy240=r(tomc)
8 Q: \. y. I9 ] restore" c( F1 ^3 B' K; M2 R" C: _
}
4 u' X; E: V# `. A9 W; g( U6 u7 b. R
# \# _( v S& ?! D else {) G( d0 d9 _& I! } J
; l l6 L+ |. z3 G+ w di "cannot find pminplddy240"$ S* V0 O! C# J- c: _/ ?6 i& i
restore
) f( r# W$ o- N+ ], E& i r1 r # m: m5 T7 H8 u7 T. u
sum dx2406 C U6 y. U [4 M
local tempminplddy240=r(mean)
# M* E( S) g5 s2 x' m, r9 U% w
2 X, N; f# C5 `8 v& g 2 ^2 `6 Z2 ?0 ?5 z2 \* U
}
4 l8 t$ T, P0 |1 v' K. [8 V. ~
3 U! U+ j6 [; \ $ c( `& M) l% r: p9 b3 z: i
0 W5 j; G/ R; Z9 q, J3 @$ X* e6 y
8 K& E" {9 k5 Z; R( v! I 7 Y4 F+ h! k" ^% L
gen pminplddy240=`tempminplddy240' in 1
2 Y/ E/ L& P4 c4 `2 L
: d9 s* P' ^" z; K: | *-------------ddy240pmaxp左侧高峰值 -------------------
5 y; Y2 y1 W5 V" f1 g7 q! b# ]1 N% c $ |' Z) x+ A0 g" H z' q8 G2 m
preserve 4 k- Z# f! [+ O/ F7 Q+ W
+ T+ x8 {/ y6 y3 u: b# n keep if dx240>`tempminp'' U2 R ]) n8 |; {# L
6 X5 i( P" s: f* j. i' b
keep if dx240<`tempmaxp'7 V. X# _' @0 o( Y" U
7 |# A: G$ @5 ^* H6 R; J keep if ddy240>0
5 d. c, o9 Q4 C count
; e1 [1 g+ K9 f0 H5 I 2 P, ~: }6 j) ~3 P9 ?1 h
if r(N)>2 {
+ q( }1 x# C) i) t x6 C4 C7 ~, B- d& @5 Z& ~
pkexamine dx240 ddy240+ f& H. K7 j) f- J4 I( ?! a; F1 N
3 g5 E' s3 ~ m# S& P/ B+ h local tempmaxphddy240=r(tomc) ) u% n% O7 z* G/ g
9 A: Q+ s% w5 v, ?7 q- Y) B" Y
restore
9 U3 A# D$ `& m& t, t }9 _/ P- s7 ~$ v m0 M" A* u
. j, X s& }$ ]
else {2 m; Z7 x( {- ~6 E
0 b% h# ?& c" A% k
di "cannot find pmaxphddy240"( Q' Y6 c% u7 C& ]" n/ ~" S( B" [3 N
restore+ J5 c2 j3 W# R- o* C
- v9 n! x/ j9 h9 e
sum dx240
; _% E4 q3 g+ ^' J local tempmaxphddy240=r(mean)
2 E. b/ V6 t6 {
: r* `3 H) u1 D" G2 X0 O2 x2 b
/ N6 J/ B, I# N' \" e Z. j! L' H% K }# O$ G9 O0 [4 e6 t' ?& J
: I$ l; N: M- U- M0 |
2 {% h- k/ j7 w+ O: ]6 Q : g6 A( H9 D0 I6 v
, V$ g r" Y" s8 A9 K( N
: o# X9 a3 L. S% k
& U& t) R# L4 { gen pmaxphddy240=`tempmaxphddy240' in 1
$ c9 a/ U* }$ i 2 M7 M/ M6 x& t( e6 @& m9 g
1 h: ]5 F/ z2 a! l$ [+ J6 z
*-------------ddy240pmaxp右侧低峰值 -------------------) k* n0 b) c6 ^7 F
4 v) Z: `/ S/ J- d9 c! [9 Z5 ?' F preserve 3 D# z, B. S- u
+ B- m4 u/ r* I$ d5 B+ N, k6 ^ C keep if dx240>`tempmaxp'
; Z& @1 b2 u5 D7 w3 j+ K j% {2 e' F/ ^0 b
gen temddy240=-ddy240
6 N- s" Z9 G; M
9 |& B4 a* v5 ^1 s% y, P/ ` keep if temddy240>09 B) |) p2 D6 T2 `5 U: `. f! |" O
* P. P1 h9 k! Z4 P6 D3 z) o2 q count
, \: K7 A8 m Z2 k0 ?/ K. w & o1 |; C( ]. E+ M0 T+ H
if r(N)>2 {
% e8 G) u! m9 ]- e: P% t" ] ) D* X! l6 C, R: s
pkexamine dx240 temddy240) P' s( X$ t" w3 Q6 s( l5 \+ S
6 N8 m T9 I1 }
local tempmaxplddy240=r(tomc) 8 j: p1 {0 e" n# j Q0 s
restore% U _* G' ]; P4 R
}5 d+ M% C3 A% |( y
' D) w# \- o# _ M
else {8 }3 d1 m+ `2 N5 H
restore6 L4 E- F/ H: n! W9 G
di "cannot find pmaxlhddy240"
. P! D, z4 B% _, \) q- v * l( n% Q2 s% i0 m! y$ r
' {9 I9 ^" V- O' r( L
sum dx240
# Y- Q' ]5 @% N- ] local tempmaxplddy240=r(mean) in 1
9 T2 x" ^) y4 [ # J5 N) z+ o+ E6 I N
: Z6 g' T. f: G, c( G1 j
}3 V" s+ I9 x( d6 Y/ ~" R) E
) S0 Y1 W8 X5 `+ M0 S
, @9 q! C1 q- H7 s
$ F+ |. h% [' i. v( y8 S6 ^
9 c: L3 z- [: }; c$ y8 ?* D
0 e3 E/ ]9 C2 V+ Y2 A: t- |' U, P2 A' | / G' U3 F- i# k" g
gen pmaxplddy240=`tempmaxphddy240' in 1$ k: j% _9 {8 e
" Q; c1 ], R$ }# B3 G1 p
*-------------------------------------$ g6 s4 Q" `7 \& w1 Q
) ^* I3 G& r, T2 U c- T
gen price5d=v5 in 1/206 O" g. a3 W. E5 b9 |; m3 w; i
9 b: ~3 P% s. |' k4 A8 C) r gen price5yy=_n in 1/20
# z$ x" T+ C4 D) s& u* k : D% m4 N3 D( n. |
gen price5y=price5yy*(dy240max-dy240min)/20( {% X, {7 v" y- h. t
( v0 w+ Q5 H7 q4 ~: a
*price5y &price5d d' c7 l0 H2 u% \" H; ]9 \% f {) X
6 O" J6 f% Q. c# P7 C0 L+ v( w' a gen priceny=price5y in 1 l$ `" ~# h; \- k- w2 Q0 R- ]
7 [3 ?) N. H$ B, f+ D, s
gen pricen=v5 in 11 I, X* i- s) g. x" N5 N4 l7 u
; x. U5 I& s' C9 n% E1 n$ M
+ V0 n0 E* w: m7 M4 p *priceny &pricen) X Z& |" U7 V% m
9 L P, ?& e; c, X - B# N7 n% l7 Q# e- A+ ~4 p
*-------------------------graph------------------" u( J6 R5 t( K* X5 B
. m, _5 z" _) a5 k1 |& T 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)
5 \% @& n* Y. ` P& w6 j+ Y. t5 T0 g( A* N; w( ~/ I1 g
* ---------可选项目----------------------
: |$ @& H/ R3 F: N0 z5 m*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))' \5 o3 S7 g h% O0 r- X% k
}
: @1 `, F8 T# \+ Tend
% L# {& \/ d" a3 Z |
|