|
|
maodeng 发表于 2013-1-28 13:13 ![]()
7 v* @. h+ m, n/ ~) [& \. hello 300236; i/ z2 E2 _: \9 t# z
statement out of context; c. r& F) I2 O( p# k3 q
r(119);
6 O- c! }$ ~! U& B9 S. q抱歉,最近太忙了3 e9 k; ^: A% L8 V& L
& l2 c- ]4 j* Z$ I( i5 }% f$ A300236 我用下面的程序试过,没问题) v+ \: F3 @& C7 Y( X
/ H# r9 x0 V$ y3 U, Y你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
/ q# S2 [0 I' R+ Z" {4 c& ?1 b9 w
capture program drop hello
5 q0 q% x. V! D4 B; h* q1 J2 M# L: p. @; E- @, h
program hello; ^( I# L7 \" X3 C2 I( o. w
0 o0 @6 S" X3 ~7 q1 o I quietly { r& w/ ^: Z- c( ^
( c/ s( V( a# k6 L0 }# @# A8 G
clear3 \5 T0 y% E5 N' y O3 K5 ^+ E
) {$ i- g4 o0 l3 k4 Q8 f
cd D:\stock\test\source0 L( d/ Y& _! U9 ~2 b7 x7 U
$ P# i# v' m) Q( h" w) _$ F
insheet using `1'.txt1 Q9 G2 C& z" l4 O$ E: \
" ~$ N# x; X3 \5 t0 V; d2 K% e
keep if v5>0
- a6 i7 D4 g9 D& W2 F9 B & j4 }/ g) L6 i7 ^$ L4 x6 J
gen vt=_n5 \' a9 B: i/ X0 h2 }
# e) S; ^) r# L m I! v- [ tsset vt
! W# z6 i4 b1 r- o+ z/ t: J5 z2 o( h% f% e& ?/ c" @9 {% t
gen zf=D1.v5
1 D( ^( f# B- \8 z
; C, v- ?, B/ f7 f gsort -v1. I( W: l* @" ~- O
) G" K& X# ~& ` Q% v: C7 G4 y* v gen avol=v7/v5
* f* D8 J8 a% A8 s+ C + _/ h; l, j! B' q) g+ Y! I3 N
keep if avol>0( Y! ~3 d: F" B6 n5 Z0 e0 s! ^6 P
% I. D8 F9 E7 |8 W
drop vt4 h/ C8 O1 J: f" S: a
+ L$ i% V* X9 b
gen vt=_n
' s; J" n5 j V! P/ J9 x # Y4 o3 S5 K P3 [: c8 o% G- j
tsset vt1 Q# K( R$ |- a5 S5 T
/ b ?; T* s( _; {0 @
sum v5 [aw =avol]
) M9 C# P; C- {% I, D0 w8 W6 |/ w; m3 H7 c' H$ @1 T
gen amean=r(mean) in 13 K7 g/ z3 d7 s7 U
& w4 }. {3 x$ X! y" N. `3 H' t
* 总加权平均值 amean
; c0 r$ ?3 L- E: [, f3 T( h% L3 V' J 2 T9 W2 i& c8 H' s
/ Y# L; H8 K% I! J
keep in 1/240
& u- ]& F8 E. J. ? A" L- Y5 e
0 K( k1 L( e& { i3 X: C/ o sum v5 [aw =avol]
* h5 ?- U# q* y; t/ z4 r" r3 Z; }0 ^6 L- L; R
gen mean240=r(mean) in 1: t/ w9 q: Y O4 j
/ Y6 V( M/ e% g0 r *240加权平均值 mean240
% U9 N& n, u5 I" a9 X% f
( Z( \) f# H% n2 C, y, ? set obs 500 # I; g2 k2 s5 m- f
: P7 j$ z* ]$ c: B( N/ F
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
( l0 d+ z( J: Z% Y- I+ N
( B4 R) T/ K! p6 C; j7 k U a4 ] *240 kdensity(dx240 dy240)
R6 U8 _+ W9 W# x' q* q0 |2 w& f
& z. ~4 {' `1 B2 F sum dy240
8 { j Z; f( c" M 7 I" r2 b K$ V$ F! f4 J. Y
gen yxis=r(max) in 1' ^, x/ u/ l5 j# b1 p5 f* _+ v$ {
. R! v3 v7 n; S7 [* Q8 ^- n
gen yxis2=yxis/2
+ x1 S' W, t+ s9 W: o% x4 c
! ~2 {3 b9 F/ p7 ?; G *yxis! C: l- ?$ N6 C* p" W
, C2 f8 K0 f- t, n% e1 ^9 z3 i gen dy240max=r(max), ^0 E- v3 Y3 p3 r$ c
0 _% ^/ [9 m7 \ S: t, ]! T1 C
gen dy240minp=r(min)9 X9 t- m }! M" m, m
" o- |) G `3 B& { a* S' | gen vtt=_n7 p- m H c( X* t
9 |* e: J7 M% j* t8 g
tsset vtt8 t6 w; l6 O% d5 A( w( V, R- o
$ H# S4 N7 o+ A8 [5 o7 c* @3 g
gen ddy240=D1.dy240/D1.dx240
5 r* V0 m7 o- U* {
+ P2 L, c" u2 R- |; e. _; q) l7 E sum ddy240( j: u: r& F0 K4 P8 ]
! X5 A) E; I% M. B% x1 O gen ddy240max=r(max)% P8 _, g6 F2 g$ U q8 Y# H7 Q
* k4 ]& J3 K1 W* Y# _ gen ddy240min=r(min)% K3 n4 o/ P( i* j" z
8 L# \$ N7 _5 U4 F( Q& t, C: y3 X- c
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)* D* |: {6 ^, P6 X
7 z! n+ d5 Q ^) B0 W
sum ddy240g! t; t0 z/ r9 R6 E; [
' N: h% M- W |' e: B8 k gen yxis3=r(min) in 1
8 X% I2 p. A/ M. t: V3 g7 K
# X% X7 ~: I; S, B. P* p gen yxis4=0 in 1
. `3 X, w& R& p: l - u- M# j) P1 j8 @) z+ |' I
*ddy240g
8 s+ v) Z0 u7 A7 P; g- x3 R2 g. W7 Z
' ]" X4 s! S: E3 f) U. S. S, `
0 a% `* _; W7 `4 i6 O( J" i preserve
4 h1 \7 `* d- b, d/ w, Y) n
/ M: p/ M4 Y4 v6 X" B+ v sum v5 [aw =avol]4 Q$ r; O( f6 Q, W7 f
6 {1 _( C! s+ B: E; o2 t; \ keep if dx240<r(mean)
9 _- Y3 S0 j" @6 i & `: n" N$ \6 |' s# P P8 G* p
sum ddy240& h ]3 n+ i2 z j2 r
) x) _& v! R% h; X' d if r(min)<0 {- o( b2 P4 Q/ W
6 i) |! W) B( d+ J
keep if ddy240<=0/ r' F0 I* s O; u4 t
8 i' w& e6 Q6 ?! ]$ E/ s4 N
count
2 B# i: o% ]8 u! n
; K6 U" R8 f3 c6 R5 N if r(N)>2 {3 A D( B6 }* B. s' m. {
+ {+ L, B, m8 n8 B! f2 Q1 ` pkexamine dx240 dy240; b# J" `+ t! B( I4 r. b/ _: C
. S, M* z/ Z, v$ C% `/ r) z4 j' P
local tempminp=r(tomc)
* Y5 C4 P: B: q8 X' T/ w restore
" q" C, H5 D& s: F' h& }3 e }
* ~0 i% D! m2 Y# i" D
+ B9 L: ~1 d1 J8 q7 M3 b* n else {
b- l+ k1 `# t9 A7 L3 P! v/ P $ Q9 h# B) q' B1 n7 s( m; F0 L
di "cannot find minp"
8 o, N" g X1 M" I) ^ G0 { 9 @! W- V' h1 d$ ~& T( B$ e8 r
restore
% a# C. t& m5 o/ T/ y0 o sum dx240; p+ L* J/ Y* c+ w) }
local tempminp=r(mean)- s: L- J1 {. p3 G$ Q$ G9 b
$ U- A+ D; d4 ]% ]% q. [, l+ U
}* S* I9 a- y, N
}% F7 w( e% R9 l& H- Y. I
else {
: |+ X! I2 E# B! H1 C 9 s7 x* w: n7 p: a7 |% V; Q: T
keep if ddy240<=r(min)
# C- a) G1 Q/ L8 }4 k8 ~ ( H8 S) X( R9 t8 q, L/ R% z0 t
sum dx240$ s6 j* }% l# O t% s2 E+ O
# i- j! {5 O' o) q) o9 K$ D
local tempminp=r(min)
/ l) v: _8 T- S- L% G& a5 T restore
: `* x# Q/ Z+ z% F7 H4 Q }
$ P; d# G7 W8 k D1 O& r8 o
* W, s$ P j- ~$ N& A* w$ ]% o* a# y
; c+ \6 o6 T/ C0 s; \
6 J) G4 F/ I4 F, M8 B gen minp=`tempminp' in 12 l, w; C V0 J+ e6 U$ e: H: a
*240 minp
i8 l( R+ w$ m, h: h& m# ?9 B# X% B9 d5 \+ t/ {( P
7 ]% d8 b# ?% a
1 L" d& P3 K% X- ]
preserve
: p0 r4 [! V: q1 J5 n& x1 Q 3 X% K- c! S( B# Z) }
sum v5 [aw =avol]! }* V# T! M/ d9 H' ~
, \; s5 z: J/ Y* i0 i+ _0 _ keep if dx240>r(mean)
V- V8 r5 [/ b f: S( D
3 Q# C G4 G# ] sum ddy2408 S5 q' ?$ C: v( {' G8 U7 ]
S* c' ~4 P8 E B6 ]8 n
if r(max)>0 {
( I- G, j3 ]; N5 Q. E7 J- N+ j ' G5 H* c J: e+ p, j
keep if ddy240>=02 H; Y7 K5 w4 B: w% U
$ S7 u) m5 P5 p. n" u4 F; u
count
6 o# G$ C+ j0 T1 k a7 O$ ?8 L3 l ! z' T9 k* I3 O8 T- W5 Y3 X' {
if r(N)>2 {$ C5 I1 ~* R$ |$ z& d
$ R' z' x$ m ~
pkexamine dx240 dy240' D6 r1 U- W$ f
9 l5 D( c: |# f) ^+ o local tempmaxp=r(tomc)
& o0 m* U; v* E, z4 ? restore
+ b% Z& q/ n+ |9 T3 l. s }
) q: ^' }( w6 e( l2 w
7 h9 z; t) W7 K/ `" @0 l' C, ` 5 {# Q* }: `0 K- C
else {
2 t9 w4 ~0 ~! k0 `$ c restore 6 P9 r) k) Y/ y
di "cannot find maxp"
/ k7 N( J* p% r/ D9 H7 D5 v ) S' {2 i3 x9 h( g5 y/ {
9 R6 j* Z5 d* b" | sum dx240; ~! X' z. V. R7 B' V: h
local tempmaxp=r(mean), P$ q" h+ v6 b" k0 R
9 v8 r% O9 l8 e6 H h% w# D
}
# `: N% n" s$ e0 Y
5 \/ \# |0 d& _6 b" E/ c! Q1 a7 d; X- K }# ~' r0 k3 E) g# \( r' y A" R
5 k2 J* h0 {5 N/ \. [3 r$ E' }
else {
8 T1 P0 {: m- D1 p0 s: B; e " t0 w% x& B. B8 Q! B
keep if ddy240>=r(max)
# R1 }2 D y2 m8 H
$ g3 G+ t- [' z8 J2 U% E% w! M sum dx240
8 n2 _# M7 y% }: ^& n2 c - S$ H' h& t5 ]3 h# V
local tempmaxp=r(max)
5 x: A+ {7 @ M6 l% ]; ^ restore ' z4 N6 U# d' v( [& Y. C
} B- ?" |& T w; P& D
' c& C* y8 L% C8 B
# l% a: v1 F8 S) C( m
# h: h! \' F* L" c$ S8 [/ c* N
' |( \( u: `% K9 \" F- Z; B gen maxp=`tempmaxp' in 1; ^. p9 @5 S+ ^! J' u% ~: b: k3 z
. W- ]$ `! I% ]- |/ P- N3 L+ h, Y *240maxp5 ~) Q' Z- R0 f/ p
' D9 K7 y% s" h3 D4 y. l6 ]; t
$ U6 _" X0 q3 Z1 b) \6 @+ P *-------------ddy240pminp左侧高峰值-----
8 ^* F& T9 l, r" E. ~! E7 H : ~! Q0 e+ Y! W. l
preserve
/ |6 D/ I8 w7 ]% n" q 7 P% J S3 z6 z$ ~% E; u4 s
keep if dx240<`tempminp'
p+ G( D5 j: D3 X( | - A4 y4 P! o0 ^1 ?( ]( l: ]
keep if ddy240>0: f! C- D0 L* @5 J/ T6 V
' a+ s6 E: r: _, a6 f; B
count
3 ]( n. X3 Z6 g% Y
J' V6 E( A! I3 I if r(N)>2 {
5 _3 U/ \' O$ [# m" n ) D1 h6 J5 I, m& X7 e
pkexamine dx240 ddy240
4 I1 n# d9 d, L1 X! M0 ]! Y
# j! f, H# n. _# G local tempminphddy240=r(tomc)
6 I, i! ?6 h( \2 L restore
4 G! Y2 ?7 h Q5 R }
0 S' f5 |- m5 v2 }2 k8 @- C
; C- }! Q2 V: C' q9 @ else {$ E; E' c4 c# A4 t [6 X
restore ; u9 o. u$ z5 ], i1 m
di "cannot find pminphddy240"+ J0 e7 s" B$ Z# q8 Y5 y
1 e. E# m+ m! Q( t
& r. c1 ^, L6 N- G% { sum dx240
, j* G' f, _3 m local tempminphddy240=r(mean)
+ y6 m8 c1 O- I1 K/ v j
1 e/ h, S. b3 N: M" S
) u. \2 l# q: e2 K }4 x; U$ S1 _0 w3 J/ i/ k# i
) V! q/ q" x3 ]! n' J/ g
) f4 s# R; g, h- P" W! i5 H0 C 0 n V+ }+ D3 j6 U: y; U$ g
8 J1 W4 s% \0 f4 b
+ t z: ~+ @2 J4 d) n% E
# ]4 X( z. | O6 i1 O8 F" L( G9 ? gen pminphddy240=`tempminphddy240' in 1
' C/ S E6 L0 c
* h4 Q8 V& E* ~) p2 e) T: |# u/ x
/ w/ @$ a" R, j; X! k *-------------ddy240pminp右侧低峰值 -----------------
0 `+ z6 M& W- B+ d$ F preserve 1 y1 j e' i" J* z% l3 y
5 m9 J$ B% N! G8 m+ i keep if dx240>`tempminp'
. ?# e$ ^3 {6 \' K 0 {0 d$ u% b. L
keep if dx240<`tempmaxp'7 ~" {: ?1 O# c8 z0 N5 e
) t' V! v9 K: r* f( P keep if ddy240<0! q2 Z8 B/ |. A: y' U% M5 _. P
7 D6 X0 H& m, o3 w; P gen temddy240=-ddy2400 j, {; [& K4 r8 X3 i; F* {
j# o) E7 |$ S, b
count% o' I. O* s9 ^0 Q6 Q
# E/ L2 I) @4 Z: o6 z$ ]0 X4 W" b if r(N)>2 {/ y! ?: Z6 f9 l6 L
. T' T) N0 d) U V2 A" ~% W$ }! f
pkexamine dx240 temddy240
& Q3 d5 K) Z+ y2 [) u, d1 _8 f/ x3 x1 p* e
/ u5 p7 E, S3 j local tempminplddy240=r(tomc)
+ |! M! H* x/ G restore0 j( T) g) t" l& Y ]0 Z5 ^
}
: t% t8 y" S- w: k
' U- ^& U+ }+ p& Q) x else {' S# |& }6 X" ^% F6 ~% U
3 C/ Z) p# Z. s( l di "cannot find pminplddy240"
+ g* K) Q# @3 M/ m restore0 F- q- \5 [/ P! T( {$ J [
9 V" d3 {" u* a( i6 f( q8 J/ ]$ q
sum dx240, p8 Q b/ P3 \8 W h" R6 x3 s
local tempminplddy240=r(mean); ?7 q5 G1 Y% f3 ^# X- C4 t* y
- q5 Z; P% B4 o3 {5 c$ m
( o* x5 k3 [8 Z9 M& M! S: w" m% J }4 a4 M* ?' X3 D5 _! e+ c
' ~; T1 J, _( Y: V; ~ E
- o' t1 c' D, g! [
( z2 ?* V/ F" |3 z6 v9 B% c 2 W3 m! F) W6 ^* C9 {* m$ a5 I
! i4 l" T" ~) X" c% z3 f gen pminplddy240=`tempminplddy240' in 1
( d' T7 j5 y- j. ^. q* C % T( u: [# K) ?* M% s5 [
*-------------ddy240pmaxp左侧高峰值 -------------------9 I. Y4 ]% `+ J7 C- K
6 z9 w' J4 H+ e7 ^: X preserve
# y" j& V* ^1 }: [ 4 `5 s; C9 B% l, _- W$ |
keep if dx240>`tempminp'
1 [6 V& Z1 g' B ! h7 x! l: ]/ Q. v2 ^& Q
keep if dx240<`tempmaxp'
1 C% r' I9 E/ C' b 0 z; I3 ]/ G U3 {( O
keep if ddy240>0
- t! S: \& [& N count6 m: i! Z5 K' h
8 q& o0 B. U, M
if r(N)>2 {
" E# v c) J; o. ? + a/ m, i: a1 \" X: c" X6 F, z
pkexamine dx240 ddy240/ W0 J; _5 O7 y- w
/ j% K6 `- S) w% Q: }" F; s+ s
local tempmaxphddy240=r(tomc)
. S0 e& S/ d2 _" Q + V5 A4 u1 s9 {6 i/ ^& ?" J
restore
9 y) G+ y, S% i# x9 V }
7 _ U4 N2 O0 ^ - Z" t U8 V8 T, |! U
else {, G" s' T1 Q* P2 W* X- f- y/ Q' R S+ |
. K, v' \: I4 t* o7 l2 z; ?, C, u
di "cannot find pmaxphddy240"- Q5 q0 c; |8 T4 z
restore
* V2 b3 }+ `% e
2 @+ a# g( B- V) c/ S7 G sum dx2401 c/ O: ]) B; H
local tempmaxphddy240=r(mean)
- D: ^* J9 c4 _; o 6 q! O/ L P. C; z) l
7 S( y4 K9 k) L, O }
' K7 [ o+ o* u# B K' C7 Z0 q 3 H! a# L2 N+ Q2 A* ?
2 _7 X" P2 Z! P3 T& b
! C4 \: h2 }% p. }& D: X* F; t
2 ], y( w* t* i# N7 R( U
( i0 _+ D( W% s8 @. R
$ c) _, N+ G+ n3 E6 w& l R6 K gen pmaxphddy240=`tempmaxphddy240' in 1
/ c& W0 l4 g# p6 v$ [ : `) h! B" s1 T! b# i4 F
: F5 K0 \0 g1 B7 g *-------------ddy240pmaxp右侧低峰值 -------------------
" W# |* R* t3 S! @9 U F
! r t8 ?& O1 ^3 @ preserve
W! b3 ]. ]* |9 p% e8 ^ + ?# m6 x% s' o" ? @
keep if dx240>`tempmaxp'5 o) D! t) C4 C
7 Z( y6 N$ H2 u0 C/ S; M- n3 Y1 E gen temddy240=-ddy240
. I! Z# |) n* D; v% ?, H9 l
1 P4 T3 ]5 u; b2 ^# c0 O keep if temddy240>04 e, }7 d! u1 Z. u
- A3 @1 S4 _9 e count
2 @( p& S0 ?( {# n$ s " y" r! p0 M: l; o v! q
if r(N)>2 {5 B, E4 t6 n( i9 j s
# \7 V& ]% V3 I5 u$ d, L. X pkexamine dx240 temddy240
) F2 p+ Y. x# _% I" t( S7 {
7 h Q# N8 K' x% K3 Z6 { local tempmaxplddy240=r(tomc)
4 {5 L0 |* K3 a% Z restore+ ?9 }6 J9 @) [) L& ^. }
}) V Q5 ^# }# @0 K. s: l1 D- a
' S" P0 _9 ~+ i7 t else {
. N% d& v# I% a8 P- K restore# P% o% e+ ~3 S
di "cannot find pmaxlhddy240"
+ O$ s1 I6 X' b& C/ t, }
$ V6 |- e/ I$ ~4 Y, {
4 c1 [! P* P) B4 P sum dx2407 D8 l% W$ H2 W g
local tempmaxplddy240=r(mean) in 1# e2 S' e) [) A- G' z+ [
6 ~ V' u+ j4 P* |6 W& ]. X
. ?7 V6 Y9 u" J/ J1 E }
3 P& P# q* M' |4 R% @3 k
6 `* t, Y7 A, i( B
H2 Z7 C6 Z% S* F/ `! U# {; O0 I & R5 H, W( g6 s" w ?, J) d V
0 ~- K- K! Y* }* _) i
% s* I K- V% ~ 2 j# U! l4 Y3 F' R
gen pmaxplddy240=`tempmaxphddy240' in 1
. m; e# c, c3 m" r) ^
9 U2 d: F- u% x7 b. p1 c) ? *-------------------------------------- o7 a w9 A0 o2 H
/ P Y; ^% e0 i: W. K$ M7 ^
gen price5d=v5 in 1/20% `1 A. n7 A( ~6 Q- K- E
, I6 k9 g8 F% b$ V
gen price5yy=_n in 1/20
3 Q* @! U2 {) y7 f7 T" e
, x. Y& b. q8 D) I gen price5y=price5yy*(dy240max-dy240min)/202 Q! W# s' x0 y' C F- F
0 V6 S2 f i8 _" `# } *price5y &price5d
' `9 K; [; t& b' X9 v; p
) K" e: r8 h1 H9 S8 f' ` gen priceny=price5y in 1
% `; S) D8 R6 m: x8 f) P. i U% X s # W6 i7 o! o$ g5 \( A# U6 v/ G
gen pricen=v5 in 1
8 Z0 W1 V% c0 z6 a# e, K7 r% f! r( j# M# C5 X1 h w
0 F# u" I7 L8 N# c
*priceny &pricen' i$ w- k6 t( |% N# L* _
3 P9 H8 z9 D, L s9 l* c
' x- N7 X9 c* @ *-------------------------graph------------------
$ z0 k# R4 H. Z3 G1 I ( }3 Y; H3 s; R5 H) m; J7 Z
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). k# y Q2 t$ o
* W* @6 v/ H7 L; D! f
* ---------可选项目----------------------
: N+ U$ L/ o4 m% f3 V* z" I*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)); R& \: ] x: p: b+ Z- O
}
7 K$ d P b j" cend
4 g+ ]- @4 o# ]( `( i |
|