|
|
maodeng 发表于 2013-1-28 13:13 ![]()
' y9 n+ E* g2 D# z1 q. C. hello 300236+ |- e% g7 o9 ^: T2 P* x: K
statement out of context
; G0 f3 H+ a% s5 G8 jr(119);
, @* ], J, @4 u! [8 Y抱歉,最近太忙了! w5 r" d. m/ n, {# G$ \- x
- b. T; u% p4 D
300236 我用下面的程序试过,没问题
* r- U% B T7 c' ]+ a+ S' r; A; ~9 M% }- N8 a+ ]) |" |
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
1 s& j$ h- F! z, N7 g/ Y. n8 y8 K
: C6 d# t" ~, ]& e, rcapture program drop hello& Y/ j! y7 M; m8 P1 v* m
# _3 o+ E% `& k% C: l0 @$ }$ X
program hello% f* \* @" r' I* F& [- v
5 }( x8 @2 E) f' \! k9 H
quietly {1 Q1 N- B* P! u
7 m" `. u9 y( N! X2 H& a& P
clear) d" O u) C+ [) Q/ |5 F9 O
y: x5 ^! a) a) ^cd D:\stock\test\source) b' w( U+ h$ u3 j- q4 J) {
# m2 P* q' N% P1 M6 _insheet using `1'.txt
: ^. c3 x- m0 G" j2 ]9 F7 F0 o/ H
2 A& q' A- P2 C9 c+ f' V4 h8 k keep if v5>03 J T# G8 P Q* x
( ^9 X$ b& k3 l* X$ S; f, ?
gen vt=_n; e# D f* e1 g- W
+ c; S2 @% Y: W
tsset vt
; U/ w: i8 P a- W0 H! x$ X7 @$ b
& l4 l4 l2 g+ I7 F gen zf=D1.v5
5 d% O, [5 ?9 ` d; K, a" H, I A9 D/ x/ u
gsort -v1
]( z4 C) H P4 C: S* r8 a9 C0 G0 r: N3 `2 p( W
gen avol=v7/v5# l1 p' }0 \3 |2 n
; A% `; ]! Z4 x4 @! z keep if avol>00 [0 w4 F1 ^1 ^, f4 K
& |# y, {- ]' D
drop vt
5 o, w9 W' ?: T5 Y$ }) Y* R, _ 4 i/ }2 B0 w- q% E! n4 c( D
gen vt=_n% _' L5 n0 R v3 e9 A
) b+ `1 R3 \( |/ C* Q. x% u( D tsset vt' `. `, }- k! m4 H
5 }/ r, S. Q* F/ b5 w5 G. m3 B sum v5 [aw =avol]
7 l3 n5 \+ m( ?8 `: O4 z' W9 o: F+ V) Y. E
gen amean=r(mean) in 1
5 e$ w5 \8 F, v" `; K
% e2 q& r5 N9 P# D+ |' B1 e * 总加权平均值 amean, u' c! ~2 Y4 x6 ~8 t! N
" h% H) R& u' f9 U2 k- B) d 8 I) B: a9 x0 G$ I7 J0 I$ Z
keep in 1/240
0 M* E A" ~( z o/ X
+ P; k- q2 o3 z. ]6 U sum v5 [aw =avol]2 o5 V) U6 ^! X% e# P) w( d% q
/ ], S( u% J ~3 r: G& U8 y# q3 @7 v
gen mean240=r(mean) in 1
' b3 F% ~3 {8 l0 H c # {1 g. k# J8 `( o
*240加权平均值 mean240$ d) O/ V1 C/ b7 j
$ L2 d7 @4 L. l2 E" S M
set obs 500 + G5 Q1 l& L5 d g( S* A* y
# y( D9 ~+ {+ p( }3 x8 G, j+ D5 z
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
9 X8 |0 e( X# ?# g4 n% I+ \8 o 3 @( G- U4 ~6 p
*240 kdensity(dx240 dy240)" P: [. { @; D
U, U6 e3 ~5 }0 P0 [ sum dy240! i/ N: F/ ~* K. L7 E& _5 X
# f; H; p9 y# o+ P- V* j gen yxis=r(max) in 1* ~+ Z( t( }! t6 A. P/ I
" `/ A1 V8 C4 L, b
gen yxis2=yxis/2
/ b2 w4 |5 {8 f' M# v+ w& I/ m( a
3 y4 t0 P, g# x+ @1 f: ~, ] *yxis" q* B. u+ E, n5 x$ L9 @
, y5 T. m3 E' A# f f8 t! R gen dy240max=r(max)
# Z! J7 W. @2 s* f
! Q4 E7 u1 z2 K; o8 E gen dy240minp=r(min)
5 J6 j6 P. b0 {+ S " b' e) Z+ ]5 ~8 s$ v; j% W
gen vtt=_n6 y( u, d9 D% w6 I' F+ k
0 b! q2 L/ O6 u( V9 d. z tsset vtt
) B a6 ~% m6 a( |1 [! ?' o+ k W' b3 ~
gen ddy240=D1.dy240/D1.dx240
1 j5 u6 i: q: \6 W9 u- J! K0 g
8 }- |. M: a: a: x& C+ j1 j$ @ sum ddy240, {3 |: ]; n" q
+ J1 e6 v( f, [
gen ddy240max=r(max)
( G6 r$ |8 q6 g6 Z
; Z$ ], O2 V1 ], Z/ Q: H gen ddy240min=r(min)$ e3 H+ f1 t: B3 l. s j
& J3 w. w, c. j4 ?- q/ p
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
5 I& Q, q/ {1 E1 [% W& ? + ~9 S Y# i) F3 l
sum ddy240g' y+ e9 o- ~; j( U( y
# ]7 d4 a- [# s% T gen yxis3=r(min) in 1 n6 {. c5 b: c. |6 A" ^# i
: ~0 X+ M' I& B. E3 { gen yxis4=0 in 1
( k- S* C& ~+ A" [ . Y3 t( \ X% r# p/ X" o$ m/ L1 D
*ddy240g k5 g$ [) A( N1 _, e$ `0 ^6 s1 g. L
5 m+ L% `6 {! w' `4 H$ I) r( b
* C5 {% l7 C, u4 X preserve ) L' S- D$ L, Y" F7 z
& A; H8 x% b+ _7 |; z
sum v5 [aw =avol]! {! I& j% z/ g
, s0 F" M; I* z
keep if dx240<r(mean)$ {9 y. I% a( w7 |6 ^* [
1 h+ F. u. [2 u1 i7 d1 G
sum ddy240
: _' T5 _; Z, s& N 5 M% i0 \9 z! b4 Y0 `
if r(min)<0 {
) Z! Y. W+ ?# m6 h
8 v+ X! A* V1 O3 u3 v) Q- r keep if ddy240<=0
/ I0 p1 I+ c" D& Z6 O% A $ q% D9 i3 K7 d
count
. a, e8 K g" t* ~
+ ]" |! [1 W& V9 p; E* _' O if r(N)>2 {4 U! A$ |' J9 `) c5 k: { ~0 l4 h
. e. N" U9 [3 y7 Z6 w: ? pkexamine dx240 dy240& Z, l. d* ~4 g t( U2 j
9 E3 Z% L& Y/ @% f2 s
local tempminp=r(tomc)
8 C# j) N8 O" i+ h8 U. i) ~ restore
% q! e( t# q# o% u3 _. m }
5 {' K) x: R) P; @# c
4 H$ K% q1 D- z0 |5 T) o else {
/ A( ^* g) b+ \# s0 z! y) M6 i) \
z; u, m2 ^8 X f+ c7 N$ R; v di "cannot find minp"0 t% p' Z" }$ a. H0 _
& Q) x0 r* L4 T }& N
restore
N8 b$ a5 k" h* r3 Q5 V7 k, { sum dx240( q5 C( s6 f. o: C
local tempminp=r(mean)
! T: U% i8 D' P7 h9 W; U* q 2 R4 L6 {' _0 \) a" L: B
}- S* O0 g5 G+ M+ K& J* [0 J
}
& Z4 ]/ r2 ?( ^) }# ^' A- S# j& l7 I; c) Y' \ else {
, t3 q0 p/ P8 R
) C; Y+ N4 E7 ]. ]$ J- n2 q keep if ddy240<=r(min)$ G9 j& n# o9 E* H
/ \4 ~) o, a) a2 H sum dx240% Y8 x- G: _: e* o5 G
0 F' ~/ c# W* O1 n2 u local tempminp=r(min)0 Q2 ~- Z! {+ Y4 {+ O0 {2 L
restore / f& |9 i5 C! F
}4 _3 f* `& Z; O1 C
; N# I! x: W) F) f$ O( T
4 ? w: G$ W: e0 J$ h4 `& k+ X! \
6 ?) M [2 ]- B9 Z7 y# f5 G gen minp=`tempminp' in 1
' U9 a4 n6 U7 F1 M. G2 {; m4 M( J *240 minp
y, `; J- x- F! `- V; E% J! S$ D3 x
- n4 ~; G o- z7 d % _# T/ U8 b- U* Q
preserve
1 `9 ]1 J$ o( A- f- _# a/ Y
! c) A# Z6 Z! t& e% Z& T6 q sum v5 [aw =avol]
s% A7 R% s$ s5 r0 L1 K8 C+ a: J1 F
% `- O8 E4 k. E: f+ z keep if dx240>r(mean)
+ ?8 R I7 O; W( _2 ?/ q6 k* x / B- D6 V- i5 B' ~, q
sum ddy240 e6 t s% a1 z+ J. o
1 E+ w1 s4 _4 j. R" A
if r(max)>0 {/ ^3 ~6 Q/ h' s. ?' g9 e P
3 ^1 C) K2 S7 N: ]) u keep if ddy240>=0( _- A# V1 C1 @* B4 ^0 C$ V3 k2 `
8 l$ {/ O: v# [ [* M4 C count- y" q1 e h) n0 d& w8 Y
( z9 W# R3 r4 o
if r(N)>2 {
& m7 ?0 D/ t0 ^, v* `2 p r: f5 v+ D
+ v M2 Y% [& c' i0 ] T8 v pkexamine dx240 dy240( M6 s7 v5 N* l9 R5 U/ o0 ]
( @$ S0 T! \! x( Z( J6 T+ d
local tempmaxp=r(tomc)
# ?+ u. R7 O3 Q, m* C restore
5 ~* B" X' z4 \- m }
2 y C% r/ n9 n; L8 K8 h
: V0 j& o0 n9 i7 e9 X
2 C9 {2 _; D/ U# Z ? |8 s: |% W else {
2 D, C! v7 ]- c restore / q) }- J! ~$ k i% K$ l
di "cannot find maxp": _0 r. ~+ l1 i$ P9 f
$ x8 Q5 n* M3 _* c
* g; r) \3 x0 H1 g+ P0 j! B sum dx240
- @- u1 P5 @ v8 G3 c! j& r local tempmaxp=r(mean)- C+ w5 }0 z4 n# c$ n% w
/ E( r+ u- _) p& K! S# a
}: S0 s6 E- d) w9 T) I( K
* P" Q& K- {* k: e* x1 y+ d }
3 K% @! B+ h( e# |1 h% I1 b 9 K3 C3 E! t" F
else {
+ U" T- C7 @/ `/ { % V: m; j( V7 z8 H
keep if ddy240>=r(max)
9 z7 T9 E7 G. q0 N3 D+ A ) ~+ W) B* f j' {% p
sum dx240, K* T8 u5 _! P- V+ X2 |+ D
; m3 @0 y7 m- h( s+ v2 v) x
local tempmaxp=r(max)
' K8 U0 m3 o8 |+ l7 V% h restore
( m3 V$ p+ F0 T; W) F: v }
5 S: H$ }3 g, ^& @# i' F m( f( ?
# m" |9 t; P: j- c; B' B/ c* f5 D
3 k5 m- b& Q" x- s7 N; s4 @2 O- g! R ; c) E& M% }6 S7 k5 [1 s
# Q. A. z4 a: U1 H: j gen maxp=`tempmaxp' in 1$ n+ H) s' x) q8 \9 I
3 y2 o0 V3 T6 i* l. u
*240maxp1 S1 @- o3 S: E( R' Z) u+ G: o
/ b. `' Z+ s( \; t6 t( o1 Y* V
+ W; J+ Z' N8 y" y n5 L
*-------------ddy240pminp左侧高峰值-----4 ^, V) G9 Y# g; L/ v( k6 ^: c9 ?
1 z6 v" z; }. B# I# N4 c
preserve
. p/ L" T8 t! a: ~8 V# J
% G/ W, p3 i% L% T% B3 M keep if dx240<`tempminp'# e; ~- I8 E& \4 W
4 {2 {' }0 G1 w4 Z3 z8 t: ` keep if ddy240>07 {" K6 m2 S2 U+ k9 l5 S
3 \3 e$ x8 k4 s* u count& x' A Q8 U( L2 i. t0 X
7 S3 K2 `% X) G$ L4 T2 r
if r(N)>2 {# L" U4 p1 p8 v: X
8 q- @, v% B' `+ s' j pkexamine dx240 ddy240* \' ]) A: g: s# I0 M4 a! E
6 V. k b2 b5 q& X0 ?; {
local tempminphddy240=r(tomc)
1 a0 {: ] O( v( j4 o( g& @& Z! b restore0 V: G8 S; n/ J" N5 N2 U6 n
}
* U2 T' `9 k6 A7 z ) C- H6 D4 h1 G* {# R S+ ?8 \; T* m
else {
* R0 E* y7 D& d( b restore 9 @( B5 c0 ]# ~2 L1 ?
di "cannot find pminphddy240"
& O+ L# i* J$ I8 l- H- D . \" C. [4 I$ [
5 X1 }0 w" A' \5 v/ X: A( z; w sum dx240$ J8 }8 M$ K1 C9 O8 O0 {% t
local tempminphddy240=r(mean) & X0 V# v. x# \/ M1 `" K$ z5 ^% d
3 p) Q8 Y1 e- ?" S& Y L4 T8 t
& q; @) d9 l; F/ v+ Q+ ]; o }
& F3 @6 R! p' t L6 l' r* M 1 A8 u8 |( T; a6 B
: L/ {' H6 I$ n+ O+ c4 R
1 \ n, G2 [2 i; K5 s1 L & x1 b0 _5 d4 A d
& U4 h+ w; C' R% Z3 {
/ N, y8 s$ W. C- C2 _1 z gen pminphddy240=`tempminphddy240' in 1
/ Z$ C% p/ k! n3 A; H
4 K( R7 W1 z" D1 B, i0 w/ N, h
4 Q7 ]; N8 |0 \6 l *-------------ddy240pminp右侧低峰值 -----------------
& r5 }0 _! Y; m( i( O preserve ' I# Y @4 K { \+ {
& D8 _( v( \1 x/ ?$ j, U
keep if dx240>`tempminp'1 h. \( W' Q& ~" H
; x; f7 ]1 V( J; @$ h4 r
keep if dx240<`tempmaxp'8 ]" |/ I- }1 U) y
. }, {3 A+ ~: o/ x! P keep if ddy240<05 v7 v0 d1 C' p: y3 z9 U3 c
9 r) U' l U& P2 Q
gen temddy240=-ddy2403 u' e; Q8 y- ?$ L) [: }
* B" X, N7 ~4 a- }
count/ i, p% F( J4 Q, M
E' E a9 `9 Y; J$ n! r7 a) c
if r(N)>2 {; J2 ^) `, I( w; v
7 V; R9 g# t7 ^' t, `& d1 l* P0 n pkexamine dx240 temddy240
* ]7 a! |& S1 |( x' j1 \+ B6 g2 C
' i! g' [; d* Q3 Z7 D local tempminplddy240=r(tomc)
. u5 W* v0 I2 h5 ^: |6 o: [0 D9 s restore6 q9 a! r. O1 X7 u
}
3 S$ ?: S- H* O+ J; X ) L% u8 K. d! d+ A0 a
else {* Z: r3 D0 ~! g/ I
- C/ d. e* v9 D: a3 f5 f" G; ? di "cannot find pminplddy240"5 ~( d" N1 ]1 f7 ^* f& W& y
restore
! g; s2 @2 Y9 ^$ ]% Y , a5 R: A' ^4 @( x: W. b
sum dx240( o- @6 U( ^% x1 [% ?, ~
local tempminplddy240=r(mean) A, j5 y9 J! y# h) g
& _3 v& i0 A0 O n- F
, U1 | D, X8 g- `
}
" S6 n0 [: z6 q5 V0 z$ R) m7 N4 `1 y
, j1 n( i& [/ k- k3 p7 I# \ 2 c; _( D7 p+ P" e7 C' \
, ~* L& z3 M4 b- G$ m' ^6 o8 s
- \/ A9 [, l3 x! X* O
- b4 R+ @7 G2 F# N$ Y
gen pminplddy240=`tempminplddy240' in 1' a. Z/ v! I2 t1 d( \# s2 |
# \5 i* G f! N9 ^0 d9 v7 m0 L *-------------ddy240pmaxp左侧高峰值 -------------------
. r' H6 n1 P2 M* U# Q4 n* N
; q7 n+ d2 K M$ p! N/ w preserve . A* g5 Z8 q7 p- H, v
) U2 ?5 u p d2 N, M, s9 | keep if dx240>`tempminp'
, i1 l; k6 i0 b! A+ `* P 7 @. X+ \$ j- ?5 O( O3 X. z
keep if dx240<`tempmaxp'
& M( z2 o, }: E) ]6 Y0 C2 P1 z
2 i, L4 y' w' K* E5 A4 {! q keep if ddy240>0, {8 A ^! E! g, M5 u9 M; x2 s
count
# }* r R/ @$ t/ R; Z5 G4 c9 d: G
1 K+ I, Y* t! {3 C L if r(N)>2 {
: d$ u+ w2 T( f5 B7 H; \! a8 M
6 `0 o) p& f0 Z# p+ ]7 G1 O" y" R1 Q pkexamine dx240 ddy240
4 a/ [1 w$ M& s( x) t( v8 m
* r; m3 l: h: V8 ?9 O; I1 N2 B local tempmaxphddy240=r(tomc) 1 @3 i# j7 M3 W) c/ O3 M' J
& z r5 x4 q, a+ v6 u6 \1 H. f C restore
T6 l5 L$ n8 O3 D/ W0 X$ K }
0 D( d' o' u1 J8 p2 } m6 t3 p( `0 G. h
else {
+ Q% D5 g6 @0 t* G! @% r9 c" ^5 [- ^8 N
5 J3 k7 ~/ K# k di "cannot find pmaxphddy240"
- u3 b9 _) M1 X; y/ l& r restore
* F) }- A+ ?& k% Q + P# _6 n- m/ r: g; E+ J' @1 ?
sum dx2404 d4 b' q) X' F* H; @4 t. l
local tempmaxphddy240=r(mean) + y) R$ u" p& k
6 f& w4 R8 k0 U
3 F# C i7 J, V. u. P/ a" R
}
3 L7 R: q5 ?9 t2 ~
L! v) x- ^) F
+ j9 v& r, S |0 X6 @ 7 ~0 A$ |& N: h& X1 \* y& }
+ E0 m; V+ `( A! f' ^. L* y
1 Y. |2 B9 b9 ^# C" m
7 T O8 X7 K/ \6 l& {; g R+ i$ a gen pmaxphddy240=`tempmaxphddy240' in 1
8 y" B" M; k! Y, u& _, S+ k* v
4 _9 |$ T7 f6 O2 k, V # b, C+ p8 n: P4 V. x
*-------------ddy240pmaxp右侧低峰值 -------------------5 u, R! A% K5 _2 _: O& v( u Z
, x" D1 L; i2 Y' I9 K
preserve 0 ^* S' K# O4 ?2 k; x: w; T
b1 |7 O, ^* b x$ @/ |
keep if dx240>`tempmaxp' H" P& I8 s; Y ]1 o6 y8 o
! r! c) M' H: O( H- T: |2 k2 j gen temddy240=-ddy240
( z7 }' y$ }, |) ]. h' i+ K
+ a, ~+ @- C. Q$ Y keep if temddy240>0+ y/ y$ g/ c) H5 @6 M
5 ^' A% T) l. D- P+ D3 \
count
" s4 V S5 H0 C- { + y) c& }* B) K3 j& q
if r(N)>2 {* Z; \& e' R+ ~! p9 h
( R, n1 l2 w( e0 V0 F) O; ]% g pkexamine dx240 temddy240
( L6 l% J: P9 j/ D/ k 6 ^0 I5 m1 V! q) _& J3 _5 \
local tempmaxplddy240=r(tomc) ! r. p3 ~- ^* ]
restore0 D$ j9 | J B3 X0 v
}% ^6 g3 e9 b8 c" K9 Z7 o* V! s7 ~
# y. @5 I5 {/ M6 W- b, u* W
else {
: ^; E/ b' g" t" D' B; w+ [7 u2 f restore8 g. V0 N1 y6 T* A% t9 l; G
di "cannot find pmaxlhddy240"
4 G" S1 m9 a; P+ N ! Y: g! |4 @7 {
9 U G1 e+ F4 v5 i N8 d) r
sum dx240
+ r8 b, c. O; ]4 _ u& x local tempmaxplddy240=r(mean) in 1 Q6 ~% |) O* I6 x) n
# r& l$ \0 [0 a' O. I3 X " p* _2 J6 X5 B( Z
}2 ~5 E0 P& H" B% F
6 O8 N% W. p/ ?9 T
# l0 e3 M% E5 c
8 }2 i" a+ d! M" q) T & \2 Q. q/ [5 n1 L7 q' ?; i' L
3 B: C& h" v9 r8 c6 t+ o/ [# r
( Q _& o. g7 l
gen pmaxplddy240=`tempmaxphddy240' in 1) n7 ]+ g k0 p& o
( d, o# z% y0 F6 v
*-------------------------------------8 p4 K' |, ^6 }* e( ?
% i3 B" y H3 C& j! k gen price5d=v5 in 1/20
& a* Q# ^* G# Q3 g9 l' N 7 t1 }: _* J; a, x
gen price5yy=_n in 1/20
3 v. G( q4 t D& d: L5 i : U" p- d+ t9 M" W3 F, q7 j+ {
gen price5y=price5yy*(dy240max-dy240min)/20
" ?+ C( b7 h+ ]7 S" V. Q# E5 N
7 V/ V4 v! \ V# X) k+ V& t! J *price5y &price5d* A8 Y4 d* H3 V
" E/ u" Q! a+ v1 x* u8 }
gen priceny=price5y in 1 Y. ^' d3 Z9 S! T) B
8 i# z" v& }3 U" Y! x. j# J. ^ gen pricen=v5 in 1
[& r& p6 @) l) e0 Y$ s, {: c0 s5 H4 `9 K& k& o
! D& x( h5 { H2 F+ r *priceny &pricen
1 _7 X: `8 ^; Q# u5 } # V0 F6 x, T8 ?+ u
4 @- v# g) U, L# O8 ~ V# @9 H *-------------------------graph------------------
7 j" [" l# M0 q1 D1 T' w ! h# s% l0 |9 S- U7 O5 R) ]
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)
' d. m+ B: y4 F) T. I3 I
6 A( @3 k& C7 a/ f* `- J T* ---------可选项目----------------------
$ g5 o3 }$ t4 ~0 V/ w2 o+ d. s2 s*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))- T+ k& t" Y: q/ m2 M) t9 z
}- t+ q u3 b d) F; D# k1 Y
end
3 ?/ {% A& K' I x# F, X$ S |
|