|
maodeng 发表于 2013-1-28 13:13 ![]()
3 N( L3 z" C& p( z" o1 q" f. hello 300236
' z S' ?# y8 S: H# {8 |$ ]3 Vstatement out of context
" v- b. t. @0 P' C5 y, x* R- d) Hr(119); / f3 u1 f, ]2 o9 j4 b: {0 ^
抱歉,最近太忙了& l' s; D" k. {/ T) H
/ V2 \; d+ ?8 t. S300236 我用下面的程序试过,没问题% @6 W. k1 {4 \0 S |; ^- g3 x
- \0 B! S V0 h8 V你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试- r* e; X7 d. _, h, k$ ?5 V
( A" w' Z; F6 A0 n6 l7 F
capture program drop hello6 S$ F2 \! u7 j# d! a9 r$ g# @
' H2 |7 b6 l2 Z* j0 H7 \1 }
program hello
: S3 H1 A+ `; z, h) N
7 H; W% O: V. P* H/ s% `" O quietly {
# m# b4 J5 ^! F( k* ~& }. U+ e/ k k) e% h0 _: `5 a
clear+ ^! t( u6 ?- `- x) r- l' K
) B! h' S$ Q0 q$ o# _cd D:\stock\test\source
* g _- Z- w8 |
6 j5 {* T- V# S; y4 y5 V6 ]- uinsheet using `1'.txt
" A# J9 H u. @/ `4 R) Y+ R% g
# P( m; j* C) o. R. W6 @ keep if v5>0+ R' q E! q1 \5 ~1 Q
2 c2 H; K+ s! N4 ^! W- a5 X; t
gen vt=_n
$ W* l$ n2 P6 B
, M4 I; C7 @6 ~ [4 U% K& {. [ tsset vt
8 j9 `% @0 @8 H2 |; D( J/ j
$ n$ A1 _0 n$ g gen zf=D1.v5
9 K5 e! G2 z! b! z
+ Z" ^# s b" ? gsort -v1
5 k: i" U; @0 m& x/ p8 n$ p" t% w
gen avol=v7/v5
2 ~* ^* ^- e3 W5 |+ x& b
7 u- ~0 u! O- d' H keep if avol>08 p' P# O) a9 e' T8 _
0 d; a3 }' X; I4 D1 @/ X
drop vt
& N2 O+ O2 u& _, v$ }1 i
! n6 [0 Y. j! K3 J gen vt=_n8 ?8 P0 M; M1 e# R, Q
8 P3 |; T2 }' O) G& M' Q9 R( L# D
tsset vt
M! }( j3 t1 g) ?3 t; c# d
& I: q, l8 |6 l" e8 {, p! Y. S sum v5 [aw =avol]
7 p) n- h( Y, g: X1 x+ R3 K
2 d+ H7 _" U" J; O gen amean=r(mean) in 1
6 w, \* n c% r5 l! n " E& z8 t7 M- }2 C, y6 n
* 总加权平均值 amean
6 {% x ^, W% t2 b: y+ V+ z * C; P7 v3 ^1 n1 |0 R, I- O% @
# s2 n3 l) Y) p
keep in 1/240( l& M+ X3 Q+ C5 J* ~
/ c, A6 M" X0 Y0 H9 Q; v
sum v5 [aw =avol]
' m6 `5 T8 O. C& C0 L! S1 X& _8 p- D( p
gen mean240=r(mean) in 1! I+ s3 H5 x( r4 i! l0 `2 H+ f
# y& V* t3 E! O$ u# Y
*240加权平均值 mean2403 a. `, [# Z" H. V# [- n; _
! N z; i T( n1 t
set obs 500 $ }" |' v$ w0 {& W# O! t
1 y' f% x& ~* g, L
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph6 P& q# s$ i6 `4 A9 v
7 `/ t) M, [9 I# a. U3 T
*240 kdensity(dx240 dy240)
. ^/ z' t% O5 d2 i/ j7 P' B0 x% ` T1 C9 q
& ~0 Z0 R# d+ T' M) n sum dy240
, r c- e6 p0 R5 D5 X! `) x , |) u: B6 @) H
gen yxis=r(max) in 1
3 a5 e @$ Q& f0 w% B8 D
3 o) d7 ]0 R0 t" t gen yxis2=yxis/2
6 z+ O- H" ^( R, i/ L ( U! }) C6 b3 L$ x
*yxis
- E% \) d3 u& }; E5 { : w5 `# S* R3 A
gen dy240max=r(max). N& N2 k2 _$ Q6 n1 w
5 a. x! a1 V! Q/ p0 |
gen dy240minp=r(min)3 @2 ]7 c$ H* I7 C) ?( |
9 U, s6 k4 R+ ~
gen vtt=_n
g6 t9 E o$ G K5 `0 B ~
% s- B& v V# K' |, _) m- m tsset vtt' t M5 F/ e/ x4 F. r
2 r* N3 v9 u( ^1 u- B `" y gen ddy240=D1.dy240/D1.dx240
: w3 V0 O, O Z. |
4 J" q, }# t/ K- Q! J p" [# f sum ddy240! m! P b7 K5 k# q* G' x
* Y3 H4 T3 f9 u: t# |* n5 c4 z% Y gen ddy240max=r(max)
* t2 @$ p7 H) [7 H5 n
4 L* W% H4 G6 \ n# o gen ddy240min=r(min). ?4 H4 z: x" k; p5 B& h; x
( R6 j: H; K" g$ ~1 y5 | gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
9 m5 D: u: }- E 4 j F% g0 g& X7 s1 g; N' b
sum ddy240g2 w0 a$ c7 [$ B" @0 x! l* a
9 m4 W) |% q C: u& ]- B" j
gen yxis3=r(min) in 1
7 o) y% A5 I+ s; B+ q! E
9 E6 y8 K" I: P gen yxis4=0 in 18 o3 f9 n _" p0 } D. _
3 h5 K. d% V, O2 o *ddy240g 8 w. S3 n% |1 T) M& A- P
5 ?, M( E; z* ]+ w% A
2 g) H2 m7 R# M; L/ G
preserve
6 ]* C$ k6 P0 t# j+ u- v, @( X2 P
! F [) T; G; u' r8 O sum v5 [aw =avol]
$ K3 g) w" `& \# U0 b- T + I, x4 ]. K: }$ i P
keep if dx240<r(mean)
7 q4 j. B! z8 z2 N , X5 o! T8 I4 J4 Y9 L9 p2 u: N
sum ddy240# e* `( w: R4 }
6 `( }6 J y/ u if r(min)<0 {
, Z" ^ U0 V) A2 N- o% P
- x4 ^% s, I& B; T- s keep if ddy240<=06 ^5 X' ^ I$ e1 f% W1 }/ G
8 e- V/ K7 @2 u" [' `7 Y
count9 C/ a& x$ \/ B0 \8 s% @( C" Z
+ m, ]& M5 ]6 M# T D
if r(N)>2 {
5 b( @0 w6 G8 T# J
% n* K* ~2 F3 `7 N pkexamine dx240 dy240! O3 ]+ k: L" N7 q$ N
2 I- m% M6 k1 N4 c
local tempminp=r(tomc)
) \8 s: G" p8 }+ i- { restore
O, E$ q; ?8 x) y# L+ n }8 U" E9 D1 K H2 Q
^: B& N# f; ^* c else {! s9 m/ G& _5 }& Y6 @
& o0 A3 f/ J1 Q) c
di "cannot find minp"1 O0 m7 g( q+ @9 T; z/ }
7 @3 A: g% p2 _8 C8 I restore % t( M ?: {, D: e
sum dx2406 l2 k1 N$ w& B" Y( c2 N3 n
local tempminp=r(mean)
* p, r4 F, A6 @
- _2 p- t+ N/ n+ E8 I* @3 {* ?1 l }: r3 C* `- O2 ~/ Z# l9 ^# y
}. a1 u! v$ S5 c9 A r+ X; w
else {# p/ _& _1 m* t4 \/ T
1 B2 \) Q9 q' j. q( F) @0 M
keep if ddy240<=r(min)( f% G5 {( r5 A) e
: J( u! k2 D7 b3 Q" Z+ N2 s% m
sum dx240
. W' b4 s# L0 J2 L! l0 i9 i k8 }) P$ N. B7 ^" \
local tempminp=r(min)
! H3 b4 x, f( N3 d$ i restore
1 F3 i6 R# D6 V- h9 n4 I }
3 E8 U _$ R8 c8 r# K6 D; l a( z% u; c
5 @9 N% ^, C% [& z
# [) R% @; e# Q# w* I- } gen minp=`tempminp' in 1
" U: ~# C" }& n1 u *240 minp& b& T& r6 h) I& h7 y- F( d
f! c) Z) X% i0 O$ s- C* z; T. P/ e$ c1 y j
$ N& ~6 a- s0 N% L) o5 m1 h preserve
5 m% e7 @- g% D 1 b: z) X) c8 |1 S8 p$ X9 R! L
sum v5 [aw =avol]# E' f+ n8 R" [& ]; p5 u, q
6 ]/ r0 G. _# o5 M. \! x
keep if dx240>r(mean)0 p4 }% `5 j: u" P
$ b9 w$ }1 a8 l& V
sum ddy240- v4 \3 n( S& h3 X
- R4 ?1 ]# t7 s if r(max)>0 {$ V5 M$ h6 m2 j4 ~8 i4 }
2 _; x: `+ r" r- b
keep if ddy240>=0) R* h5 v0 u/ |1 U0 C# l
1 L% k; {7 N( ?! C: d2 h1 s" A5 T O count
% U2 T- K* J: y% t& c
9 g8 T2 o4 N( D if r(N)>2 {# v- F D$ r y; j9 ?
7 C7 H! H1 ]5 M- L& x9 V pkexamine dx240 dy240
8 Q- w6 M! b8 X( @2 n 6 G: r2 L! i( `; E8 P" l: ~4 A
local tempmaxp=r(tomc) 7 [# x$ h. y' ^5 B3 Y0 F7 s) |
restore
3 ^& J3 y1 b' g- k9 f }
- _; |. A" }+ q( G
* F: w; N$ F! `; m
1 p! x+ O9 }. B* Q: O- m$ \ else {" M7 S1 V3 f; g. _; b% q+ o; z
restore 3 d& Z# h9 o$ g+ }. L/ v( d: d
di "cannot find maxp"
4 z+ n% {1 j$ V0 H . d( ?2 j7 |% v* s& P
. V- T# m4 J% d9 i7 |; l. m sum dx2408 }$ I2 C. V& P ]! K" G
local tempmaxp=r(mean)
$ S, n8 W& N q& k1 l
6 V7 D+ n, t m J$ c9 x }1 ]# c0 w1 z, D+ i+ l
' k3 o( b6 s" g( B" X2 k" G6 h
}
1 y& K# P1 h+ C7 p( ] & ?' O! P! W; l0 V F7 v4 o: Y
else {8 m* @) X' A+ @
9 J! W& g s6 z" w, r
keep if ddy240>=r(max)
3 h% }; l% X3 e6 {( c, g; G : R4 ^/ Y( R' I& ?* G
sum dx240 N8 G8 Q& U9 S7 D
- O+ c8 V0 K" Q+ O& T
local tempmaxp=r(max)
+ v1 E5 E7 R( n" x, B1 t restore
+ n, n0 ~7 q! A/ A$ M9 h. B } C$ v5 _. O" s2 e$ o/ x
2 r3 J- A# K. j% u" }
; s' l& G. q1 S# I" \' L 4 o' v7 y9 K2 K: p4 [( r
P' D, Y4 _: y* t, T' t4 F' |
gen maxp=`tempmaxp' in 1
5 R8 E/ N& v: `: Y5 [
( g& L6 N$ O5 P *240maxp
% i" d, |$ e# e' B + N% ?+ M* h; j% p
# O: n1 Q8 F9 d2 P5 u *-------------ddy240pminp左侧高峰值-----
5 A3 M/ }- u3 N8 o, X: q 7 o& c3 p5 s a! _1 o* ^/ q9 O
preserve
2 M. r5 ^8 |, k' W , }( a7 g" F* r% Z* O) D2 ?+ H
keep if dx240<`tempminp'
4 K( z9 D$ K& q- p' Z0 U4 z
' ?+ n! E$ E" C7 g$ ^: g; n keep if ddy240>08 b2 l+ l3 s* _
) F0 j: ^4 z; x. s3 F/ R
count
1 M9 C) W, ~) G' `$ W% A
. U+ s! T: M* m9 z# J! t if r(N)>2 {" O" Q4 R u9 `) C& C+ W9 W
$ C' s& h( F& r4 D7 U pkexamine dx240 ddy240
* u0 C6 i" t' {7 F 5 g! f) v9 S& d( M( a9 T1 z6 X
local tempminphddy240=r(tomc) + K i& B' Z; a8 l4 p! V, W E6 q
restore8 { v& b( h3 R* f) L2 w
}& y( j! W' E' B! w
& K6 V. [' u$ J' [7 @$ c* E4 K else {' B6 @, C- N+ O; J
restore
4 d" M, ]& M6 e! p+ ?* n: J2 z F5 g di "cannot find pminphddy240"$ ~7 Q$ h. }: j+ O5 l( T
2 x/ k2 L/ _" r5 `% M2 q , Y0 f5 E: j4 W! ^5 z9 G
sum dx240
8 c2 |8 h8 u' h local tempminphddy240=r(mean) + w- y/ w/ q& E9 k+ u/ C4 {; v
; V% t1 \: H1 o6 J9 m' D
/ P3 P- k+ M v" K }
$ c7 t# O7 @0 T1 y% _
- |" N$ Y" x7 n9 e7 g' q
3 g/ h/ a. K5 G B" J% a. ]" I
6 V1 \$ ~/ Y$ e0 {! A& N, Z. m9 Z
/ |, T, c, L; F6 T) F 3 N! r- }( b( Z0 V8 g0 k6 l! j8 a! M
4 V+ [1 Y- C+ a( y# ~
gen pminphddy240=`tempminphddy240' in 11 H; B. x% Y8 x+ p b$ t; q$ }
$ ]5 `, B& S$ r
; W" J: h4 j, A1 j% f; } *-------------ddy240pminp右侧低峰值 -----------------9 e. I4 D- M1 r9 Q) A y
preserve
2 \' y9 j, O$ p, L3 P1 V9 B3 V 5 [ `4 L1 R, |% y! U$ N9 _
keep if dx240>`tempminp'/ p8 w. L5 O3 k( }5 |2 R q
( K' h+ v; P9 U2 ]/ _9 b' b keep if dx240<`tempmaxp'& T3 f8 z3 ^5 u* v$ d) X
. n5 ^+ ?- t0 e keep if ddy240<0
/ n7 d4 N) Z( ^" b7 {
/ Q1 K/ k4 O, B gen temddy240=-ddy240
& i, n% K% j9 o
g- @5 Z# \. I: f count$ ?, W0 Z6 b# a- Z0 S* p
. q8 s( L. o# O# i
if r(N)>2 {. z& t8 Y! x. _
9 g5 A- N, @7 l. e. Q# `( N" P
pkexamine dx240 temddy240
, A0 ?1 ~5 I: U9 @ ' D+ W1 \1 B* S! ?$ O5 O. [! E
local tempminplddy240=r(tomc)' Z! f$ L+ f: @% Q
restore0 ~5 \0 }) A" p6 w2 I& ]
}4 K( S" B, v/ c& [
6 u) Y. `: P; K else {1 Y( |! L1 d2 N# ]5 ~
! C. o: [ u0 l) T1 y/ w
di "cannot find pminplddy240"! Y3 X3 o) H1 W( Z- f
restore
* g+ N5 ~' D! J
5 ]' ]: r7 J$ v" Y+ s3 _ sum dx240$ b. a3 v8 t3 l; G V) Y6 i% O
local tempminplddy240=r(mean)6 h0 ^6 X2 c- Z$ c4 I
% i5 e9 Y9 l+ c3 J ?) h
. }0 X0 B( H) Y1 Q3 {* y- @" K }& w& D+ s9 |8 T4 U# G% H
& o1 @" o2 u2 u
3 e) n' J, q4 Z/ l3 F5 v3 I , a) _% @9 |. X I. H
% _, J- E8 ?" g: }0 x! b; _
# T: S! D1 k3 S8 w" ^
gen pminplddy240=`tempminplddy240' in 1* h3 E; r4 K/ s1 f. l
, H- }5 G7 W+ d# ^- [
*-------------ddy240pmaxp左侧高峰值 -------------------
2 F, n" E3 x4 t9 ^
& U5 l$ G" g. } preserve
( R/ L9 A2 i# b l" N- p x& _
& m0 y F, t" l# X+ @# P1 _ keep if dx240>`tempminp'+ c. ^5 i% N( g" b0 f0 ~4 x/ n2 M8 I
/ F! ~- [/ r6 f" l& |$ s keep if dx240<`tempmaxp'
7 {/ o R9 v( e& ~* u9 J2 P
/ X6 ]" h* k* b. } keep if ddy240>0
+ P. b/ e1 r3 B% x/ |1 `9 w count
, ~* n, ~& m3 u, `; c ; j1 ]1 c2 X* r4 i/ r
if r(N)>2 {: V$ y: \5 u. U) e5 ]+ T1 e" q: q1 G
0 h+ g y5 c% u+ w- i E) y& @ pkexamine dx240 ddy240
1 |" ?; K% K+ H! m' \- w" O& @ ! V6 r, s/ L/ x: v
local tempmaxphddy240=r(tomc)
) g8 b4 t% k! T7 W6 K h 2 \ c5 {& w# k! V; N# T. i$ d
restore
6 J) |; b( K% W% _( R }) ^8 n; S0 z3 M$ d
1 i5 x4 u& D# ~; p* Q; { else {' }6 O( B# m. y2 X5 Q7 C! k5 ]% G
$ X; C+ p: C. F3 K. W% O
di "cannot find pmaxphddy240"0 ]/ N+ } }9 v
restore; o! z7 }1 ?6 Z6 ~
5 o" {9 \* I/ Y
sum dx2403 e. U4 `4 k" z* K
local tempmaxphddy240=r(mean)
) G- O7 w5 l4 t3 n/ A. t5 y6 \ * U1 p- @4 R6 L; L! [9 s( @
5 ~, ?9 i) s$ @ P( ]3 X4 R. E! L }
" }: L0 S' ~" U \
+ c: S1 [4 d, s: Q
7 w# t( p9 T: F6 M/ R, O L) N6 J
: |! z- y8 Q4 |( v8 R$ G y+ T ; @! F4 i$ F+ Y$ V+ b* k# \/ f
1 d; g3 O( C. A4 m0 Y - O/ c w' e# S
gen pmaxphddy240=`tempmaxphddy240' in 1! p9 u, j5 h: e
+ B; i" p% L/ v- t% r* e ; D4 S* N2 z- m. T( T. y
*-------------ddy240pmaxp右侧低峰值 -------------------: ^8 K4 q6 l( F; |2 x* P% C1 k, n
6 \' z, K- ~9 D. |, h2 L preserve 5 G5 Z% m% p2 ~. q) R0 }& S
* n. O, P, I& D0 m) x$ G keep if dx240>`tempmaxp'
6 p: y& Q; i8 V1 y* A, H
; m3 b) D! e- l9 U gen temddy240=-ddy240
% d2 H& i2 i- Q( @$ d 6 _) J3 F& l) }- U. U
keep if temddy240>0
3 m& M: h7 {2 a+ h
+ A) S( ? x) l8 I1 z: @ count3 a$ g8 ]& F1 N* A4 m3 N
9 F& V2 E8 W8 [2 G& _+ f if r(N)>2 {0 M/ X3 n( k, c, U* x! l i+ P- a
/ l' D. ?! y) g8 l pkexamine dx240 temddy240
H1 D" |& n8 E! j$ w 8 Z p9 Z7 c1 k' M/ t, r
local tempmaxplddy240=r(tomc) , }& x) l5 Q- [" o1 h* r; S
restore6 m8 u. @) f, C9 g3 y
}
. N, _9 V# j5 ^' ?/ G# e( V , c5 R0 Y# f5 t/ P
else {+ N, l5 J1 b, d- _! k
restore4 [8 I3 I" s7 C4 b4 |) X( P
di "cannot find pmaxlhddy240"
8 l& ?- e; M, u2 g- l7 m & G2 x: a7 t3 `/ f& s
8 f5 g8 `3 Z6 P+ f sum dx2409 ^4 H7 e4 k' ]: d- H
local tempmaxplddy240=r(mean) in 1; u* G$ f- L! S( R& F1 @# k) K, o
5 `, t7 D- ?, @# k) x/ o8 Q
6 N3 V9 a$ O* d9 z }! ]6 s( _3 B( N9 J
, b- p) i ?% P P
# H' p1 |$ k+ P2 E
9 p) e& X+ a9 Q. K- d1 P
! Y2 s" I% ]$ w( [- F( m L" ^ & Z6 J0 A/ X: j0 O3 m- M
0 w, V$ Y& R. v- r# |
gen pmaxplddy240=`tempmaxphddy240' in 1
& g! G3 o, |$ i2 ~2 H1 v - I0 }- {3 A" \! a
*-------------------------------------
; G1 ~( M) f' }1 W
0 x4 g: W: r5 f9 o v- {6 Q7 y' p% S gen price5d=v5 in 1/20. ] G2 S7 c8 C, g) P6 L
+ `1 Y6 r+ L$ O
gen price5yy=_n in 1/20
2 {. P6 [1 q+ V# ~( n5 ~2 K1 | & Q8 U2 f( q; ~3 V, V, T6 `$ \. T5 D
gen price5y=price5yy*(dy240max-dy240min)/20# P+ q1 d1 K- [* z; |
9 L$ X; j7 T2 H' ?: K% r; c
*price5y &price5d8 Z7 d2 ~* k. @8 P' J9 ]
7 @( t. C- w0 V& a/ _1 v( J gen priceny=price5y in 1
% D w" B; w# E! N# u 0 U" q: l# C2 z: T, g5 b
gen pricen=v5 in 1
' l/ Z) l, k% Q) f* D" B. o4 m* {
+ w) A4 j y9 e& O. d
. h* n, f! E. N2 e( `( f *priceny &pricen
% F8 y* h& i9 q; b- T* E( _+ I
0 X- b7 W* X& b8 |, j
# @: [) z* l$ O *-------------------------graph------------------( y& n5 _' K$ t
" U; J( [, N' L6 p; k
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)- X9 y& K- t2 O( ]' Q
+ _8 d/ `) C8 r+ ]; Z6 C4 u( F* ---------可选项目----------------------
3 t ]# D9 o0 c* D0 m; h*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
% Z3 J; ^$ O* T: i9 F}
, X t4 ?/ J i& R7 ~1 Aend5 K+ Q, O& v' x
|
|