|
|
maodeng 发表于 2013-1-28 13:13 ![]()
* I) P& { r/ `) B/ y' Z. hello 300236+ e! C# |# }) {/ G' T
statement out of context* {$ i. _* d) T, {9 X" i1 |6 @5 x- R w
r(119); 8 k9 E, G0 f Z' U L
抱歉,最近太忙了% i+ J" M- o1 X! C
2 U% u0 h" ?4 U' Z5 k
300236 我用下面的程序试过,没问题! @+ P9 V- M* \2 o, ]0 r# z
! G5 S0 ~( q6 \9 X/ W3 X你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试8 D* j+ W M8 A5 N, q4 i4 } c2 U
0 W5 ~! a, B+ d& _
capture program drop hello
& s+ A! o+ e6 k4 J, I/ b" [7 q4 X4 X t
program hello
* h0 R& e9 I3 s7 o2 z8 b7 A
2 Z$ k+ v3 @6 H5 ?; q quietly {
2 \5 h' H& p3 Q' i3 F
+ f- C1 o" B# b1 Gclear
* X8 i) W! j5 k
6 v% M3 N9 t5 z, Dcd D:\stock\test\source. ?4 P7 A6 P* p5 {, A
7 V2 ?" s6 V4 M0 Y; @ q9 o
insheet using `1'.txt
1 U" o8 r8 b) o# P; W6 ]
0 c6 { a0 M4 }: I$ o* r; d- s# u keep if v5>0
' ]* y" h, T2 N
5 ?: {0 G" t4 q3 o gen vt=_n
/ Y: M! a! a. Q2 N! n# @ . S3 ]& M+ E" ~9 T5 S0 x/ g
tsset vt
9 Z2 h; E2 d3 f; K
: l1 u* _$ L+ b gen zf=D1.v51 A$ S$ t" n, y; b
4 ^* j$ J0 u0 ~- b5 G
gsort -v1" s l% \4 _6 J8 S# |& ? b8 F
. `* |2 |3 V: U
gen avol=v7/v5
6 Y6 C% H. y* m5 d8 {$ | 7 P8 a/ `! D: x' p
keep if avol>0$ W, W1 x" C8 z" t+ M
+ l( |( {; l0 |9 C+ G n
drop vt
- s0 r- k2 a/ K4 Z/ Z% o7 r
, K( o& n4 M: W9 `0 f" P gen vt=_n" @+ f2 k- C( ^; G
$ V4 |9 X, O/ ]7 u- W& `/ ^ tsset vt$ i# b+ k4 V- r9 [# R
! H$ y4 Y1 t: |% D sum v5 [aw =avol]
' S7 A# B1 ?( I/ L+ E1 e/ | G9 |; Z' P9 K% B& [
gen amean=r(mean) in 17 b( o5 b4 d4 \) U* n, B
( n; I0 P1 i: U6 }5 U * 总加权平均值 amean0 e* _) g: Q; T" |
" s3 ~6 } B; h- C1 \- p1 q t
; X8 b# m0 B% v1 @9 W( c: p keep in 1/240' W* {% G1 k- ^ M F$ n1 x& x
! u- K/ n U, J$ F! u sum v5 [aw =avol]
8 P2 _: Z3 L" \
) v6 Y7 ?6 q, \& R. O3 e2 k gen mean240=r(mean) in 11 P/ B( E* T% n2 }* c3 ~
; Q) i2 j' f8 E- g" I
*240加权平均值 mean2408 O/ E6 ~7 r. C4 H* f
: n9 I" n! Z# H set obs 500 % z) d0 {0 T) H/ @6 E' `
# R* [( m) Q, P9 |& n6 I
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 z, ^( o) I( R# Y# Z7 K
+ h% w1 J3 I) r* K/ v
*240 kdensity(dx240 dy240)! U0 f3 @4 } r1 ]0 F& m( t
6 b% N; N* B" ` sum dy240
4 n' W m9 K! S + G- ?8 A+ `% K
gen yxis=r(max) in 1
! I9 q% M8 {; c3 X* U$ S4 Y' a
4 s6 i& S/ d V1 [' ^% g* J gen yxis2=yxis/2 H* f @' ~! M. [% ?; B# k( D
, y Y& [6 V1 c6 D *yxis( T A W. u* C, { k- N" g0 N
% E/ ]# _: d5 _( V
gen dy240max=r(max)3 v9 e. F) s" ]/ s& H% b F/ ^
' e" W6 e$ H) X1 O gen dy240minp=r(min)1 Z! d9 m, l5 l/ y, I
* }7 g% \7 ?4 Y K1 ^( K% } gen vtt=_n
[$ z" E/ e5 f% i, d
1 Z3 v$ n/ g2 H$ a+ F1 g- ^ tsset vtt+ J/ K+ i! c* h9 l: _
5 u: T: \! S5 A, \4 @' L gen ddy240=D1.dy240/D1.dx2409 I9 j. |9 ~6 d3 a# R
" A+ D; X' E! n' x. D# l3 @
sum ddy240" v/ S( A! G/ a
: x6 b0 v& l( a9 _% P [ gen ddy240max=r(max)
- L6 J3 m& H% }3 J
. T( c" T C5 P gen ddy240min=r(min). h3 F5 I' F! J0 N* V" [+ p- w
7 k% t6 Y: t ]8 A1 s, d3 `
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)) ?' W* ^, V) B/ B
; S. {6 J5 H% \6 t# l sum ddy240g1 [; V% D" q4 n
i; f" O& i- ~4 `: L/ q+ O6 \
gen yxis3=r(min) in 1! i, e8 Y% c$ T- Y0 {
# ?( j3 E5 h) ~' _7 K
gen yxis4=0 in 1
. W- o1 c$ ^6 Q: G
& ?/ |- x5 O1 ~6 `7 R- H9 Y* @! v* z$ l2 v *ddy240g
0 C" e" W( @5 h, j1 ]; a
$ j0 N0 e1 b L2 P
. t/ g" O3 B3 s8 J preserve
. Q. d. H- \4 K* z" q- E
+ x3 o8 f! J; h) L2 M8 g# n) N9 d sum v5 [aw =avol]: R' [) P$ v' a
1 D) k. X# U3 R$ G' t) g keep if dx240<r(mean)
. ?; V L, Y5 r9 T 2 w. i) H; J& ^1 B
sum ddy2408 @+ \, v7 E/ Q5 \ Z- ^ e
4 `( A: I! u3 B: @ if r(min)<0 {, O" V! ^% ~' j
8 H( p2 c4 H, _; W keep if ddy240<=0: P) |5 P7 B+ W' W+ s) n
, i: s2 {+ B( Z2 ]% s {+ w
count
2 n, T6 m9 Y2 T2 X2 u, `# T
! m9 [* ?+ h* E- B6 N$ u3 x if r(N)>2 { @* G C( P+ T f7 C! m# t
3 Y6 d9 P: L/ g! `: v4 ~
pkexamine dx240 dy240
, a5 a7 x# D: t" q' @1 o / y( K: l. u+ n. Q& P
local tempminp=r(tomc)4 J _* `$ x1 k5 L% d6 f% H. S
restore
u5 K7 C0 I1 s r }2 ^2 M' ?/ w: i& m
1 |" G# G& u1 p& Z# C# j
else {# X, B9 y2 ]. W* k( r- `) m0 Z
( O- j2 b7 a$ O; ?9 P di "cannot find minp"
1 M, R" {+ \, Q1 r+ ^ ( P- f/ B1 e/ G8 b8 J" Z! v% y
restore 6 a, {5 t4 }, \( i e
sum dx2407 o+ c. l: b/ X9 B9 t% a2 g
local tempminp=r(mean)+ N, I5 b) G, k$ R4 _
5 c, O. m: O0 \
}& N$ ?2 R/ u. ~. J
}4 f3 Q: _( \) s9 ~6 C
else {1 N6 n, ?2 C/ ^0 \* U6 ?
, r8 G1 |/ a. b, Y keep if ddy240<=r(min)% b8 j" [2 }- O0 C: v7 I
$ ^' u `! g* Z: q sum dx240% e1 H/ M f4 _; o# T
% c" u# W* m, o% a2 R local tempminp=r(min)$ s; H$ b$ y% _' h. {( [
restore
) }5 I: P2 E5 Q; s* H& r, a }8 ]1 o: @% L: n: E5 }
# y$ l' g7 ?- C+ F
/ i% S" q# u7 C- G$ q6 z+ l3 a9 Q: K1 H8 b- E8 @0 c* x7 y
gen minp=`tempminp' in 1& H0 T: R. B9 c/ _4 x/ t9 G( \
*240 minp
+ c7 e, t- F) r, ^9 e* L$ p( O
6 X L2 v' M" @* A6 z1 v9 V
' E0 J" `: c4 Q; Q) J( ]
9 C; ]/ Q* I+ n0 P preserve
" G/ h1 a" V( w }* r: c
2 A r( X$ J5 d: E3 w- v7 n sum v5 [aw =avol]
9 Q" v! y6 U# n- y- {$ C# m: M& p' K $ V! t4 t* N6 k: T1 q% f- Y6 a
keep if dx240>r(mean)
( N+ A, p+ } I" o/ L# p. v3 r+ v ! d& a# w* k8 m0 \, b; M
sum ddy240
: ~) t# F# ?- E: R) Z ; ?- H+ ]4 M8 P; f
if r(max)>0 {
a7 ^3 c1 ~' ^$ r5 k* H2 D; X
* _' E3 V3 t6 W1 M7 T keep if ddy240>=0. _: N* C P/ H
5 S0 T8 b8 n; H6 \
count( p$ b* @3 d( |4 R
* D# o& x+ y, q2 ?" o if r(N)>2 {
& R/ I! J- g6 ^0 `! W3 F/ c ' A4 L- |! g- Z6 U
pkexamine dx240 dy240
5 q: N: X5 A0 \: Q
" z7 A3 ?7 M- y" _' O1 L9 _- Y9 y! S local tempmaxp=r(tomc) # r6 Z+ k# c; r; t" f& M
restore 0 S; ?! i8 C, X2 j+ |& u2 J
}
9 }6 ^6 M* i/ Y: a2 s$ ^
; G6 P1 D$ I( f, T9 S7 S & E" `2 g4 x7 t. ]2 O( \+ c
else {
& `8 m- T6 Z$ S5 w1 x restore 6 V5 ^* q1 ]2 r- ]' S4 p
di "cannot find maxp"
9 k' T. i# D, p. K+ Y7 X$ [% Q* ? % X% Z) N8 m+ J/ s1 j3 u
# j, C+ g( D2 ]' H sum dx240
* `( m4 F+ j0 K3 ] local tempmaxp=r(mean)
5 k2 x' `( o; L. M/ K8 i- R3 t |# V5 v) p : ?! P( i# {* l' r: l- A: ` G
}' W3 u! H) F/ Q) y% j$ G0 S
& W ^. n' `9 J$ E
}
( e2 k* ]2 X0 m4 L
% B* |( G" [/ ]7 b else {
- D- x5 y2 ^# l: [) _, h
5 S. y, o9 u4 B+ C0 g keep if ddy240>=r(max)! O* g9 K( M) j. [3 c; c" @7 K
0 O c3 d6 o* s! S
sum dx240
6 l' N/ ~) Z8 b# a
( ]' T9 f+ H5 C' |% Z local tempmaxp=r(max)
/ [! h( Y1 K$ A+ M- l+ D, V restore ) _3 j: t+ D, Y9 i) p
}
6 F# V0 j. l2 ]' T & s/ E, q% s+ w z" y |
+ F" u; t6 z2 v* {1 u8 d
% x7 ` M' [& z! q8 _
: n( b, L" h$ F gen maxp=`tempmaxp' in 1
9 `/ I; Q/ ?8 Z3 q
6 T; M! j1 n5 V, k/ H *240maxp
. D8 k: @- \5 y2 C
7 d$ j8 ~' Q4 q5 j' k8 @ ) q ]! E5 S; g9 U9 a4 Z% \
*-------------ddy240pminp左侧高峰值-----; o- y# ~3 F; H5 T4 x d
) X7 S9 r3 b$ I preserve 9 ?) v3 i8 c6 k$ O6 a1 m
r$ j$ M! r. L+ E8 I: t& V
keep if dx240<`tempminp'6 l- e( @9 J2 j- x$ {( U& [
4 J8 j; `- P* r: v# U+ v
keep if ddy240>0! b+ I8 G) y2 f
! ?2 S, u) N" d! _" c
count
5 O, [' `2 ]& G2 C% m# V+ v
% I1 K+ ~( \- U( c6 h if r(N)>2 {- I) {& l. B8 X% v4 K7 c5 I
8 o" ^2 C8 U7 M6 ]
pkexamine dx240 ddy240+ L6 g) y0 l- {8 H0 d7 [# H# G
& K* `& i8 e3 l2 E local tempminphddy240=r(tomc)
8 a, M D7 u- c) p( E. l restore& i5 j+ |( {, C, c6 o: m
}2 d& y, Z) u( |: w" i# R" i
0 I7 f7 E. Y& b% l! E7 I" s* N
else {
! |' d3 i& ? B. p" J; W8 K$ g restore
$ X k# [! z" R# k di "cannot find pminphddy240"5 u, c* F" U$ d$ D( B
" ?9 h, `( Z. X 3 S, D. B2 \5 }+ h! f( r
sum dx240
* i* E; V% l( Q2 P" {$ v! j& b local tempminphddy240=r(mean)
- p& J$ _& i$ i6 ^ 3 @; U- M' }! U" w9 l- u
! S; M, \/ ~9 |1 |4 H# T
}
% ?# o( A' T# v9 C! `2 w+ P ! m5 F+ Z1 v5 U4 ^. a
; j8 r: M% P& K1 b
4 F# y+ q3 r1 F i& |
5 D- q9 x) ?% S/ ]0 g n/ r5 y6 y- m
% k( u4 y) [' i( o. H $ d& T: L0 N* x, A1 l+ M
gen pminphddy240=`tempminphddy240' in 1' j( `8 T1 S- B2 B/ S5 u; O
8 F) S: i4 x; P4 b0 g0 P9 L: x' f
1 O& _8 q3 n2 @5 U* q/ Y
*-------------ddy240pminp右侧低峰值 -----------------
$ `' v* k+ l7 G6 D6 h- c2 z8 v* j preserve \8 ?2 _; I* v0 V) D) h& O
$ {: Y2 y% d U x6 j$ @ keep if dx240>`tempminp'4 L7 ]0 R/ N0 l( F
* r# y- h8 C! k1 a( ^9 ~) P
keep if dx240<`tempmaxp'7 [- Y# Z$ K: [/ P/ U' M% @
9 A+ J7 r9 q! o! A" y2 C3 G keep if ddy240<0
4 ?# Z# Q W7 C8 `# H+ t) ~ - M) [. l: E+ j5 E7 S! T3 z. y
gen temddy240=-ddy2405 R# H& K( V- Z3 g# A
" S, w; V5 a5 Z# L/ c
count
+ _% U" U$ R" d. H$ J, W/ K- a 3 X& O# s0 U8 [$ o
if r(N)>2 {) }5 F9 G1 ^3 }
/ S9 I9 K: s7 A3 B# W7 H pkexamine dx240 temddy2406 y/ |) e% H0 Z8 _/ J& d
: B$ s1 N! J' F) L7 O! y+ ?4 d local tempminplddy240=r(tomc)( q/ e% `$ V4 Q) J
restore% j, i# k6 j8 c! I- u: l* g
}# g1 m: D$ A( N; h2 s4 K4 n
% Y8 r2 q. Z8 w2 {0 k$ C
else {
1 } y. o6 e `- i
! s1 a5 G! Y$ @3 ?6 [7 \ di "cannot find pminplddy240"
: W0 `, l5 P: i9 k3 a) s- A restore
8 d+ \ @, J: C: G- q L$ ]3 _$ [) p7 J) n
sum dx240/ J4 D# D. e- H8 M' b3 @
local tempminplddy240=r(mean)
- _. T0 _8 J4 N
) v; ^+ o3 K( W# x7 D% @
' L7 h- B$ n' u( x }
, B, v! i- }/ A$ L* Z$ V
' J/ D; {5 L$ |6 i3 y
" C& T3 d- h4 }- D3 @
' u+ i! O$ j6 y1 ~! ~# L * r n6 ^4 A* q) [2 L' a( o. @: {
5 a |, t$ G( V% \ gen pminplddy240=`tempminplddy240' in 10 ~+ T2 V5 L# _% ]
$ v8 ~9 l' [5 Y- w/ J; T8 Q3 t( N *-------------ddy240pmaxp左侧高峰值 -------------------
t% D6 G1 a2 \2 E5 E$ Y # i, y& P4 _" P5 L6 V. b( ?# p
preserve 0 S* C7 O9 ]: J5 c' {- A
2 @/ ~1 x2 U$ j1 R/ o
keep if dx240>`tempminp'
) s9 s9 a, s) V; u& y
; _ W) m+ R5 N' `( G9 E keep if dx240<`tempmaxp'
) ~7 B* |, W/ @' Z
) O. G' m1 K4 k! _! w) |5 ~7 E keep if ddy240>0
, c7 x4 y' h) j' u7 A" J count4 \+ j4 C% G0 B8 C9 l- k$ e' Q
- b; g6 Z: s9 A( N% o3 p) Y# V if r(N)>2 {% j. B: B) ^6 k7 l5 t+ t' M+ v, [# Q
. ]3 \' m2 ]1 v8 l. J' t' N6 D pkexamine dx240 ddy240
/ X2 `( N+ R& _
% G1 O/ c& w* R local tempmaxphddy240=r(tomc) 8 y! v1 g7 ^; n
6 p0 ]' r# z9 o( l restore0 u: _0 m# ~- I5 @* J4 I" E
}5 F7 n) O* E" ] c, L6 v6 L$ U8 m
# b3 S8 j+ e5 r) ^8 x" o& b4 q
else {
0 Q8 o6 M0 g; R+ ^
0 q6 I- E, U4 p' q di "cannot find pmaxphddy240"6 o& o9 f7 {' z, _9 ^/ O- G! t
restore
( q4 N1 p# S( _$ Y0 N& `7 S6 \
; W1 V* F0 n I$ p) ~7 I sum dx240
% J$ A% D8 M' i8 c3 }& Z' p local tempmaxphddy240=r(mean) 4 c) G& J8 P- z7 b
9 ?0 o3 M/ T2 u% `) U# e) Q8 F 0 R& z X9 Y2 P, w
}
- \( t; P3 W$ W7 U7 c" o* [( g & W. }, n; g3 S8 b
: U7 C; P. A. i& _
j. @ L5 S' Y" I( s" c 1 p+ g2 C& G" v
* d9 g% ~/ \1 d& m W* A
: c8 Y0 D1 C* W @2 K
gen pmaxphddy240=`tempmaxphddy240' in 1
7 n6 M9 e$ F# O% t
% y( d/ o% D D% Q# W; A 5 D' ?& j; ?& J( l6 W
*-------------ddy240pmaxp右侧低峰值 -------------------$ n& |# M- [4 c) v
( f. q1 E& V% L
preserve ! N1 h) S" V5 ?# ^1 E- }. u
8 y- s# B9 r' Z) L8 f3 k
keep if dx240>`tempmaxp': G/ q/ o$ x1 H9 ^; e3 j
4 v9 p1 b7 U' @8 t3 i
gen temddy240=-ddy2405 e1 y" P0 t# r- F, T
' X6 O+ _* m: \& o6 O$ P, ?
keep if temddy240>0: B+ w' |& Z5 C
0 z4 @$ B+ [+ N: ^) g2 C count# r n, U; r$ l# {4 x& J
3 |) J* V1 W6 X2 U$ J- a. ~ if r(N)>2 {# ^- g; o8 r; n" @
" H4 W6 R4 N9 d Q; [ pkexamine dx240 temddy240
6 Y: r1 x4 |/ O' D6 k* L, W# x4 ? % N! T# L! `3 i
local tempmaxplddy240=r(tomc)
* |) p0 B& g. ]4 p3 t5 B: z4 [ restore( F9 j8 c$ l4 X# Q% X$ _& X4 a" N
}6 w7 C4 [ k6 y, k
8 e0 E7 h; D8 z8 e, I) r
else {
. l& ^) T& p( u6 ? restore: @3 S q' |6 r' ]; c; n
di "cannot find pmaxlhddy240"
2 G& n6 f$ G' O( k5 t# H
4 V3 h) k9 U* y9 R! U% Q 8 S5 a0 [. ]& ?* b. N. p j
sum dx2400 y, `" [3 x0 d! a8 i
local tempmaxplddy240=r(mean) in 1
7 x6 s* {' k/ | 0 q! z' m f+ M) a
* w8 q( f( g/ u$ J8 b2 e3 [* ]
}
; g6 y1 g% v+ P! e2 V* z1 a
P3 A1 ]0 n8 Z* o3 |
5 n- E/ Q. v: Y
' o% \* |6 @2 ~4 C* t $ p8 O+ S! |5 L' v" u
) x! T: K7 G/ p6 I2 r
8 z; E' M: ^5 y gen pmaxplddy240=`tempmaxphddy240' in 1
/ b- W( C& j2 g' C 5 C7 C$ Q0 B E. B0 o' U7 b
*-------------------------------------
% J5 \/ C: X* J/ ~ ! `2 Z$ {% G( c* c
gen price5d=v5 in 1/20* _; b- y0 t$ I$ U/ \; h
3 _& G9 |# m' C. {& U1 ?% D, H; S
gen price5yy=_n in 1/20( Z; O% l4 P- I' B+ M- G
8 f) R$ Z4 K8 @& C/ [ gen price5y=price5yy*(dy240max-dy240min)/20" M2 }1 m$ k7 v6 P* H
# B# V F, M" N( x- A
*price5y &price5d
- S& J2 `9 d2 [: }" i
7 t# q; h8 O" j+ w gen priceny=price5y in 1- r+ ^, H9 w: k' z' F0 W
3 i% H% A: D& h, h- X3 L9 o* } gen pricen=v5 in 1
- v+ d' F' m6 `
. Q( ~( W* g$ U4 n + t' r3 f" g+ @4 D
*priceny &pricen2 C4 V$ ?8 g" F1 y
/ y! z% \/ G4 s$ r1 z6 H# M
# h) B# l$ Y+ i- q1 p8 b
*-------------------------graph------------------% _+ V, ~' g8 i" s9 y
2 o) T* R. O/ K4 j# H 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)
: O; `# n' D7 i. {7 B C+ j/ i1 i" f3 `0 V: I2 e
* ---------可选项目----------------------5 v* |% q @# q9 o4 e1 p9 P
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))0 n! M% u, g- w* N
}
% @8 `$ x, }6 E! [+ E: {* f: L" nend/ t8 T' G9 X9 q2 C6 @. z. V
|
|