|
maodeng 发表于 2013-1-28 13:13 ![]()
6 F& n& R. r1 Y& n' z. hello 300236
0 u, P) p" o/ h& s+ cstatement out of context% m, H; n& R) n4 z/ Q
r(119); , q1 X u* i3 q3 q# @+ r0 R. _' A
抱歉,最近太忙了! C6 G& c2 a. Y- s5 q0 v. ~
: f- @, \" U4 i# D# M5 ]" j300236 我用下面的程序试过,没问题
; f$ A# _3 ?5 b) c5 ~/ f+ m! M7 F
3 N3 C( F! T+ l9 W: S你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
6 v7 w8 d4 S7 X0 J* K+ q6 z3 Q" X3 @+ H5 x
capture program drop hello
o7 x, N. t) X, d! r3 n2 O/ U5 J4 J# T$ J3 y, b
program hello
6 z. c4 Z- K S. V% ~# o7 c9 F$ c) J; Y' Q+ s8 {4 f
quietly {1 Y9 X! s% c+ f0 |
! H/ L+ {& e/ Eclear2 |% M7 i9 X1 F: f; s
- [' Q* x% W2 W+ acd D:\stock\test\source W$ I+ ?5 T& O! k
; K2 f: ?1 f! W9 @
insheet using `1'.txt4 D3 S! }" x( U/ _5 ~; ` O
/ g9 H7 z) |0 O
keep if v5>0" m5 Z# s9 {% @2 {9 _
6 B5 V/ w$ o9 q- s. B
gen vt=_n+ y. ~5 C* b2 O! M7 R0 {3 W6 |
& I: O' B: D5 [- x: y tsset vt& n; r; h6 I$ e
2 n) t6 l4 X5 g. ?7 C+ I- R: r
gen zf=D1.v5$ P. T2 a+ a9 K5 j$ Y! S. ?
' d9 @0 y% L7 D2 p2 H6 @
gsort -v1
5 t# r/ q4 h1 _7 S4 ]2 M* H1 |; ?) y+ ?1 H' W0 a
gen avol=v7/v5
I8 m' n! z# _6 v& Y " N! T% J* w4 }5 S/ a2 [
keep if avol>09 E" h: M E; ~+ X0 K, c7 H+ g
" i8 p9 l: s* ?+ b( M
drop vt
& k7 o: l4 ?) W3 f' q
: A5 o& E. O( j! u# V5 _4 u1 e gen vt=_n
) R5 V+ v3 M" Y+ p; i" h 0 H x; V0 u- U O
tsset vt" }7 h; T8 Y/ Y4 G3 a
& ~* [4 x& u$ p0 x+ I sum v5 [aw =avol]
; d% F! O. W, o8 W0 ?0 l: b) f# ^
0 V- w* r8 c$ Y" [- A7 z gen amean=r(mean) in 1
0 S1 b/ n% J. _; p1 _: B
% x5 D. u: L6 C+ W+ X" ^ * 总加权平均值 amean
( O+ {8 U3 m+ M3 d8 g* o& H" M $ n2 E/ ^6 Z2 g- o5 J% ~
9 Y9 @8 S" i1 F w6 z! _) J
keep in 1/240
W0 M% R5 |& C. ]" h; F9 ?9 w' S2 x7 y; t Q4 Z) O
sum v5 [aw =avol]
9 e0 R( C4 c% x
7 n, E) [0 Z0 L" }, G8 h" I gen mean240=r(mean) in 1- t5 E+ R. t9 z, z/ G
; G7 k& h- c5 _, w' C
*240加权平均值 mean240
8 R) }6 z' V8 C8 U$ w" P6 k
) K+ v; [+ O5 |' F set obs 500 " l. N9 D. c9 u7 H; u Q
9 g* f1 a% f1 u
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ R s* P# }7 F
1 C9 S F& ~5 t0 Y7 O( S0 W: r4 S *240 kdensity(dx240 dy240)6 E. K, y) P; d8 ~: |
1 D& k3 e2 T8 R8 d sum dy240, g' T7 r: T: L: E) e
: F/ R, j, V9 Z8 M% B& c, |! b1 o gen yxis=r(max) in 1, A+ _. w( J7 A
+ F. k, h, a) N$ Y
gen yxis2=yxis/2
- I* K: I" n3 ~ _4 H # Y* w0 ^+ W7 y7 N
*yxis
! C$ \8 Y( F* a3 d. @, V6 F! O$ S
& E5 B e' \5 f gen dy240max=r(max)
. a- ~6 q- F0 g% p # O# f: y* |! \. A' i
gen dy240minp=r(min)
1 `. I: s! b' h: E
A# X9 q. ` T( f0 t7 y: ^( `& S# A gen vtt=_n
2 H: N7 b3 ?3 L
7 P& A H% w/ Z5 d5 _' b: ? tsset vtt; S$ X) I$ v) Y0 F5 n1 O8 F
3 I W8 y! k' Y; @
gen ddy240=D1.dy240/D1.dx240. h# r7 b" `, U2 X8 H
# h0 Z6 [' [: x6 b, C- B( x sum ddy240% p( Q/ e# Q( D* }: \4 V, b$ l
, T2 I0 F6 l$ g* c7 x! ]
gen ddy240max=r(max). C% U8 s) D6 G# P0 L- o1 c- L
. ^1 Y" o, O/ x6 m0 v% M* }1 g gen ddy240min=r(min)! w, [5 u! c2 p
/ r9 m; H& M4 f" X6 ~0 J
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
$ D- D) t! ^# F* G P- y9 m C , \2 K9 F8 p5 R; E" k0 A; a
sum ddy240g
3 Y J1 x- D5 m! o5 q 3 e; u( s7 K4 K% W; e, u2 r
gen yxis3=r(min) in 1
$ |* s( ]% k6 G9 ~ k& u* B ; F& g4 Z+ ]5 f! z
gen yxis4=0 in 1
* q5 @; k ]- g) }4 n5 O& p
8 X. E4 e2 \4 Q4 ^ *ddy240g 3 W# [4 X6 u- L. U( t+ p! O1 b
# H% t5 C/ M" O2 @
6 p! M1 {4 E( t/ F- t preserve - p% N3 A# Y( O3 R1 ~
y: f3 P* E7 z P& U sum v5 [aw =avol]
, U9 A5 l! ]# R$ N9 H/ f 2 y. {# w5 I% L) {* G4 J
keep if dx240<r(mean)# e$ P$ Q% D, m2 d0 Q$ C# \) `
7 O4 K/ c% j0 N5 D. x
sum ddy240
) |9 \& D* k/ p+ p9 s: P; l
( W' H: m+ Y ~3 B( K/ W8 e if r(min)<0 {
. c: q6 k. u& K) r6 s
V; V8 Q& ^1 @ keep if ddy240<=0! R, H" x, Z- q' f6 u
/ ~$ h/ S4 o+ \; _$ v8 Q$ p# A count- d3 r9 a8 a, D- P5 y: M
: A5 `8 ~' X/ _/ j6 K1 b3 _7 ]
if r(N)>2 {1 r* ^0 E/ I' s1 \) N2 k
3 w4 K0 C/ D3 s5 ?$ H0 q# { pkexamine dx240 dy240
v) d+ X @6 n' S
; K- q' [( A! N7 U; k) x+ @6 Q6 ^ local tempminp=r(tomc)9 r+ h2 m% p8 S+ J% L2 e
restore # @2 [" k. y/ }8 }
}; g. I) h* ^, K9 u5 G& \
% ~+ j5 \2 K8 C3 A/ @. W
else {
4 u( u9 ~9 ~/ E* s
4 ] i( E: ~( F9 S di "cannot find minp"
$ x, C/ H) L. `( @' }; Z' D
8 ~9 M. d. {# P; o- B! e& ` restore 6 J9 m; S% s3 @; t- `4 \9 `
sum dx240. X4 b1 @5 _9 W6 U" R/ }' {
local tempminp=r(mean)
% ?: E* ?9 }% E8 v% ` 3 ]+ _) Q/ S- h. V$ u
}
+ w1 k' g2 G9 B: N7 S! H( L }
8 Q" u/ o- @: n& y( ` else {) w1 X( \' r# M# M
2 ~3 B. d+ X& c4 n% A) \$ a
keep if ddy240<=r(min)
) R# C* T! t! E) u
7 a! f# @1 t/ A7 @7 r sum dx240
. \; Y+ F2 [ Q3 q1 p; R% k5 B/ C( l
3 ~- K4 R9 _& [! E" Q. j: |$ b local tempminp=r(min). _# C& B+ E, `/ Y
restore
6 {# b& [8 d9 | }
b5 I, m% C/ D$ t8 g
# u1 F9 l1 f5 k1 S2 d
! I; `+ d$ o" X1 t1 O8 Q8 M0 E2 L& ]2 M* c
gen minp=`tempminp' in 1" S8 |4 ?; P5 o6 j" b% u b
*240 minp# o' i1 e- _2 ~: G
. z( l( h' K0 \( }& l) ?; T' R6 f
\6 Y, _6 ]: t, {1 q) n2 ]& `
4 `- i* Z! } z7 L- D# R8 a
preserve
3 E) f# y( r: n7 d
/ L8 g5 q% g# a& A sum v5 [aw =avol]3 X5 Z! d. u R3 |
! v0 L+ e5 Y6 U" U2 g( B1 j
keep if dx240>r(mean)
4 e* {& O' Q& `! |; K& \% E3 Y " C5 u' b& k ~$ A- m, D1 y
sum ddy240
; \' C7 r" R% }% f1 q ) _" E6 l. H! p% o
if r(max)>0 {
8 p; ] ]6 n; N$ Y
8 P D" N1 p8 J" Q/ ^) l( E( v keep if ddy240>=05 K. I& y' j& j; @# K U# F* e
- y% T, _, I! u; S. J& u2 d count
: Q5 G, z/ C2 n - ^0 U6 `. ^& w' I R) n1 x
if r(N)>2 { A$ p% z$ B$ G! h" z
5 q! P$ h" Z0 ?: Z0 [: Z; X
pkexamine dx240 dy240
& }7 }" a5 K" p, E$ w# ?3 F
, `# }/ `, `, f* w: `! P( D; g7 m1 U1 L local tempmaxp=r(tomc)
; E0 J( T- S0 U. W restore 0 a6 \4 G9 G! l4 Z" F$ J
}
6 I; C M* X% N* s $ Y/ M' `- X4 }3 ~) p
; Q) v* l4 z% ]* S5 j
else {
' ~; {9 j1 X' j4 z restore
& n( ?, K' r) t! W5 W# h( [ di "cannot find maxp"# |4 N9 N$ P) ~9 W
- _: z, a a! ~3 y) X u / f+ k( l, l) |$ R
sum dx2403 j) T; X* P2 {9 a" @. r
local tempmaxp=r(mean)
5 c. [% z7 `* r' B9 C/ P $ |* N# v5 d1 O; ?
}9 @: d2 N/ l1 V3 L6 W/ e
, K( t/ K9 [0 C0 N3 y
}% B6 }% w3 o' i3 o- Y/ f+ F; @- E
8 `+ U6 k0 X) f3 O% M$ C$ ?& m else {( r* B; P2 k. s
$ x) v' F8 I- O( j. o
keep if ddy240>=r(max)
/ |7 W5 }( m8 R. E, n. q, ?5 I + l: V% R- k7 `4 ^
sum dx240- Q7 x6 o% z: N* ~: m
# C( S9 q; U$ g. q k local tempmaxp=r(max) + k5 \! s w+ l! J" A
restore
8 L c4 Z( n- l& j' ]4 }6 L }8 m5 \7 w( a+ H- [8 g r+ H# T1 w
1 n8 e0 i: L* B5 x
: C( M1 i, c- G: ?- e8 v
) P3 t4 A* c9 L! m' j4 x$ X
6 ?) \- V1 o9 b5 B* ^" [5 M- n gen maxp=`tempmaxp' in 1
1 b1 |( z$ `, o/ }
2 ^2 b+ R/ X% p/ ~6 s *240maxp" B9 `+ B6 \8 T* ]: q, N: O: r
+ `. U: a( E! b P $ `# {* W) E: c& S0 r1 F
*-------------ddy240pminp左侧高峰值-----9 r* ]# ~2 z M9 {
( d3 G5 Q1 U- f* u; f; [ preserve
2 S) I5 [0 Z& r9 F
9 h5 n9 @( m6 {8 p) y: \7 T0 w1 d C2 [ keep if dx240<`tempminp'4 T2 H0 j2 `9 C2 a$ t" p
2 }7 n$ J& L- q# F5 u keep if ddy240>0+ n$ c8 d, G3 s, Y {
) D" e# l2 M* ^2 b count @9 X3 E p; P$ ~
2 f( I3 M. W3 ~* o& \4 [ if r(N)>2 {
4 b3 U# p! E9 W. G# [
: G/ r5 Y& K: d8 v" K* ?# s pkexamine dx240 ddy240
4 M& z4 b- ^; \8 ` ( i8 F4 {: x3 r' i- }$ L
local tempminphddy240=r(tomc)
" @$ w( j/ d8 c3 ?4 v$ S restore
- t6 D, D( i) o/ j& t% ] }* X- _0 X- O/ ]/ t h* j5 h
" G6 u N! t! W$ E* c9 K else {
4 y# K" R8 w* J! b, z restore
) f& I* e: Y* | di "cannot find pminphddy240"# P1 B0 ^$ C* Y; i0 U: d
$ `/ b2 C0 ~. i% ?2 I/ u
( Q/ l* D+ s1 w' e; z6 s sum dx2406 h; P9 d! C/ t6 I- w
local tempminphddy240=r(mean)
9 h8 q& ~- q- s
% x& K! o! k& \( w4 `) M/ A # b& s3 X) _ C- R0 O5 x
}# U: o. l' T" i( U' `' C7 _) _
* V6 Z; J1 R0 F& h M* C+ p+ J
+ y% r) m, d; ] ( F# R+ D3 B3 b
3 K& x, Y: [* ]+ H4 k
O3 j! O* x. G1 G, z
. w. t( A4 u8 Q- Y1 L8 R) J( y
gen pminphddy240=`tempminphddy240' in 1
6 B: Y2 S) _* q7 \5 e7 b, c
6 K( ~6 {) b3 }! Z% V
: T# F4 ]6 |5 A6 g, o) ` *-------------ddy240pminp右侧低峰值 -----------------" D r. ]8 `% w1 J
preserve " E _8 R. P) H6 k, Y
$ {* p- R) W! W, p. z( n5 c% G
keep if dx240>`tempminp'
) D" Z& o8 b& ? q
+ V% t) h; W& @- j$ f! R4 F* a ? keep if dx240<`tempmaxp'' Q3 Y+ G* g3 E; D3 m6 R/ a
6 r3 ?( _& E& w8 @- J4 b* u, Y$ D, n
keep if ddy240<0
9 `9 e% n3 a. F5 }
" u7 K: k8 k( a" ~& c5 s gen temddy240=-ddy240+ ?4 ]( p' }6 o0 D' c ?) \
" W* N+ n( A2 L3 `6 w count
( \: p" u9 u$ l3 _5 O - T: P3 \2 S* ?
if r(N)>2 {
( q% Z0 u L/ B1 X 7 H: {; _5 ]" D' Q
pkexamine dx240 temddy240% _7 P% C% D. ?
7 b, Z! G% N8 ]5 H
local tempminplddy240=r(tomc); ~6 w1 i) v( `& R( Q" _
restore
2 Z }# O& u" ?* Y( a/ H N }9 @8 {- M- K6 u; G/ d% {9 ]3 p. y
1 v5 G0 }1 q4 a5 x else {1 V$ W# n, x* v7 D
7 x1 K, x1 b) V& [- F di "cannot find pminplddy240"
- _) s$ m' {4 U! X' g$ [ restore' l; Z+ P; X; d/ W1 S5 U- X
" | E3 r. h0 ]) @- a. B/ V sum dx240
( t- F8 G. l; T local tempminplddy240=r(mean)
, T3 j7 h/ C1 u& U - s) S: D4 s& k( f
; X4 O. P/ R9 g3 K y, f K }3 g* h$ J1 E1 i
; `& j" C4 `. X8 y5 }
& F9 K# D! `6 S3 d9 A" Y , Z! x' E( Z9 B$ w, m
f) m6 z1 y; U8 q9 K5 Z9 S
9 `; A5 a) ~# U) w# z8 J gen pminplddy240=`tempminplddy240' in 1
6 n }+ J" C/ j" c7 @5 e, M # B1 s! _6 | w3 m1 F" X
*-------------ddy240pmaxp左侧高峰值 -------------------
' d6 S0 M) y! _$ v( V ' s6 |( N# L5 ?$ w! Q
preserve
7 R. u3 f! z8 A7 X 7 V1 m0 Y2 X4 A2 F* Y
keep if dx240>`tempminp'
' j, E) U5 d- R. O# G+ {- T( `* _) } 7 {5 s% C" g9 D; T7 O+ B2 g
keep if dx240<`tempmaxp'
/ J/ Z0 w5 B5 Z3 Y4 n. R$ q# K ' g- z: T3 Z: o- s, P) `. r6 K
keep if ddy240>02 U' E9 g6 h' ?# `9 T/ ]$ s4 x6 v
count% o& S: d5 S( t2 `- G# Z' i
) B; S2 v8 ^- [# z if r(N)>2 {
+ ~6 g; ?0 l5 D9 M# n7 A6 L
+ ]" \/ f; ~: M pkexamine dx240 ddy240
" Q) G& E* I7 g; K
% X+ u1 O: B8 m7 W3 Y local tempmaxphddy240=r(tomc)
- X8 r0 b3 Z- F W* M$ O1 j( J
, j, g" o' x+ x ] z restore3 A9 X: U- a6 M! O, b7 e
}' L3 D$ ]* u% t( C: _# u
# p' K$ \9 o, w7 n) _0 E+ Y
else {
/ ~2 E L1 e/ m% _5 H k$ c; Y0 ? ' i; I- T9 S9 O
di "cannot find pmaxphddy240"- e/ b- U' u) X$ |1 g' ~; Z
restore* G% @; k# H* H2 M" E
5 k- Y4 c* Q$ Q+ |* a. g: Q+ T) f
sum dx240" v6 M* W5 ?& P! A
local tempmaxphddy240=r(mean) + p3 L. V4 O2 l9 C G
$ Z- u {& {% Q5 c! J) t
4 E+ n8 o. Q9 A [; Y
}
1 _2 W7 A7 ?9 Z6 r3 w$ V$ i 9 u8 V% T; Y$ |6 l: k
9 E& P$ D" l# j
, X. c) B& N+ g; U% T
+ U3 b1 c3 k: m4 V1 s3 m 6 Z1 s# p0 H# B8 l u0 |2 T8 w. Y5 H* [
0 w, S' W. a/ _ gen pmaxphddy240=`tempmaxphddy240' in 1
1 a' k% p0 c( }9 F( p* R4 Z , i* E, n" H3 Z$ h. J
9 A; z! v" D' F" K' z4 o *-------------ddy240pmaxp右侧低峰值 -------------------- c( a. [7 U( N" Y# t
# `. o) n* d: K% m2 r6 B3 ]4 s preserve $ Z5 b3 b! Q& c3 m, J
: p! y) V; N" O3 P keep if dx240>`tempmaxp'
6 ~& Z3 Y) v Y! w, g - U+ I4 g$ j" E8 p8 Z8 }; Q6 \
gen temddy240=-ddy240 F- G0 O @& ^4 R. e
: |" e8 @* ^) f3 T keep if temddy240>0# o6 ]. G# ~, ~/ K( ^
# N0 `6 f1 A) J) p* m5 d, D9 M count
8 W, h/ a1 Y& ~% ` 5 e, q- I5 Y9 S" d+ s( @1 d
if r(N)>2 {
. y! ?( E7 Q) K! [ ( m% T4 \2 B% x: L+ d( B2 v4 q
pkexamine dx240 temddy240
! P* q, O1 |% W7 v- o$ K 3 @/ b |4 |9 w: X }2 }2 x c
local tempmaxplddy240=r(tomc) % V' N' I8 s3 T2 ~& s& V
restore
9 c$ w6 h4 u$ b% D; Y }
. L# V8 T9 K/ q- e! R! |
4 `3 P3 B5 n" \; ~) J else {
. c; N8 _: ^5 H/ q# k% W# H restore2 A4 m8 u; y" J& C
di "cannot find pmaxlhddy240", C0 m' J/ r$ D" M
9 ^0 s; V9 t! v% z" |( S* W @, | 0 P( P* F2 x" f% k! O5 Q' c3 J2 ^% P
sum dx240
$ X0 Z% E% ~4 b local tempmaxplddy240=r(mean) in 10 y+ Y" Z( G% n a
8 ]7 A2 I2 k0 G! Y8 x
# U* h9 V! ^( x1 v4 [
}
2 `7 p% f8 c+ f1 b # a# u# k0 r7 G. D- V( v
) `; h- Q- n' z& P K! `& c* G
: Z! z. Z% a7 Q% y1 o6 N. N* {5 @
0 G) j! D, b4 n4 o' G& I! J* A
" i% P. u, P. N5 G6 B) u
: J$ R1 ~, Q5 x: {3 }( l7 r- Y gen pmaxplddy240=`tempmaxphddy240' in 1
. j/ V) N# w& d$ |% L2 V; ? # r6 |# R0 b8 H4 N
*-------------------------------------- D4 q7 ?& L. t) y7 m
6 m" V- Q3 _+ q3 L( g! g gen price5d=v5 in 1/20: D! b8 \/ |' i0 e0 t8 t! j
$ |+ @; C, d+ e2 q" l gen price5yy=_n in 1/20# w5 b% M; } Z
1 B; G, u" D( {1 \1 ]3 z
gen price5y=price5yy*(dy240max-dy240min)/20
9 J/ w r7 U" z" e7 J# e1 F+ v
8 J Z! N2 t* z; K8 I7 @2 V *price5y &price5d/ }# b- h" `, X+ N. b
' b& U# M& M8 j1 j+ j gen priceny=price5y in 1# C1 z7 Y. R; a+ {3 h1 r6 a
0 \$ J1 q: k7 ?. k) N. |& S gen pricen=v5 in 1- ?8 M4 \6 G1 R. E4 A1 q
1 d7 {/ C3 B- i! g; N/ I+ j w* R" I
# b6 ?2 m7 h6 z4 o B P& Q *priceny &pricen v+ E4 s: b( E: b
6 F: A! K7 ^3 E. O
( ]* A- K" n* W c *-------------------------graph------------------
% _% t5 ^+ c8 q0 b7 {1 P, G' y , T% x1 _: _ g3 ~# q
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)& i$ s( }# ^+ V# x$ G& i3 C
( f. K4 S6 u8 V8 z8 r6 p7 q* ---------可选项目----------------------
3 Z! m# e) A. n; d u*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
: t6 z2 v/ B- i3 i$ q! p) y}
3 O; t4 y7 R, o9 jend
. |$ G4 w, w3 m/ z |
|