|
maodeng 发表于 2013-1-28 13:13 " ]( Z3 y; R, f# C K
. hello 300236" Q; ~$ q4 j* q
statement out of context7 J! c! A: y% l
r(119);
: z" h4 O) @/ i, X# o; V抱歉,最近太忙了+ A7 z* J+ n! @$ @) }- D% V3 }! E6 h
4 P$ O) a+ {6 o. h2 w
300236 我用下面的程序试过,没问题& d0 E! H; v, z' w! ]: D: R5 b0 d
% F. S5 [2 A/ N: _( ]你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试; W& s3 h2 m7 U
0 Q0 P+ O3 |5 A' V- bcapture program drop hello% Y/ X# I* H* `4 g. W
4 I+ \' M' @# l2 Q. G- f6 D
program hello7 x3 d, S. r! e: {: Z% y
0 _4 y1 F, b: s, M( ?
quietly {
. `3 G! J+ H5 {" ?- }* `
. n/ ~5 p* V3 Fclear' L- T) n; X. V: P1 |9 q |
4 } V# J' ?! d6 U4 `9 N6 A( g9 Z [cd D:\stock\test\source
/ l# U* Z0 o$ V8 W
% C& h8 I' X0 Z3 Y i( A/ sinsheet using `1'.txt- C( C. s6 z5 }/ y! P8 t4 j
7 j2 p( x, L* v+ a1 F
keep if v5>0
+ n7 y3 V$ ^7 r' v2 l + q2 T$ O" u. R: }# Q9 |' p
gen vt=_n" Z( c8 A# G' c' R
2 H) e5 G; ~! c% K( a8 {5 ~ tsset vt
$ _+ c1 p# c0 {# _+ z3 C- g; C$ U' a( y# M
gen zf=D1.v5
9 N T u, R9 `+ d& L- M; {. S2 `& @; y) p- G; ^6 p
gsort -v1
6 e, p! a1 \7 ]' p) ^1 U" m
- a+ }. W5 F1 V. S4 ?. L gen avol=v7/v50 x- P5 p, e, L
1 K% p. V, C% ^* A1 r. q8 Y1 | keep if avol>04 a+ B' w+ A6 g. q
5 m& }+ N5 k: L2 }, j
drop vt
; i! o4 t7 h" }% i! E
2 ?5 ?. b% G& B gen vt=_n+ m7 ^" w- o" m8 u9 ]
& j" p$ U$ A/ i) G, c- ~3 `' \
tsset vt
( [0 a1 g' f0 q
3 k' E4 L; j( n7 F! W0 e sum v5 [aw =avol]" E4 h7 v& S! c$ x N' @
: ^/ t2 }- C! J$ g- w gen amean=r(mean) in 1: q- K8 v0 @; a- g6 N* v. [
+ R7 F% F u/ K8 k; q8 ^1 H: M/ y4 o- A
* 总加权平均值 amean
5 |5 n1 B3 q& i! u+ U) ] : O) u# z0 z0 V# t" D1 b4 M
' m: K: y7 ]' b: f( j/ \5 n keep in 1/2405 }7 F" G9 {, u3 t9 G( m8 l
- O! T9 \. F8 N9 p8 D& Z+ i+ ? sum v5 [aw =avol]
/ ^9 t# S4 N0 s2 U. m# I" X
o1 h+ j1 \' Q$ |$ a gen mean240=r(mean) in 1# X* r) |% d4 X1 y' o7 b
# y( T J R; B7 X! } *240加权平均值 mean240
7 a9 U G2 U) r
) [/ x4 k! m" ], u: u% V2 [ set obs 500 & B4 }' P: p, L, p: A
" w* z! Q9 t5 }2 e. V kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
4 Q/ e: \: v1 t 2 {* h& y4 z, q0 c7 c
*240 kdensity(dx240 dy240)
4 H0 I1 p* h# x5 T5 ^# r
+ ?; @0 I7 d) R5 D3 ?8 G6 | sum dy240! @, V& W# Q e! O
2 [3 e" Z" U3 E% y. E
gen yxis=r(max) in 1
1 x$ t' \- F7 _, r# _
2 o! C, z3 t: K' p9 } gen yxis2=yxis/2
7 J6 d( X0 U! o 3 M& j) Q) i$ D. L% ~6 L/ p
*yxis( B- B* p( _. e8 Q9 m% {
' d( M" R- [5 ~% Q! A/ X gen dy240max=r(max)) O" I. n0 V4 w6 K
* g4 S; p: f$ p9 R- n. x( c) ~
gen dy240minp=r(min)2 P; Y! B( h8 p4 A3 q/ N
/ o+ T/ `4 O# J: P! [0 Q
gen vtt=_n
4 B: u. T+ O7 b& g
& [# O; N2 b3 N$ _" H& A3 c tsset vtt1 e8 v% C- Q2 s( K! n4 ?$ n8 h9 B
: L' @' _. z) e @3 I& q
gen ddy240=D1.dy240/D1.dx240
% t8 u' _. \- @; J8 V
+ o4 h0 B3 A6 r3 ` sum ddy240
, ?/ G# ~. [) G
- B0 k% [7 y* a' _/ Y c gen ddy240max=r(max)% j9 L. Q3 C1 C# E: l1 f- J
7 E; g8 R# N6 L; a; f6 q0 R+ B gen ddy240min=r(min)
0 n" \1 z* t! Y# k9 ^
( R3 e F3 f! h8 L' ~ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ n7 x0 V6 s, Z/ E2 O {9 }
1 i `& S; N/ Y7 C, f
sum ddy240g
# h' Q' g' S% S- q( }
3 `: _# p" K: B7 ]3 e gen yxis3=r(min) in 1+ K+ d$ N; G% `2 s- v
% Q' n5 { z% I gen yxis4=0 in 1
8 B3 c( ~" K1 `9 `' S : t1 N/ F4 W7 D9 B' E1 r
*ddy240g
! s ^& n4 N: s: J6 J1 L* j ; H+ X4 E! `- [/ ^
( _' G9 M9 V+ ^7 O8 B preserve 3 ]4 i; d. \4 \# j
& D; R Z( p, r1 \, A { sum v5 [aw =avol]
6 H& p% @- X f& Z
: c' M. p2 K; m! L& `0 j: Y keep if dx240<r(mean)
# @) i! {) m! K+ u, M- D0 x9 J0 @ ' e3 m( A8 F) g3 `) _
sum ddy240* p: ^3 ]6 u4 S6 \5 f/ K
- f% w. `2 E6 J8 E/ N4 q. ^8 _ if r(min)<0 {
$ v/ I( {, T& P% V( q( N# x ) s, }. \7 ]3 l# M W
keep if ddy240<=0
* f, D( r0 n$ k) T7 ~' O6 J4 i/ z
# k( {) o: g$ {+ g; O count
' f2 A# | ~( }% o& S- f
$ U p2 s( L2 ~ if r(N)>2 {; u' z' G; |! k1 s: O6 X) v7 {
% k9 D, X% |3 g' ~
pkexamine dx240 dy240
7 A) D. X* b4 q5 Z/ C9 W( x
& _. O/ f) F1 j local tempminp=r(tomc)7 O* F, M! U2 V# J
restore 6 M" w. _4 L1 x- l# E# j7 L
}
* s# b7 C; G* I/ H9 X/ W
6 E' X& u7 l I/ b8 F else {
- s) ]1 B* \% X4 I
* J1 C3 Y" @5 U; | di "cannot find minp"# ?9 g9 ^ f* |# z+ j% a
- ]1 n& S8 v2 X5 i) u
restore . l! @& o( h1 \2 c1 j K
sum dx240
& j( ~8 F$ E A1 r6 d) x7 m local tempminp=r(mean)- x3 T- S5 K0 A2 r$ o
( `# u$ @5 f( S. j4 C! B: w }: [% o( L4 s& E5 h J
}
% r) v; p5 D# S* x else {
: W) T( ~- k/ { , f Y ~6 U$ ?
keep if ddy240<=r(min)1 b2 Z, j" l( R8 M2 ]% T
% \% C8 n9 ]! [ sum dx2409 {( M- |; ~6 `8 U1 @
& r2 R/ p$ T7 Y* m local tempminp=r(min)
* i* {/ j! a' m5 ~ restore
; B4 c6 f( w) M }" O9 c0 m. g- N. Y# h4 y' w( w
; G2 o# i+ h) A* O$ R0 T' U+ \
7 M* r, {1 ]0 U: [
9 T! K( t# i1 a4 r/ @- J7 v# Y' s gen minp=`tempminp' in 1, g4 z( E" S3 b: E8 H; s$ t A. Q
*240 minp
, V9 m7 t ^2 S# Y3 w2 {
M& A3 g/ [$ |; j8 m5 r4 o" m8 I" |
" j3 n# J! J( s% q* b preserve 4 Q2 Z8 U' P i( }% C8 H! d/ E
" U" L7 T7 X: C ^' n: }
sum v5 [aw =avol]
) f" J2 U# a- R3 V* ^& w ; y7 H9 _8 N5 y5 l- P! F1 K8 O
keep if dx240>r(mean)
, y' ?$ w: d' a$ w6 P $ R K0 ?! s# F$ x/ a
sum ddy240. [- ]2 z. n0 C7 D
. r, P) o; s) D
if r(max)>0 {8 n2 E4 y' O/ D3 P) c* d+ b; C! P7 w
& [- I3 W- w5 m Q7 `' R. a keep if ddy240>=0
3 \. P& i. Y" I0 O1 T; R
1 s: e6 D0 h/ I+ l& V; }& d9 t count6 A0 s1 H. K& q1 B
; b! d# Y- i6 L3 c# i T if r(N)>2 {6 K; @6 u# A9 L/ H2 ~9 @ M q
' F9 {5 S+ }) T* z3 B" l
pkexamine dx240 dy240" Z, S0 v( H( n7 }
9 e; N' X1 C _ g local tempmaxp=r(tomc)
" }1 F+ _( q3 b6 U+ Y c restore
( v- z% M3 U' ?1 V0 n) w }
; p; Z k' ~$ n3 F
: a( @) h4 j* N; @! e
$ ^* h& t8 l6 N9 t5 t8 x) h% i8 @ else {: O! D" M" f% I& _& K
restore , G& [& b( P3 W$ l
di "cannot find maxp"
7 f9 P- K3 M- ?0 S7 s
$ ^2 f6 }$ N# {" `0 {8 H 9 w5 l% a- B" Y* r2 Q0 L
sum dx2408 E6 Z8 z9 R( K
local tempmaxp=r(mean)
7 z) ~1 |1 {& J. ]2 W ) Z! O( s( Z7 A
}4 \3 R Q- A( u+ i( K
& `4 z$ _; _/ b0 M' ^6 i( R }5 \8 J4 C0 |/ Z: d4 B# h; R
) D1 H, I! W9 @1 }" ^; g else {
6 d# f8 m2 x4 I8 i/ }( [" M , c5 F6 C% J. F' A
keep if ddy240>=r(max)
' Y% i3 e4 O$ g0 ^
. B: f: _% h" A5 W- K* H sum dx240, u% X! z1 g$ e! \+ x& z3 G
) {, Q5 ?) d; s" a4 I! L
local tempmaxp=r(max)
- J0 Q0 s7 ~) w+ o( D& } restore 5 l9 W: u' K; L" u& H% T2 T
}
* C. t9 Q" D6 Y& J- w9 C, t
0 \8 d+ N b" N' M1 B' I/ p) a) J% ?8 b, r V) U( X l9 S
5 S) }, f. k- Q# e1 z5 [# C+ V
$ ~3 W: f: U; j; P
gen maxp=`tempmaxp' in 1
9 ^# Z* I7 V4 ~+ ^; @4 x ' d# ~8 v) ?" z& i0 P
*240maxp
: g+ y- y& y) K0 P % O1 g/ E2 ?8 q3 d1 `( [
/ `/ z" a5 m$ @; ^ X# w4 X
*-------------ddy240pminp左侧高峰值-----
; U9 V V) D' \' h- g+ }
# f; o% V+ b5 M! l preserve
, {, h' B ^% {- P8 G % `' Q8 {& t6 Z5 y8 [
keep if dx240<`tempminp'
) ?. A! b, h t/ K $ Y- [4 T* S: c! c1 r
keep if ddy240>0
" S: u0 i/ Z$ W1 N ) m, ]2 ^. @/ A7 \3 ]5 S
count
0 J5 K8 ^' n7 g/ m- D( F8 w6 d9 n# N
2 J7 o3 Z# F8 b M2 Q. T3 W if r(N)>2 {
1 P( a1 j, ^) r" A/ v0 i ; r' g4 @8 r) C+ W, `6 _% U, c
pkexamine dx240 ddy2409 d% E' n; Z2 Y( h3 `8 x8 [+ t
# x2 E; i3 l% K% ]% G6 c7 q local tempminphddy240=r(tomc)
2 v2 g! t: `- F5 U* }, z) j restore4 Y# q0 g4 a; t L( u+ U! e b
}( z9 {" z C* O! i
' S9 l+ B+ J! Q2 s else {
6 `; W; Z) [! l+ [# { restore
4 G J" f1 Z$ s3 u$ z di "cannot find pminphddy240"
- ~ l* ]2 p, \. R1 G8 F) I4 c " Z$ X0 H2 Q4 p" a
6 d Q3 l* f( u& j6 E8 s% y sum dx240
9 P* J1 P8 y% y- p+ r! D- p. H local tempminphddy240=r(mean) / V, Z7 k8 q. P
& G; J- W# Q& j) U8 D
7 |6 j3 p! j* k
}2 r9 l V1 r4 b6 c$ V
2 W5 ?; T$ a6 y( m/ u) x
. a2 V- {- i2 C; R* p1 B 8 p: l" a0 g+ ^3 |6 R
) Q8 J! @$ I% U# r8 \
9 Y9 Y+ [# q+ k- H6 l & O+ W# A5 T, U* ]. k% K
gen pminphddy240=`tempminphddy240' in 1
% A( Y( F, y3 v9 x% E3 H
* j( {* {! Z+ Z4 J% ]. N
# l1 [! F- @% ?! r. `& ?& ?8 T *-------------ddy240pminp右侧低峰值 -----------------" l- z9 j) f7 s& N& T
preserve
. h# s, R& d" c4 _+ B# I
, F; ?8 H2 L! m keep if dx240>`tempminp'3 K: V: q2 x n$ A% z* m# G
' O$ ?$ a0 L# j5 x0 g* ~3 V* q( |4 m
keep if dx240<`tempmaxp', p% r- e4 Y; [$ ~* L
0 w/ G% p" N3 x4 |, D* c
keep if ddy240<0( p+ c& S$ r- j1 E
- g$ H. s/ p* T# X7 I5 @ gen temddy240=-ddy240# H# E3 h) C& \/ N
- y$ U5 i6 \ z Z
count* w, f9 I. K4 f; Y, B4 w" F
1 P1 [% B) V7 T* j. a8 ~' K
if r(N)>2 {
# ^# i6 _* j- l# g0 A) }" J6 j & W. W N* g$ @. T' m) C# N
pkexamine dx240 temddy240. c& O# p3 T+ k' C9 ~
8 i: J$ K/ s6 j- v" C
local tempminplddy240=r(tomc)2 X/ O6 a5 i% G1 \
restore
; {* p' p: ~5 X }
5 A7 Q' f7 L9 I ' y" C' {" ]! ]
else {/ Z2 S" Q9 y: {
% M) |# | o- \
di "cannot find pminplddy240"2 K8 H, h; _7 v% ~! g
restore% ~7 m$ f$ J% W/ V' e6 a6 b' n
9 k6 S3 I8 U+ ^6 u sum dx2400 |# z f6 c( V$ v, C# k9 S7 z
local tempminplddy240=r(mean)
2 \ p+ C B/ D+ t% r
9 ?( F# f; L" C* U) ^
$ h5 r; j- l) h8 u }2 z8 |& X$ c, E8 r( n
0 l3 P# z( d$ m& a * w& i9 e. t6 K+ b1 n% q R
" a) Z5 M! o2 n9 z
( O' v( | Z2 e1 o& a8 z ! r+ e# c; l) s7 _* p
gen pminplddy240=`tempminplddy240' in 11 d/ ?- K* [! w2 V
$ Z+ j) S8 O5 m0 p7 a4 W1 ]* z *-------------ddy240pmaxp左侧高峰值 -------------------
0 `0 C+ x% Y9 z `5 j; z
# B* f( n' j4 [ preserve ) c* j' X$ @, B/ Q, u* |
8 J. j" H7 H( Y% j( \4 W& Y keep if dx240>`tempminp'
# B( w6 [! X) N5 f9 R/ c- t' Q7 B+ u
0 x3 r# \6 x9 a5 D keep if dx240<`tempmaxp'
2 t6 x, {& ]' T6 b2 v
) p& a! z7 R! G+ f+ c keep if ddy240>0
4 i$ x7 ^" ?1 C( X, Q4 d count
1 V: H7 k" z8 {
% ^; ^8 f8 i% E9 a$ B if r(N)>2 {' H0 r* Z$ m+ P( k3 l
" l/ `6 I# I) X
pkexamine dx240 ddy240( ^7 A3 h, ^6 p6 {5 v5 @, X# F
/ B E4 e( j% m( R6 F5 G( z local tempmaxphddy240=r(tomc)
9 o9 F* R# }1 ?! l! [
- S: b& G: V3 N+ J* A6 x" N restore
6 [( D9 S7 m1 a: F }
. ~ Y- Q* F; u. f% q . Q0 e; t7 N7 T1 I4 g) v2 |
else {! @- m' w5 u/ S v. U& _
" W% ~4 r$ k. b
di "cannot find pmaxphddy240"
6 S+ r5 g% [8 E% v( W restore
' X" x1 p7 p9 I. s
& v2 x# Z; a# u sum dx240* N0 Y v" t5 Y. E3 g
local tempmaxphddy240=r(mean) ( o! @) S+ h; X! {2 h& t# D* v* e' G3 i
' |9 ~ |( o6 z( D# a9 p
( I; h9 T/ w3 j o5 D1 I6 J
}7 n& y' ~+ h4 L4 y: T
. Q3 u4 A! b- E
p( W/ d$ Z- h7 k# h4 O 1 j$ ?" w& c5 H4 [
/ B' s. w R" }2 ?2 c+ g2 a
. G3 q. O) H0 T, }, Y, L$ q8 s. \ ) {, p( c7 p) j `( D4 l7 ]4 G
gen pmaxphddy240=`tempmaxphddy240' in 13 u. \3 t2 F8 P1 Y( e) O' y& D
+ `+ ]/ }$ q: }" b' ^
; {( x1 ~ I q6 Z3 K *-------------ddy240pmaxp右侧低峰值 -------------------8 x" V- h* X9 s$ D) [
9 Z6 t5 `- P. E" i4 K: C: W7 W) i preserve
" K5 G* |3 i" y( | 1 A! u% a" O/ G X1 X3 |1 t
keep if dx240>`tempmaxp'0 _9 v) Q+ M8 E) m1 C$ ~
; Q+ i! h E9 C5 X6 u& ^ gen temddy240=-ddy240% ^5 r& A5 Q' D! [+ V9 b& D+ B
: c1 K9 A$ J; S" |- ` keep if temddy240>09 J# ?+ S$ V: E& J# M l! D
% ]! Y6 }! S$ A% @% ?5 L count" p7 A @) X9 n! S7 i8 K4 }" K
2 J" V M8 r! G% a% D4 A8 `) A4 E
if r(N)>2 {
. s* N ~$ Z1 w' p 4 V6 P$ w# X) N* q. O
pkexamine dx240 temddy240! `# J" V' F- e% z$ a4 m" ?
1 U: l1 j0 ?- s, T r local tempmaxplddy240=r(tomc)
+ P( g @; p: a [6 A0 u# ? X, [ restore
5 m4 N' V- I+ ` }
3 T8 m0 E/ N! E ! u/ ]. y" M$ @5 d
else {
4 d6 e( `" O+ U! z/ _; L. G! J( S restore% `% G: p r; u0 B( G
di "cannot find pmaxlhddy240"& K) n& k4 i6 \
0 R v, {1 P: g$ E( G9 u2 H' h
7 y# A9 U4 H" M& f: J; `: E6 o4 C
sum dx240
, U2 k5 O# h% a5 E/ p2 }% v local tempmaxplddy240=r(mean) in 1
% W' ~0 g. |8 r8 l
/ Z3 C7 p" K! ~4 t) x
4 n7 {+ V) I: W) l$ H. }( e5 T( f3 r }# ?: m0 I, P( h: }6 x9 x1 g H
. n; h" I( a. Q2 [, u( g% Q + x0 P3 M" [2 w7 `6 j, A% [; p
4 Q, e& V4 r$ J0 a; w4 `' b
' x6 Z: X" F% h7 S+ T |$ O) U, m ' ` X6 k3 ]3 o" X( x
3 q5 w9 |! Q( V0 z+ X! v; j' U gen pmaxplddy240=`tempmaxphddy240' in 1; `- a; v3 f* z9 v3 g+ K
5 ^1 u- y5 L8 e7 T! D, Z+ R
*-------------------------------------6 E3 U- i: ?4 ?: S4 k7 Z" M
; \6 ]+ j% r: R" z gen price5d=v5 in 1/204 w5 Q6 E1 k3 s1 M+ T0 G3 A" M
: Q" a8 O- W2 w3 E
gen price5yy=_n in 1/20
! `- ~8 m5 A" e9 i" f
8 P% h% G6 E* L. s9 Z6 ^ gen price5y=price5yy*(dy240max-dy240min)/20
+ f! X6 {4 a6 j/ s2 ?. |- o5 V5 }
" v6 b* I ]' B2 U+ x- J$ V! e *price5y &price5d9 D7 E8 @3 { t. c' ^+ w
& l( U; h7 P) I9 U4 b' b- ^ gen priceny=price5y in 1
) [8 |$ H, r9 b% f- \7 m
3 e* ~% E9 d' R) l gen pricen=v5 in 1
2 f( \' k" O- _) O
3 ~- `7 ^# b( ?, Y9 d) u
7 l3 @! R. N/ `! m1 A *priceny &pricen
$ J8 N1 R2 E/ U " x& k$ x4 G! L" G3 a
& V2 j* T% [- W2 U9 X% A4 Z7 i
*-------------------------graph------------------* H2 u$ G$ O* \( P: P$ }
# X& Y) y$ ]# h9 L# r. o# _) J 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)
* p8 H- g7 Y1 y7 F+ v; h# c6 n$ T4 `. w
* ---------可选项目----------------------4 ^. J9 K) ?/ D' D# Z, X% P2 V9 s6 p
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))) B" G- o- x" _8 j
}" j- k, e( N$ l& W. i8 Y% W
end0 M- s! p% L2 i
|
|