|
maodeng 发表于 2013-1-28 13:13 ![]()
+ h( E% K9 h& c- P8 F \+ {3 I6 t. [. hello 3002368 A( Z. ^0 |5 \- o& h
statement out of context& ^+ Z# B" H9 \" Z; k0 A# V# z
r(119); ( I: @ d& v0 ]' B5 v: {: g
抱歉,最近太忙了 Z# E4 ^0 S, A/ j7 x5 v3 C
) m( ]/ b- U& X; L/ B' `; I& i/ R
300236 我用下面的程序试过,没问题% W/ W/ y2 P! j4 }
) o, K* G( J$ Y你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
5 A9 S/ H, ^( E8 }7 [: H1 q% o# r3 D6 s8 E5 {
capture program drop hello7 _+ [+ F2 @: z( Q8 j* n. L. t- K, [# d
& b* K$ b" [) [) E- iprogram hello
" s6 c; U0 e9 t- f8 M. }: M0 N+ m$ F, U, S& M) ~
quietly {
! r$ X& M% @, I, P t# p# g/ Q( d2 H0 N% p
clear6 f+ K. G; J: {$ f/ E" m$ m' m
9 j( N& [+ \ qcd D:\stock\test\source
: o5 I1 r; S8 M! F" |1 @' P' W+ o, o0 s3 s. x$ u7 h% s
insheet using `1'.txt
' q4 {2 F4 z% P$ ~( R' O5 s7 C' w$ q0 M. {: ]# G
keep if v5>0
: P; V% D6 e% t1 Y0 _' ~
8 i* f6 _7 o8 a/ w" q0 s9 E gen vt=_n! U# s, R6 S! \& B! i' _+ U* {
4 o# Z/ x5 m* T3 X
tsset vt4 U2 C ]% {) W4 ~( J# X% b0 z
( i# P! \; l" [3 v6 Y6 T+ y
gen zf=D1.v5
# Z. R* E0 C& W8 Z. c$ V6 N6 |4 T% F* V: g
gsort -v1
$ c w' [% Y& r1 v+ T( B
N! e( j3 ^$ s gen avol=v7/v5
7 g& f, B# P G8 z. [4 C% F . }% y% A+ {. w- v7 }
keep if avol>00 M0 C( y) G. ?) `3 U, O
' `; a6 j7 l8 e7 g3 f. t3 F- q% J
drop vt" y; V- S0 M/ Y* p. x
7 S" j& Y) I$ ]7 o( I gen vt=_n. R+ W5 F, r. j5 e9 s! C5 O
; B3 J- I; N$ [ tsset vt$ ^! A8 i/ w2 e) N$ ?4 g1 Q* N. k
7 r* ]; T& O9 D6 _2 i, l/ g sum v5 [aw =avol]
& i- _8 v4 z/ T( A( y; ?+ ~% o* P+ h5 f3 R- t
gen amean=r(mean) in 19 B4 _6 s% n$ s, F7 {
" Y( T* r0 C, t/ x
* 总加权平均值 amean. u; \5 A6 }" S( h( J7 d* q3 u M; C
+ L5 |1 U! W( F- u ! B; ] ]7 v( ]6 u
keep in 1/240; T0 i. t1 k4 ^/ H9 R1 ]$ N2 r/ B- R
0 `" q" V. y8 a4 @2 [, ] sum v5 [aw =avol]) R6 o: R$ w3 ^4 c( b& Q' i" ^
7 z# I& H2 l5 f+ g+ m gen mean240=r(mean) in 1$ z2 f% Y% u4 s& ]& y- U
0 L, G' J" ^+ P8 L *240加权平均值 mean240
- i3 G, R- @/ _4 Y4 z& j
, A9 ^& b0 g+ R% g& h, ~+ G# e set obs 500 4 c+ a% X4 x8 [+ R9 `
* B3 D4 d. ?# X8 y3 ]
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
1 O7 \7 u# l4 ^& B8 E3 T' v+ Y & e! c' v" K: N5 K$ Z) @* s
*240 kdensity(dx240 dy240)2 ?4 k7 I9 O0 c' U2 `4 p- ?0 r
* _3 \% z! o% N% ~5 X6 G1 c sum dy2408 f( K2 F7 |$ Q) A. `1 |
. r9 C( L1 C& [. a$ x gen yxis=r(max) in 1
3 X' @8 [! c! C, P) t _4 N : `- d# Q; M% i
gen yxis2=yxis/2" D2 z2 q8 J6 p+ o
- {4 B2 d) ` H2 F" ^" K *yxis' E) X( T3 e( W* A3 ?) U) V
# q' q2 F/ S' x4 R) R1 V gen dy240max=r(max)& l# c3 B3 e6 k6 }, S
) { W' H- J7 \+ ^. ~( v gen dy240minp=r(min)
3 l `& I8 F% S; B2 Z
8 i6 F1 D! u; @/ ]: C gen vtt=_n/ {6 U! f- U5 |/ Z1 ?1 F
8 Q( }+ D1 t& h S3 c
tsset vtt
1 Y, Y$ [ a; T$ C6 ]7 G! t* q, g5 E9 u' j, ~7 q2 u: G6 @
gen ddy240=D1.dy240/D1.dx2402 z+ I: p8 x$ i0 A2 G
& o9 h+ a5 Y) V3 @7 \: I5 s
sum ddy240
/ P% U8 M- A" n& k. c' O2 ] 3 Q" S3 ^1 T5 o5 L/ e% [& K1 c; F
gen ddy240max=r(max)8 ?6 O* a; x5 a# t3 H
- |/ y/ E, M L# N
gen ddy240min=r(min), v/ [4 e8 |9 l, |
. H% e- q/ n$ z3 y( X. ?& x+ a+ V
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)+ O8 b5 ^* {; S# s0 \
" D" _+ J* v2 [& {3 e. G
sum ddy240g
" b+ @, ]8 w, X ? 4 ^7 Z7 d* o1 f+ g7 U6 z
gen yxis3=r(min) in 12 n* e# I' E! Q7 U, ]0 b4 ^
z$ [! P9 Y7 _% P2 [ gen yxis4=0 in 1
4 ~. x/ ~% P) X' y. J6 k; ^" X: Z& g
" l- C1 T( L& B% u5 ^; b, _& i *ddy240g
! N F7 T) t0 O/ C1 b/ h/ l ) p! J& t# X n# r9 A2 b5 r6 _
4 s$ m+ m/ S! P, J0 F6 y
preserve * b8 y0 x1 A6 Q3 x
( Z5 X' |2 _/ @) e0 Y5 H: C+ L+ h
sum v5 [aw =avol]9 R! j1 t1 g5 h- v# {9 p& c! j; j
- z" c- t7 u2 v( T
keep if dx240<r(mean)
! o8 c3 z" A! V6 ?8 G Y8 D
5 O4 W4 }2 Z% i' o sum ddy240& r" O! X% M: h3 w
& y* _+ \4 M4 l& B
if r(min)<0 {
. s# i) z/ C, `6 \3 W$ Y " M0 z1 t Z$ y/ |
keep if ddy240<=0
( I0 m* x' x* P, B S! P- |
0 n/ [8 y, [4 @8 X2 R3 n count
: S0 ?! C& K! v8 V : k! D7 [! T5 Y2 _7 I, d
if r(N)>2 {) \, B! o& R, j8 `9 k2 ?1 f
/ M* {4 N4 G( w% O pkexamine dx240 dy240" S3 x% R4 E) B' \
2 ~* m; y" Y1 F3 e3 N
local tempminp=r(tomc)
6 C3 B. Q e$ i% c N+ i) @! z restore # k% Q4 O2 u/ a8 Q* w1 z( L, h
}+ X" Z5 F/ F2 m4 l8 [8 T- N' j
" ~: i& r- G. U7 H* y0 f8 p0 c else {7 ~1 f& j" ?$ a+ k
0 ~4 n8 a0 B3 r7 {! o2 N di "cannot find minp" r' \. K( R, c, X3 a
) C7 F8 r/ t3 B5 w$ y
restore & l/ `5 a# ] _, H
sum dx240
5 h- G# r- |$ s- V local tempminp=r(mean)% }5 {' ?! r# a; e2 d
* w7 ^% N8 ^- b0 V \- y& }
}" b) S2 l* e/ V# G
}
" h1 Q* ]1 g; z" K else {& T" E+ a+ l0 C! I; o" n* e+ b( N; J+ c* ~
# W- f- ^6 }9 D$ w1 ~
keep if ddy240<=r(min)5 C2 j; l8 c: r0 P% n$ M5 X/ O
8 |; |) |* ?: Y& a! R% R
sum dx240, I0 q; x0 k( a# b/ P; v
7 h# V8 ]2 O2 Z, ~3 W
local tempminp=r(min)
" {( r$ ], ^" S, U2 _; A. D; h restore # e5 l+ e; n ?6 a
}' q: h2 u1 k; ~0 N' \* ]
+ ?; g; k0 D+ U1 s9 ?. U, V! d: V$ S
6 V$ E8 R- N# D {4 J0 d9 H- w+ b( `
gen minp=`tempminp' in 1. a: @9 C% f4 P2 u" i
*240 minp; E6 a! _% o9 s# P! ~
* K( L6 T5 P4 N/ \+ y6 Z3 j
?+ q/ u6 W4 T9 C0 S . w) ?9 Z7 @/ G, t% U$ |
preserve ! Z, D4 n S* @
3 R w9 n- ^; K/ g: X; X/ C1 l3 U
sum v5 [aw =avol]
6 i" p% b' }3 L- x/ E 5 |# q) Z* [. L
keep if dx240>r(mean)5 Q. x5 M' n3 ^ T
- y: N: I1 O6 w! [" j$ \' X. x
sum ddy2407 q! C/ i3 c5 \4 f
! Q& ]+ `+ _0 s/ s: I9 t: }" T7 A
if r(max)>0 {
7 \! F1 Q5 o: D9 ?" z / D# c# K& |5 V" [% Z' x
keep if ddy240>=0
5 c* Y. L# Q: Z* J* i 9 h" ]- _; K. w8 e' H3 q& ^8 u# v
count2 f/ S, b& f e% N8 H% g9 H* Q& T, {
: W4 g9 c4 u. X' k" F& f
if r(N)>2 {
4 h" o7 `3 c4 z, ]2 O9 q ' q; n6 e% O) [! ~
pkexamine dx240 dy240, I5 V8 ^ b$ N- X J7 ?
5 X+ B9 `* j( O; h; X8 x' F' [
local tempmaxp=r(tomc)
& O8 }/ Y0 T& W$ y restore
: x1 x/ n+ M6 x; i" d. \ }8 y2 e7 x, F1 B) J9 [" o5 `
9 ]4 i7 J8 R0 s' x
- v {8 a6 R2 Y- b2 j# c- N | else {
+ g$ l& u) h4 B. J- \ restore
; k# K$ V% W- Z0 z6 F0 R di "cannot find maxp"$ N* e$ S* [% M
' _$ ~0 z- h! W- f8 u' o ( g1 d4 l X; C! L8 J
sum dx2403 s2 f. v5 v2 ^
local tempmaxp=r(mean)3 k2 R/ M) U* R4 b. s# c3 Q
/ o/ G1 t5 B0 \5 s: {, i" }- O9 v
}' l: {2 Z5 {" S* {% [
" }( \4 [* d( S- s( V+ J* J
}4 @& a+ N% j V3 y
9 f2 g5 Q5 R$ j: Q6 k9 x else {
2 j9 j" U9 X1 r. v7 @% k+ S / e- H/ p1 D- k3 s9 ?& v
keep if ddy240>=r(max)) o0 ~7 i6 }2 i8 j/ c
! }1 A r' [# t! W7 o& |
sum dx240
, z) }, L% D+ y/ l: O ' I; Q i& z4 g) o2 c( D- c0 c) M
local tempmaxp=r(max)
9 i" H& N* o. d- r restore - W' K# r, _/ v! ?* t+ L
}
}7 N0 p- j* M7 r1 B r' H+ `& }0 Q: T K5 Y; V
* _: n/ F0 |: @. h
! [" u, b, K6 I+ S% R" ?1 K7 q1 d0 ^, z
) B& X; I+ ~1 i6 C2 h u
gen maxp=`tempmaxp' in 14 o$ E* D6 e7 _# _- _) }* ~1 M
. F% f, v- P& y& q4 ~ *240maxp
& H$ |! E4 f! d- A5 b) \- P
# }) q* X V X0 \0 X
! k: X3 M1 H0 Q3 ^/ r9 {- w% {: p, u" ] *-------------ddy240pminp左侧高峰值-----& J5 s* z/ O) {1 c
9 L/ s" B1 @$ Z% j; v5 z: ?+ ^ preserve ; ^9 m. \% Q% V: N C
0 n. k/ r. f7 A/ n( T keep if dx240<`tempminp'9 i+ V0 X' I+ T; ]. m! O4 F- e
. L: b- {% d* e
keep if ddy240>0: e$ Y1 B0 U) {
6 M3 m) p; `7 R count& Q7 X) j' e, `- @* |7 k
: A' a, Z/ F* F; d) P. K t if r(N)>2 {" H7 }( i- {) r7 w- s
p" v4 {6 h. [ b3 }
pkexamine dx240 ddy240
* H7 e9 L! ^+ `- N
+ k. y7 ~: ?+ S9 u3 x5 \ local tempminphddy240=r(tomc)
5 Q4 i( ~/ N4 i- V restore
) o# Q8 C+ Q8 P }* ~' r: c- V7 z4 p
2 w2 c/ Q+ t0 N$ ^ else {( J0 W' ?6 Q+ y" W2 }5 y
restore
8 p/ u6 P3 x, u9 e) W2 A# B# ?5 c# n6 P di "cannot find pminphddy240"
4 w9 s$ E) `! V. j# b: c" v
- I6 |- s! r8 B6 C7 }3 h% `9 _
. u0 s8 e' V) m2 w6 w sum dx240
) H( Z' S/ S: z! Z' g0 o$ ^ local tempminphddy240=r(mean)
+ c. U& A3 v8 ]& T/ h1 U3 \/ k
- J8 u* I6 [4 H) d5 |3 E- l 7 `# S, U! o2 n# x
}1 K# y, T7 X" e
1 a8 N' o9 u- A. \7 g/ m
8 r8 H3 a; j! s
f; J/ C: e" d
# {3 e2 f1 Z0 n
% b& U6 K2 J, } n
- [$ Z# p" S6 n* V/ u gen pminphddy240=`tempminphddy240' in 1; `2 q @3 }) z; U3 h2 |
+ d4 L* g- L; M! n; D5 J% g6 _6 _6 J& t+ S
% u: b7 R0 t+ R9 Y) M& h *-------------ddy240pminp右侧低峰值 -----------------
. v1 s. t1 l. c: b preserve $ X0 z4 A( D7 S% `7 S
' _& e; L [; j: }- s: c; G keep if dx240>`tempminp'
8 ~0 @. {" m% X" q
+ F- }2 r; @' j3 h keep if dx240<`tempmaxp'* q; r+ T/ ^. z: L; j
3 }. O" c& S5 n% ]- G keep if ddy240<0% {& x7 d2 w! Z9 ^9 d( i
9 S C+ w, ^5 ]4 F! [
gen temddy240=-ddy240
+ u, n& R& O6 K7 R2 j , `! U H" d2 m& G/ p- C
count
4 W1 X3 z& y: H$ E6 K' T' n/ K
& v1 f* K8 r" {; y if r(N)>2 {/ B9 L5 J/ q) U8 D7 Y
( F5 L4 E1 c" K8 m/ z W4 j! i9 \ A, ^ pkexamine dx240 temddy240
2 r7 U$ Y1 W- S8 V: V $ t! ^# Z& l4 |: U
local tempminplddy240=r(tomc)
/ m% R( }( T6 p restore
" m3 C3 C) q+ E0 X1 d }
# l+ [( e ?" B: n& c. \0 v $ c0 v& C/ p& m4 N! F' W6 l: r* U
else {
/ J3 {) U4 \1 J O5 V% v
- F& h8 O, u, s# k9 Z" a/ {0 I: t di "cannot find pminplddy240"
# c( C+ s$ E( K- | restore
' B4 f, c$ i8 ~( F! z5 M, \
4 _% X0 z( G' |+ R sum dx240* V3 X* K3 P% B
local tempminplddy240=r(mean)
7 L4 R( v3 O2 ^% q; D/ ~) e# x& V% `
g, u; B g; B/ {
- q& Z5 o& c+ R. w9 \; ` }5 j3 h) N2 G v: r& ^
& ?* L. F+ Z1 w7 P8 M I( A : T5 T5 B; v: Y1 i& U
) ?7 |8 T5 ~& A" s: P+ r
5 i. }, f8 s! r5 s( v8 d$ X7 m) r
% }& }! O, D' \% s- f gen pminplddy240=`tempminplddy240' in 1; L3 c' e( m1 {; Q/ H$ v4 u' s, Y. S
. i4 z3 Q" ?2 ? *-------------ddy240pmaxp左侧高峰值 -------------------8 s# S* ~) J/ C2 {
4 j2 F* N8 O. w7 h! s4 ^8 v
preserve
; a$ q0 `0 U0 ? ' }& X7 a; r, C! Z& Z
keep if dx240>`tempminp'
; i; G4 W1 I3 I! P" |
* Z3 z9 T/ n; I keep if dx240<`tempmaxp'* ?. H! ?% B* z1 N
! V% G& p h& d: |4 t& D; d keep if ddy240>0
( F" X% u Z5 x/ q7 f count
U/ V' m0 w# Y6 @5 U7 F% L ) U) i8 f0 A+ C
if r(N)>2 {
2 j6 A- b5 z) q" E0 R2 d ; n$ H0 I5 k' ~% E* T w
pkexamine dx240 ddy240
m# C# _+ ~ e 0 |, v, E i& ]' z' }' }
local tempmaxphddy240=r(tomc) $ Z H" `( z" [' u+ w2 Y0 J3 E
9 X% d) a* ~5 \0 n) |" X restore5 ~" _. w9 w( U+ e
}% D- v9 l8 u; K6 _8 \
/ ?! P/ T* b% \' B3 _5 e- z" x else {
+ f3 X% p8 a9 z
: v4 I+ |6 q6 G5 Z. [. t di "cannot find pmaxphddy240"
* J' `! f7 U- N1 `! m# W& k, ] restore
7 S6 |6 f8 d( }. w; p7 u* \1 E ( M5 a [( C$ d" ^ C
sum dx240
& A: n. u% u8 u1 { local tempmaxphddy240=r(mean)
) |( v8 F+ H8 o 0 {. n+ |" @& C8 J s
, {8 d1 G3 D8 G1 A- |
}
: @$ |/ f1 O7 g7 u* G- u1 L
q$ \% a6 }4 J9 g8 `) o$ q
' l9 o1 I. I. K& ^5 E$ B( P " Y$ l' u, C( @
" R# E6 b8 W) a7 D
G! X& k7 _ b3 b
( p6 L8 d+ ]/ [! N" x1 @& ^& O1 j gen pmaxphddy240=`tempmaxphddy240' in 1
9 S, Q* ?# w" q , ?9 p, q; G1 b1 ?: }. \9 H
, a- x d' m: p" j9 e& d *-------------ddy240pmaxp右侧低峰值 -------------------
2 v7 I+ k/ q8 V % b5 T X# X& [: O' F; t/ Y
preserve
$ \$ |! C1 \9 a/ x
1 D% H% T8 o7 [( |: S keep if dx240>`tempmaxp'4 T( W* h6 p7 S' e* a& n# Z- c8 l
7 s0 M/ S d# [2 j% H
gen temddy240=-ddy2406 l$ u5 Q d' H
1 s9 b* B5 C4 }! _5 D& l
keep if temddy240>0! W% h6 ?1 \8 i* S7 x9 W
! y* P- `3 u" L" `0 L, N count8 ~9 Y& g6 g/ R* q; }& x
' e- e( `% ?, C g6 `- ^4 ]5 j4 O if r(N)>2 {
+ z, E( R2 B' @# s " H' K7 T) [$ q4 r7 E- n
pkexamine dx240 temddy240+ D' D) e; X# z) g5 ]
O6 J) A$ g3 v# _
local tempmaxplddy240=r(tomc)
* V) \, I- L2 s6 A- K restore7 g% P( ]- H& T& H
}. O8 [9 {6 }0 d% S
$ @. \) {- ?' X0 e9 j else {: A2 x+ q/ D d- w; t7 O
restore
, Z! m! {' G7 P) n6 X di "cannot find pmaxlhddy240"/ b8 z! ?4 j- `: c( }9 j! F
1 t! p% T( ~8 `% }, J
+ E' N; |% V3 d7 ~ sum dx240
+ l4 s1 a# v" I) ~5 h( C0 ^ local tempmaxplddy240=r(mean) in 1
2 ?+ u4 t* I& t0 g( x6 _2 t$ n 4 t% c9 Z6 ?8 y2 }) ~
! O" s' R4 a# i0 I7 G1 l( N+ y$ K }
1 ]; @) A' N% i: v" }2 i
! x/ L/ m5 v& }1 V+ Z2 S$ c( K @
9 f- Y4 R) {4 H: Q 6 o1 m+ s# g" S1 z
3 Y* ?' u8 m/ i
6 {& [2 l! ]* @4 ~8 u' Q
2 }4 Y% m, D) J% P8 c; b% m gen pmaxplddy240=`tempmaxphddy240' in 1
; S3 d8 N9 S* g+ G
0 E5 \8 a: j) @2 A; t *-------------------------------------
6 F( e& n: ^% v- D, ?: d
. a2 C: D' I- q gen price5d=v5 in 1/20
: P0 s4 d. V5 A$ o' k9 u, V$ G
" r$ y& p3 }- d, A gen price5yy=_n in 1/204 b% a( ?4 c+ V* m( G5 ~1 [7 s ~) B
6 ~; j# ^0 L& T; h/ `3 U6 n gen price5y=price5yy*(dy240max-dy240min)/20, c( y$ w+ i# z
4 k ^0 Y# z% z" ]2 m$ Q( ^ *price5y &price5d
1 q, j# y- b4 }4 ^! T 8 Y) t+ m0 l/ z' c. a( ^8 o0 t$ G
gen priceny=price5y in 1
* u' D% H$ g+ C. _+ m ' U" P9 G, U. ^
gen pricen=v5 in 1$ ^; \+ J( T" M; z4 ]4 y f. R
, g& U; Y- u0 T. ?2 r) J' x9 f
9 F- q/ a/ p- L2 k @( |; O/ I8 @
*priceny &pricen" `" b. ~6 V! }2 S, q" ^
. a* J" x6 w$ j. ?* ?% K
0 L7 {( h: o1 d# G; ~, P5 y *-------------------------graph------------------& X1 v6 G0 d% n1 X. W+ x
3 g% [9 v# ~# h3 s 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)7 N z4 w# |& L7 f8 d) Z
" d- {: v0 A- b0 G
* ---------可选项目----------------------1 l" g" ~% u6 U) K. |
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
+ T! D& m# p# e& M* o}: W" q& b, z. }+ [# u2 H- B
end0 J9 j, m7 `2 M7 ]% D. s5 \
|
|