|
maodeng 发表于 2013-1-28 13:13 ![]()
c4 \7 P6 \: Y2 B. hello 300236: o; J S, t0 W/ h5 P' j0 |
statement out of context0 Q4 }% A2 T( v# L h8 K( o9 f
r(119); 0 \# G! O: g- f' o2 G/ l) q
抱歉,最近太忙了- N* s9 `# ]; I: B/ a" M8 S8 o
+ Y" F3 ~' I% d6 s, [; E3 b% o! }300236 我用下面的程序试过,没问题( s( Q1 |, E! A+ ]2 \; ]. b" l
: X4 I$ R, p+ m5 |
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
: a8 W% b( L* k: R5 ^9 V6 p1 _* U
capture program drop hello
! D0 b o' [7 o0 ~/ }: d
" U, T% W. ^! X4 l$ Z8 B+ X: H4 Nprogram hello
1 N8 i# U+ P% Z4 E$ h0 \% D% r K
8 W1 c/ B: f, ~" X7 J2 l8 m6 W quietly {; Z1 K8 E {. U; ^
. k5 p, E, a$ M' A% sclear- h9 v; `. T' G. B5 U, D! H% {
5 Y: m+ h7 r: C) ^cd D:\stock\test\source! r" y4 ?- a. P k
) ~0 w W {# f% ]0 hinsheet using `1'.txt
% ~8 j8 m9 b7 Z) Y; Q0 _7 M8 M7 Q/ U0 ?# t6 c8 c/ f
keep if v5>09 J! t5 _, ~7 c# v% d5 ]
6 t6 z1 `/ O. l* n* ] gen vt=_n/ E0 p# ]8 v% i3 [" G8 e
4 I A* D) H% L6 g tsset vt
, `& J; V5 A: u( D1 V4 A# U7 _ q- }& b9 m
gen zf=D1.v5
( S" L% i; `2 p3 r+ T. V0 q3 Q* b# f# \* A8 B) }! n/ f1 G' V2 j
gsort -v1+ K. d. }4 F' M7 d. t
Y1 c) u* o. j" r0 F
gen avol=v7/v5
) G# L1 R9 j3 n, R7 X. Y, |
O2 \/ F: e0 v keep if avol>0
$ N" G: {+ [+ _0 q. p* R4 \- A7 `6 {& q 3 w" B$ ?. z+ y
drop vt
- v3 y, X+ W- m" D
4 I+ E ~4 E/ F5 M2 v) Z gen vt=_n
_2 p, }8 A! q X / R& P2 O6 e: H5 @" p [
tsset vt
6 y2 k: N# ]8 Q2 V* Z5 ~8 J
A4 u, Q6 O9 W H" B: | sum v5 [aw =avol]
+ A' E% i6 f- e) D4 i* v, l
( R( @% i& U: X7 t# U1 O8 y& U gen amean=r(mean) in 1
2 ~1 B5 b; Y4 |4 I0 M# W& b
2 d9 d7 O5 U8 U; O5 F3 y; P * 总加权平均值 amean. b7 O% e% D! K, Y/ [. J7 P9 `7 e
, x# H: P& o% c) F7 K% P l" U \: x% O( F f% T
keep in 1/240
- x. a& z e* }4 e' w( c) A" U# m
sum v5 [aw =avol] F* l& s( C, v1 _4 c
6 A( Q6 x. \6 |% H' Y$ X: ~& a
gen mean240=r(mean) in 1/ x- J3 H0 d7 C
6 P, ` V. X2 O' E *240加权平均值 mean240
) A; E! m( [! B2 \) q' F+ E7 ^
! e {7 y: ]% s9 s2 F i2 P set obs 500 0 @* J1 @8 _- U; f, a
$ q; y, m0 W6 O+ }& M& l% m kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ K0 p" _ F. Q$ t
, T+ e: A H* k# a& L *240 kdensity(dx240 dy240)
; K# I* V8 C; J5 F9 Y! K
+ o5 W, v! I/ F& f o: D/ J sum dy2402 @! y/ w3 F2 e
$ v& g7 l: h" J4 T* _, U gen yxis=r(max) in 1
]/ I& H3 O. K+ w( c 5 a0 q& F# J- j$ g! ^$ U) s
gen yxis2=yxis/20 K/ R" A) ]/ w# b
& w0 R+ J4 M* Y, W: U *yxis
4 r2 I, P$ {& y
* ~2 x9 P: |8 k# t( T gen dy240max=r(max)
, a1 p/ I& ]3 o8 T, B' Q
" ]& M0 u4 S5 X1 M: `1 M X gen dy240minp=r(min)
( c% W% t5 ^+ `5 F+ I) m 8 e6 r* X( q' V/ ^
gen vtt=_n+ [& g4 J- U3 u ~! O
* \8 a. n' b7 T2 [) _) M" l9 v
tsset vtt
- F8 k2 d/ I* w! |% k. R5 m, B) |* I6 @! f+ y
gen ddy240=D1.dy240/D1.dx240& q. b6 A% Z' b
- @: u9 I1 @+ l1 {2 H sum ddy240
! d& E9 \4 {, D! }2 o
+ N6 T# m7 H* I2 s, n. x gen ddy240max=r(max)0 g! d' x' y: ]
& g" A+ l' t3 X( [6 S
gen ddy240min=r(min): h# ~ K7 a7 U% A5 W" ~+ C$ g
8 O, o7 v' h4 k% Z4 O2 Q
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
' t2 \1 Y8 T. b$ X- Y7 H
2 b1 E9 l0 h- b9 R% T) T. x sum ddy240g! H% \+ H+ z- d) w8 q. v9 w/ |/ B
. u& f7 r3 y: p1 ^/ y: S4 O& J( n6 @
gen yxis3=r(min) in 1- d" ^7 b- J/ T# ]
5 S4 ?0 O A1 o* i) V) g
gen yxis4=0 in 14 ?+ f6 a( N* j+ _4 H
( D ?; i1 |2 i, `- q, h *ddy240g
2 Q& q2 H8 |- v0 ]6 ]$ p * J' j6 h# F* j
0 I+ O1 a; W# t. w" }+ c# ?
preserve % D! V( S9 d! f/ f" L- [
& G! w7 ]5 ?% ~: r; ~ sum v5 [aw =avol]
+ T3 e' I( e! r: p4 C8 g4 Z* j . b- S: I( m& a/ A F3 P+ Y% A
keep if dx240<r(mean)
" i/ E7 u' y( X2 H2 [ ( ?' B" o5 ]- l3 @" B
sum ddy240
. f$ O( D& ~8 C* F& [
! l7 S0 h& M. G7 i) ~" N if r(min)<0 {
! f) H+ `4 d( A $ Z, m/ B+ Y: A/ p4 C' ?8 @: y
keep if ddy240<=0
, ~. ?% l5 G) F, ]& C
" G0 K- ~+ y I5 c, g$ f count
# s2 H1 h* B8 s& x0 C) T) ?+ ^
: j; e. a' a+ o" h$ ` if r(N)>2 {: a: m1 N1 I. ~* V2 ~) Y& [8 Y
3 [2 }+ C Q5 d pkexamine dx240 dy240
* Y' h0 T/ U# A1 {7 P( U8 Q# T
6 U X$ ?+ G9 c! E local tempminp=r(tomc)
! G f. s$ ]6 {3 W, l restore 5 Q# V2 }1 E9 a
}, s& t4 v; O6 }
& ~5 u, f7 k+ n! l4 Y# v else {
4 ~8 \ Y5 k2 B/ Z2 ?
" a( @( i) X. [7 }0 v di "cannot find minp", o( n! v: o! f* G0 C* `6 @$ R _
7 G+ m& w+ g! R
restore . ?" X N- p2 X) r
sum dx2407 x1 S8 w9 ]2 u5 u1 u5 S9 ^
local tempminp=r(mean)
$ c |3 {/ y$ ^
! p, r/ K' }7 _# N& l' z/ \ }8 u/ h' ?/ w$ a) [: ~
}
j7 v7 G1 m: t" a" F7 ? else {: T+ [9 O: @+ C# t/ y- X/ r2 Q% K' g* s
W) q9 i0 O5 p3 @& u: j& ~ keep if ddy240<=r(min)
6 ~: w3 ^, v- ]% A6 r' A \ 6 l4 R) Z+ l( a" p- o+ z' F8 C
sum dx240( N( p+ d. O: \, \
0 p/ Z$ @3 M, |: X: U
local tempminp=r(min)
: N+ b. p+ D8 t7 s' } restore
5 c" C V- Q, p d8 o6 J% X! k }
. D, b2 U$ _3 l! }& h9 A$ n9 e& n! w7 _2 ~! [& e1 ]3 N
: ?8 Y: b: o* E e9 F @) s# ]; e' w) z. J9 s9 o/ ^, O
gen minp=`tempminp' in 1' z% y) F0 {! A1 s
*240 minp
. G1 z/ S1 B: F& `: D2 U( P: G, m" U# y; S6 O# w( N; J! b
1 g. {, O4 k. I8 D0 d
9 B1 J1 ]4 q6 t# I8 d- q( U5 r! N
preserve
: l2 y; [" h0 P( `( M! b* I v n 8 `) b% H1 T1 L: e! p i- G
sum v5 [aw =avol]3 w2 z' Q0 e6 M. \; V# o
3 i* T1 z: F8 ?% @9 c+ _1 V keep if dx240>r(mean)
; ]8 ]8 W4 a$ S) f
' o: D% E$ [- [- G sum ddy240
, }! u j+ A0 C* G! i0 v ) v. B2 F. Z' l2 O# v9 a
if r(max)>0 {
) l- A5 d$ z6 M. D' v: K* R) K8 [! a4 Y
! {& o& R- U) O5 O1 x7 y! r1 k keep if ddy240>=06 B/ m, \5 y- p; ?7 c2 z% P6 ?
- X, u3 V7 W; C% c) W& g8 B count
' S8 z0 |6 `0 F' a ; U7 W& F$ `3 P9 |$ H
if r(N)>2 {
7 ^3 q; N- e1 Z4 j0 p 9 V& u9 R' e `/ _; M
pkexamine dx240 dy240
7 Y5 c1 Y9 J N. X/ H
2 z' \- b/ q& F4 N) K# z local tempmaxp=r(tomc)
+ m8 I- Y+ m* z2 ? restore
1 u: p# f7 ^3 i( Q2 _ }0 \# n* q* c; H. Q7 {! s; I
) L7 z+ K1 M+ f0 o5 y. |
$ f, B/ _, P0 Y+ [& u
else {
# ?6 J( U% g" x2 ^ n restore
) e" s' ~0 l% d2 X8 X9 { di "cannot find maxp"4 n! k' @* E( j- k* e' I# t
) i3 c- p0 [5 A$ O& E9 V9 U# T/ N2 J
7 g; e3 S6 _5 _+ x6 j. b! f sum dx2407 v; j/ ~/ N3 {/ P/ B
local tempmaxp=r(mean)
: O3 x( w$ E8 X7 `, P' K( n& l: s 5 L" X) F+ c0 Q5 b1 L' V8 H
}
" g' l, L- ]4 i' W/ N* m
, a, D5 u* l% G* d4 _ }% I8 q: V$ d9 b6 n
/ v+ \4 w8 U( I/ h& l1 G/ X( V
else {/ v" N0 d* ~! V& _7 L
2 q) i7 P! h' w
keep if ddy240>=r(max)
7 O$ \4 {/ q E' _6 E8 p
" ?: n5 @# G( y sum dx240
8 C1 P+ c. ?( R( ~2 f 7 b0 B p! \ q& E1 G) ~" C
local tempmaxp=r(max) , }$ `9 M7 m$ y
restore
/ w1 D( e5 F; u# W# q }
3 f" E9 F( Y3 N9 H- I" e
$ J ^4 H4 m$ Z7 a6 B
8 l6 I; Q; v5 c9 d6 p$ w6 D
* g8 E! f w, n% i6 U% K% F4 q7 p5 l9 N; v; V) @' {+ ?
gen maxp=`tempmaxp' in 1
) [5 i1 ?$ w3 x7 @) Q& ~
( v7 K9 Z# L) `- h& ?6 h *240maxp
. ?# c" p! L; a5 ^9 @$ H3 ?- m6 } 7 i. t9 p- i& s% V' @' r0 d
, `/ y, L9 \2 U2 x; N
*-------------ddy240pminp左侧高峰值-----4 j7 k* B+ v) r( a
+ y( b3 H/ L- T2 b2 f( E
preserve 1 w- g' E1 b5 J* M
5 n1 C' m8 \0 ]( t' O; e' C
keep if dx240<`tempminp'
; Z- T5 e, `9 P% v $ ^+ S, V% |* P. @( [. u
keep if ddy240>0
1 K% _& h4 Q. U7 h
' f7 g; K, J: [% [1 D count
0 i# N+ M- S4 T* b" E, b' C
7 Q: U/ g% ]6 s: _* N2 y3 J if r(N)>2 {9 g0 K5 Y$ U% Z3 W- W
( Q, c4 g/ A/ T! s* Y$ n5 q" I) S
pkexamine dx240 ddy2408 @. h1 S) ^/ }
$ M g; X9 |/ y; y+ s; Y local tempminphddy240=r(tomc)
7 N* f8 D" s* m% W0 L/ J restore& I2 M! W! T8 O t* g) e* F
}7 _, V( C" K7 Z7 g7 X |6 z9 S
2 D `) M5 u" A* }4 m+ M* z else {9 G% u# } v5 B2 z+ h
restore , B. O. q2 t- \( B
di "cannot find pminphddy240"
l. z! I/ g6 r7 t% H7 ?- E & W; u; _; u+ e
1 g- `2 d! u% c$ G; H0 O8 } sum dx240. @& l; d- R2 N* f9 c
local tempminphddy240=r(mean) / z, W" v6 a/ h0 C( q
/ F$ q% l# A' H f
* F4 K8 ^' u2 L
}$ V" h' c4 g5 a1 z0 q
0 ~9 b5 m# W7 |- K
6 j; t4 {4 y, P* f: k
; D, w- S" n5 D$ J& r4 i1 J2 P& V( ^
( m5 _4 `4 \1 R* ]% f# q# q
& @4 p& \2 Z* _8 c. Z1 W, q
- v$ p# H. U: h gen pminphddy240=`tempminphddy240' in 1/ m6 h7 ?2 M+ ^9 q
8 Z) X" `& M) ]& C- j. _0 R
. h( Y1 G& Q" r1 F0 L$ G *-------------ddy240pminp右侧低峰值 -----------------
* l! u7 H4 G! c7 F/ m, c1 {! s preserve O* u* G6 X3 i9 A0 D7 [
* }2 K/ E- t- i) r. a" W4 N
keep if dx240>`tempminp'6 p% Y" k5 y+ z( k0 l
. m! n# w. R- |5 B# J1 ?0 f6 k' i
keep if dx240<`tempmaxp'
7 W( `& `0 v! W) k+ x5 I T
7 |8 [9 l( t! N0 D% ?; w keep if ddy240<0
- x0 p3 c0 D; R5 I2 \ 7 T! k: D- S/ i& Q9 c8 h
gen temddy240=-ddy240
- Z& ?2 h3 U7 k" m3 k- d 7 ]& z- `, r9 F
count' b" p. K* _3 j; A
( D( k8 z. ?$ G5 h# K& R8 i# L if r(N)>2 {3 b/ A0 x7 A0 B9 @" b) _! ^) B
- P( I. d9 c$ S5 W; {8 F pkexamine dx240 temddy2408 o% D$ Z% M9 s
4 E1 |( M" v! Q$ I& ~: y
local tempminplddy240=r(tomc)
" ]& \/ s: u4 f7 O* K& k: s8 Z- m1 ? restore& a. _% i3 Z. K
}; B8 a* p* t: \4 g* M
4 ]' A+ p# C: ]) @- ?$ J! { else {! P. J( t9 X4 x0 C" O8 Z6 e: @1 \
9 n% ~ Y# L6 x8 l: c
di "cannot find pminplddy240"
; O& _! H! A6 d9 f restore1 e4 t4 ]1 D3 T1 c, V2 t4 }5 t
6 m0 ?2 f# O6 V* @9 s* n8 z& Q, j7 k
sum dx240! i7 ]. F4 w4 T4 _& N d7 u
local tempminplddy240=r(mean)+ t# E% H. g9 e8 d6 G* [5 y
% b* P& [3 P/ H) g3 E+ ~( W! E
; G W& w+ H' R5 o% i }
% p8 q# m9 ~" E; Y * D0 R! Y' M$ G" w0 H2 C" h
0 j3 ~3 W) t8 c
! ]6 B$ b& _; L: B* e& W1 f# k
9 u$ T$ C0 K5 a9 n- @$ p$ [
+ d. a& T. [. a [# p gen pminplddy240=`tempminplddy240' in 1
) ?2 B5 t& c: g& c5 R4 }9 Z9 [ % N# |. p0 ]9 a: k6 M& z2 }
*-------------ddy240pmaxp左侧高峰值 -------------------) Z& u% V! x% R8 y1 T; t2 G0 G
! o# l1 q. P" t" D preserve
' M) [5 q( }# n- p: A3 k0 I- m
3 h: U" ?9 G# g' h0 W keep if dx240>`tempminp'8 l0 v, D7 R" y$ x, ?2 s5 `$ K
0 _# b& m \# G( f6 b) \( C keep if dx240<`tempmaxp'& J$ r7 q# o& B7 \& v6 G5 [8 r
/ J' j; o# ?! }; s4 P keep if ddy240>0
) M2 _) B' p4 T. V count
. f& h" N/ b9 e' G) _+ i
" {* g' x/ N+ `* p# n if r(N)>2 {
. @9 ?2 O+ N7 |9 R- |6 o# U) j& s 6 g3 @' H8 s; M& @( ?; U* l' U
pkexamine dx240 ddy2404 a/ B1 }$ l& z! y: U7 u! ~
/ B+ T5 {2 f k4 o: K
local tempmaxphddy240=r(tomc) 9 m2 s3 A, b! }2 p9 O- {
( B4 n# Y% O7 K$ W
restore
0 {* P3 k9 f4 N$ o }$ h) p' U1 c- o0 d& H
6 I a( n& t' U% f# s# F" z# ^
else {
1 p' R- e; L% Q, N$ r
- G0 D; U g( `) r6 s; @ di "cannot find pmaxphddy240"
; h4 e ~+ Q0 T# n5 U restore* K% g% P o+ P! I
7 M7 W {) f' y; Y. L sum dx240
' Q& |' a8 v' @7 Q! E" @) [ local tempmaxphddy240=r(mean)
' v3 b. Z4 F# t" a- ~
. I; k4 |" v6 e# e: P. F " O1 }% |9 ~1 L$ } u
}+ ~$ s2 G: U1 G
- L, x9 i6 |- _/ V; P) o/ b
! ?9 D) m+ D$ `) @: A( K+ z& }
! n! w( s, l# n2 y ( K% V7 H6 |% c$ d( o& ~! D9 Z
7 i1 l3 L2 x' \' H8 y + c, W- l4 }3 N1 S; C
gen pmaxphddy240=`tempmaxphddy240' in 1
6 u+ q( G, H' G8 i) S2 N i% h
8 v. t5 p1 H9 l d2 i- x( y2 X ) t& n. V1 c& d4 d2 ?6 ]
*-------------ddy240pmaxp右侧低峰值 -------------------3 R# D, U. H/ h. d( i2 B" O$ _
& W; X3 i5 _6 P preserve % [3 B* e6 e) _
3 h0 p) I- L9 I& |9 a& v
keep if dx240>`tempmaxp'
% ~* u/ Z8 t7 b/ u9 Q9 d $ E8 k3 D# a% Z# C. T, {
gen temddy240=-ddy240
1 h r2 z% f( }* c. O ; m) _# @5 P8 \
keep if temddy240>0
3 ]( i: O7 v" b
6 u5 l- l' G9 ], c count
' Q7 t$ q: `( B) C) C% V 6 J- D5 }7 h& C5 u
if r(N)>2 {
8 ~! Y1 L# N- _+ k+ ~2 V7 ^) M
) |8 C' L! y9 b' t1 S% b pkexamine dx240 temddy240
. R" U- h9 X" n- \. @5 E h2 z
( J+ k4 a- E/ j! ^ local tempmaxplddy240=r(tomc) ! \+ y8 R6 J3 w3 v O
restore
1 z! G5 j: x. L; @( z" S- X }2 A+ V' q! Q2 t' D a& O @8 }
! N1 Z" y/ J4 |" ~7 v, \
else {4 S0 t& i1 z2 k! J! W' P
restore" {# Q2 c# Q; t
di "cannot find pmaxlhddy240"# f5 j% w# L3 ~
: W e9 Z( V- k
2 r3 y7 h( G- z5 E1 \# a# y- k9 [
sum dx240) N( [( Z8 S: B( n U9 Q5 G
local tempmaxplddy240=r(mean) in 11 N% r/ a0 B+ g. i
. |; L+ n8 S! @0 ^5 ~/ D" t. u 9 f! r% ^+ \% b- L! V2 ?
}
* T7 P2 S6 r& y% z( {* ?2 |7 m
, M% t G- F& [1 h
& ?3 c4 X2 ]# z1 _/ T : c# U* t2 r$ M
/ d! e, X' r( U: j
0 b+ D8 n4 {/ T6 {$ P5 S
% e+ X" K m: H1 F+ D' O
gen pmaxplddy240=`tempmaxphddy240' in 1
, V6 t; O3 \+ c& ^1 J4 ~, ]& t
6 G5 B ^* b9 q *-------------------------------------
' Q* U" S3 n' L& P) d p, E$ H
& w5 ^" T$ C4 h& j4 j gen price5d=v5 in 1/20
0 R8 `/ |+ K: t% k- e8 u 3 s @: h: S! I
gen price5yy=_n in 1/20
1 [4 P0 K6 Y4 T6 k5 @
2 X; n3 E+ l$ F; p+ P& a2 M: I gen price5y=price5yy*(dy240max-dy240min)/20/ ~3 _) [, P5 f. z6 h% W; n
/ b* J6 V+ l2 J/ ^9 R/ h
*price5y &price5d- h8 p6 [: ^& l6 J5 i
/ {* N0 \- \% _. H9 K+ c- N gen priceny=price5y in 10 V5 m R6 z$ j' K
5 \2 t( S7 p0 G, K
gen pricen=v5 in 18 m0 S5 s4 N8 l, O9 q. d
* I9 l% u% v) q4 l) H4 M 6 N7 Q* t+ f+ q2 ^% D
*priceny &pricen
4 b+ M; d; u/ E! q, \! \
' V" D4 C8 u7 _- I
5 g$ y2 V2 P, i" Y2 k *-------------------------graph------------------
; w0 J* K1 A! Q' h1 N & Q% v# H6 {2 a7 d' i+ [, D* l
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)- f1 t& b/ F2 R9 c
' P* g9 r7 \. }* X, @4 ]* ---------可选项目----------------------' U1 D9 Y' X( P
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))6 S7 p+ J& f: R2 i U* d2 L3 f* c6 L
}
1 O3 T& Z* h9 ^% ~0 ?end1 h' v0 K" U) D) u; I9 N) M: q
|
|