|
maodeng 发表于 2013-1-28 13:13 . T0 \3 X* k& l5 k
. hello 300236
; i0 ^$ c4 s( D5 w/ O9 ?statement out of context/ u) U9 e% B& N# ^' i
r(119); / r5 I( G% `5 U h: G0 M6 [: G# e
抱歉,最近太忙了
( c9 k, R* \ h1 [% M; c
, F6 f7 V) r% j+ v300236 我用下面的程序试过,没问题6 L/ K( A; L4 N; R, c1 N; j: I
0 R& w) u$ A/ R }% i& k; S
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试# z. T9 i ~; b* t" s
0 w H/ K. i5 p9 B5 K+ c. xcapture program drop hello8 _! w0 t3 E% C/ R% T# l# H- }
" H/ C- ]% X* @8 ~8 p( Eprogram hello$ b b9 b5 B3 g$ }
W& o8 A. W" @4 O* @0 i* I! \
quietly {+ x J7 V. o$ _/ r, ^9 c, ^9 `
8 `7 P3 i6 X g% B
clear
7 v; O/ _0 ~6 c7 S8 C( s1 E7 _# d- l3 i$ M% l; {) K, m
cd D:\stock\test\source
' Z2 k5 g9 ` i% J( _' y$ y$ |; h% u [% j2 K* |4 m
insheet using `1'.txt
! V, @7 V0 u. ^3 U4 D" {5 I( K: t4 Y- @
keep if v5>07 i; w( D: j$ S9 i- O& z' \! F
* E& X0 ~: I, N0 Y) i/ @! e gen vt=_n
& V/ x6 h2 K% c) P
6 |% {: c# O" X# Y0 R tsset vt ]; Q- N5 W* h6 g
2 O& i7 @. @( r) ~ gen zf=D1.v53 @7 y& l+ H5 g. K+ N
0 J. F1 b+ ~, }( t gsort -v1
" [2 [6 y4 J/ k3 V% n" T& y# P4 {( Y; K# d6 y! v
gen avol=v7/v5 g6 _* @( o9 _
. S8 [9 w$ j! h4 d, Q
keep if avol>08 L( ?, ]+ I" _ n3 g( @% C3 l
- h' r6 k% P+ v; B
drop vt( C# J E# U/ I
/ e% S2 z( H" o4 v gen vt=_n/ a4 R2 ^( g+ v# e* {' G4 m
+ E) V' z. I6 a0 w tsset vt
- Z% Z, Z/ _& \3 k3 c2 n 6 u- h j6 w# W/ e0 ]
sum v5 [aw =avol]
0 z) J/ Z4 c% f% s1 F
6 p: ?$ E1 k2 @. ?2 Y+ y gen amean=r(mean) in 16 J: V/ {3 H; P) R( G
5 b" S% ?5 x( }# U0 c# l * 总加权平均值 amean# K& m6 ]/ u) P
3 u( j! h" I8 s( g* _
2 @ E/ {, d8 p% t9 i keep in 1/240* L- F4 `$ m7 ^ @) f
& E2 L/ q& ~/ a2 ~8 Q) a
sum v5 [aw =avol]
3 J; Y$ W: x; Q( Q5 ~* N" V( U9 S( b. e# V" H" p
gen mean240=r(mean) in 1
0 r" r8 D! ]: J% h 7 P* v" f: N& K, P% a* ~; N
*240加权平均值 mean240. Q5 d+ }3 O( g% Z; q
4 i0 t, K: V1 { set obs 500
" t! y& y9 t# k) ]8 @" X 6 u0 B& b1 o0 L) k& W
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
7 o+ I( E2 v" C" _
" ] Y- x: j! f0 c+ X1 r& W *240 kdensity(dx240 dy240)
& C6 {5 l0 [5 p
. Q- K7 w( D* }# l9 Z$ c sum dy240 ~, d& z0 j% }
+ q9 P5 \+ F ~! K
gen yxis=r(max) in 1) U4 j1 D" E$ ?% _9 B& i1 {
, [6 {7 i. i6 d8 @% l* E7 X gen yxis2=yxis/2* [6 ~' \. b, z! F
+ ]. [: f6 F6 d1 | a$ E *yxis
) [% N( ~: P, ?( _; \
% n! W# W! J# e9 b/ C& p; B9 n& I gen dy240max=r(max)
% ?/ f5 x: h1 G1 ^, Z- z
% x4 Y$ i/ j7 J; A gen dy240minp=r(min)
: a2 H- R' Q2 Q
7 |' u. G: y" B( y1 x* { gen vtt=_n& m$ k$ u% \7 p; m0 k; G- |/ k' ?
8 \7 }/ V6 o# k/ D tsset vtt
. a+ U" \, q+ j0 l1 y! `
) p9 \3 T) a0 e7 K7 _- S5 s, l gen ddy240=D1.dy240/D1.dx2408 G5 A8 v% v/ `2 J$ X0 S
) g' H0 B* r% N8 I* p+ l# `% V% D sum ddy240
/ N A, g) u3 w9 P
5 L7 c1 H5 F0 `3 b4 g gen ddy240max=r(max)1 D# z; L% S. z. r) I
: w' c( }/ W- }1 ?! f3 L gen ddy240min=r(min)
e5 m$ o- @$ X% V ] " B' f' x) s/ Z6 _; U
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
; O& Z% A+ @% }/ i0 N1 M & M: u/ y( y) [* V# P1 h0 A# _4 q9 e
sum ddy240g
8 W, y) a, Z" @* ?2 O / L9 g% U% V4 R0 h
gen yxis3=r(min) in 1
9 X" B. G4 c. [! n5 U" c
0 R, K6 u9 C, \4 @ gen yxis4=0 in 1
! n* A6 x& C T
) h/ r. R" a! ~/ a *ddy240g 3 H7 a9 i- v: H. d8 ?: z
+ W4 N6 w( ?2 [% Y
! t; A' M) S# H7 [/ H preserve $ t5 d: |- t7 i6 ^ z; b
$ u$ A6 W( [$ m! d) Q! K- M0 W sum v5 [aw =avol]
- X3 u1 Y. X/ ^ 1 r* n6 R6 m: y5 j
keep if dx240<r(mean)/ d' x( i, |! [% w. `; @
1 H( \9 p* @+ j
sum ddy240
+ o5 g" l0 i- `- @
! v6 K3 g) V! Z2 r. u if r(min)<0 {
- L' G3 U Q L( ~
. V' {! Q2 I# `6 G( f keep if ddy240<=0
( X& C. z* K1 \" w1 [
) j. K4 q( s$ [8 u( _* v count
, e6 X# h$ Q) w8 h6 y4 d6 m
& F$ w+ z+ F" X if r(N)>2 {1 S0 ]5 G( x' ^/ W- `. t
1 p; s! Y% B. y3 d& V pkexamine dx240 dy240
" Z3 t0 r1 W( n7 m- h / O4 z" e, H- l! @+ _+ t/ g
local tempminp=r(tomc)
$ ]7 L3 T; G! {' R8 o7 g9 X restore 9 h8 _8 b) s) ]
}" w2 N. n. N: O( U% @
7 B' A0 H9 D; g7 J! m9 ^
else {
0 f4 e/ s" b% |) Y" s# K
6 Z5 b4 ^" [ r* A5 ]% V1 d di "cannot find minp"3 T- p8 M' N6 K' p- G
3 X4 X' _% Q: @6 a
restore
- ~) C @# h/ Y8 s sum dx240
7 G2 e+ z4 V. H7 } local tempminp=r(mean)
2 g* L3 p. w* ]1 ^9 B. e
7 f. e5 q% k1 M }* L* _* V3 B0 M
}1 y. ?6 p; S+ y* j. A% E
else {: Z4 h& L! H! w' }4 K8 n
* X) g5 C# r9 j) p2 z6 H$ d keep if ddy240<=r(min)5 K+ O9 n6 x( ^$ z
; S% o, z$ _7 c' o9 C7 l sum dx240: P5 I& ~' L; a; W1 ]+ u
) `+ J3 z m! D& W: Y4 J3 D- F% ]
local tempminp=r(min)2 X6 \: Q0 ^; |2 t7 k2 R
restore 5 x( L" b5 Q, p
}4 i9 J8 F+ n" F9 k
$ W# r5 K: z. e' ]
: {0 `* Y! }% l
4 g; B' }- p7 t5 w$ W1 f4 w gen minp=`tempminp' in 17 j5 x# J4 H6 g3 B6 _
*240 minp
, d- x* s \6 ^* G. G1 V1 }# ~- C) n" N
; I/ J* [: y- t- y# Q3 |( O
7 [! h8 B! z8 ^$ ^ preserve
9 c4 u' A' `9 G; r" A 7 [( o9 V: @+ v* F0 _
sum v5 [aw =avol]7 T- w! E1 P8 k$ ?6 P
# t8 d* m4 S% L% N! s. v5 I2 v/ T5 H
keep if dx240>r(mean)
6 I; [8 ?, U* z* m
/ y" W) _" J/ \: V2 r. N$ B6 P5 c" g sum ddy240
$ w" F& m, J4 A 9 Y5 C: h! D8 W. x9 K4 B* C; M
if r(max)>0 {
8 u) f+ U; o5 p' E5 C7 ~
* i1 Q1 S9 H5 \ X) \1 }) u# v keep if ddy240>=0
: j2 G y* k% U: }8 i 5 ?1 r) P" ]4 q
count
! z" C$ G0 }2 g
+ P5 [' b# m& X8 y% Y% K if r(N)>2 {
0 i4 u9 F+ M: U u. T7 J 1 ~$ e) m( V* R3 D1 D# C, r# L) P
pkexamine dx240 dy240" M/ Z$ `" g! j& F, d$ ^4 v) P
" l/ @, W ?; }$ P7 f5 K" D. e
local tempmaxp=r(tomc) * h* K8 S) @1 L- m2 {
restore ; o- g( H! H4 x! I/ M
}# M" h$ }# L N- d& d
6 o' Y+ x4 [0 T2 D& e7 S! L% d
3 p- X% ^' @3 Q% J4 i8 u2 p5 O else {
6 p% a6 M) Q5 B7 D2 h- l( J' T5 n4 x3 @ restore
6 [: v' n" }3 i5 J- e% P di "cannot find maxp"( ~$ ~$ x8 m( T) [% b
+ I/ [8 b' t/ X6 W+ O' o7 }- A
2 }2 G$ R* A9 x, T4 H
sum dx240. t! O: d! l' K( a3 z, I6 x
local tempmaxp=r(mean)
& X( S2 q: @8 O
- K; `, b0 Q7 D! C. d/ z }2 }1 k x9 b" u4 U
, B1 S7 P5 _- g9 I
}
( i/ l2 M6 P! y9 {! l 9 Y/ B' A* g/ l Q9 `
else {
, G: B) ^( F, T2 q0 J 0 \3 v$ B, ]: _. i
keep if ddy240>=r(max)
8 F$ G& x5 I1 m* Z3 J) r% D % ^! W, ?: ?0 P0 t6 I8 d2 D) Q
sum dx240' Q b3 K @% N& t) {( c6 M$ w
) F1 n3 w$ m* ^- m( \9 J local tempmaxp=r(max) % v, F1 V8 I' b
restore 4 d+ m. X3 M: o3 U7 P
}1 R+ o3 Q6 Z0 z+ }! Z
C3 U+ |/ o$ B& _1 e, e
* U! h1 W& L1 E$ L
- z, ^+ P$ v4 h" X3 s
a% a o( z3 I" e6 Q gen maxp=`tempmaxp' in 1% K: R! C3 \; z8 @( Z
0 u8 T; ~& u9 {% q *240maxp
" u8 u% f8 B! G3 Z( Q
- c+ h2 M+ E+ f3 b, o4 M5 K3 s* r. T % |, o, Z+ B! i7 E2 B
*-------------ddy240pminp左侧高峰值-----+ Q0 a- _( q) K2 Q* A2 [
4 g/ ^4 r/ O" c2 W& B
preserve
+ L- j- w8 u( Z0 N0 O 4 I# z5 E% o ~3 \5 {
keep if dx240<`tempminp'+ y+ A/ \5 }2 i: O, s5 H. N
d5 X2 |/ m2 d! g3 n. U keep if ddy240>0
+ L$ I: X# j5 H; C; k
1 G; s ~$ ~9 b( l x; r count- z1 V' f9 w% }3 w
/ \6 L9 u) y$ B7 i* N8 e
if r(N)>2 {
! A; ]4 U, F* G6 C. e
0 B, e9 I- t# e pkexamine dx240 ddy240
2 ^: o+ `, y, d( A! k
2 ] Z" H P8 y local tempminphddy240=r(tomc) ) a+ E4 k$ H1 D$ \" E- k+ N6 o5 Y
restore
6 ]; v& y* t, i% x# \' U! T4 A }
/ b+ e$ T8 |. A
& c( Y5 A8 c" [5 b& p else {
# M4 S" _0 z5 L( n5 y- r# p: T restore
/ s9 y' N4 R# M. G% ?" V9 q7 [: Y di "cannot find pminphddy240"
1 H9 H0 r2 @, V% y ( V, J) e" L) n# D. J
- z5 Q# ^* ?1 ^, ^+ C h sum dx240
: A: f# J6 D# y, e) G8 t# l local tempminphddy240=r(mean)
/ B+ {- @6 e3 {2 ~ & T. l x4 `( a1 H0 T6 V% Q/ g
8 t# K& W% H( l- h. [
}
q0 w* H+ b7 [" S
* w {5 G9 B+ q# c! Z % R" M+ F; ^% T5 @; k3 E; k. P
/ A5 v# _4 h* _( o6 X6 T- Y) u! | 0 x5 ~: d! [8 e3 ]3 u$ c5 M
1 c+ V, y9 c' y* t* d. W; `
: S/ |$ b) n' [, }4 t# w8 w/ O gen pminphddy240=`tempminphddy240' in 1
3 ]( _- { f, ?6 A+ e : P; H0 F, M9 \# b3 d
( @/ L2 z3 h1 B @
*-------------ddy240pminp右侧低峰值 -----------------" G4 x; x! o! m6 w7 I. C7 E
preserve
& r( F9 I5 b+ [! K0 D+ X
* D% v6 r( j4 I$ ^) w keep if dx240>`tempminp'
5 F* ^- U- s* v% N" Q. t" J
0 l/ ]3 f0 q. A0 v0 }- d" ~ keep if dx240<`tempmaxp'
# v/ t" r& i3 b! _4 W3 m* {# L4 {
( D) {* R# F8 G. B, i* ^ keep if ddy240<0. E$ V4 C+ A/ T
4 f- C% u, l9 A. w+ N( T gen temddy240=-ddy2407 }5 A" y: H2 k0 w0 q
. ]; \7 H; r* H3 t count( l# ?& z" t. w& y1 z8 ~
4 Y8 ?7 y+ z! A0 F9 m! f if r(N)>2 {
, x+ {% Z0 }2 @) C 3 P Z" a* U1 \+ H3 `& u# Y
pkexamine dx240 temddy240
* _! A) K* ^' }" \6 E; ?' l
" I+ x) ^8 _3 {) Q local tempminplddy240=r(tomc)
# Y( G7 v: Q, Y5 R; ~4 N3 a0 W restore
9 l3 f/ g+ j. F! [( b. G }
2 V3 ~& h: _, ]7 p5 I* I: N* f: I ; d1 Q, g% [ Q
else {; p6 _% s, _0 s% B( R. D9 `, T
5 f5 h# L* a7 C di "cannot find pminplddy240". j! r2 y/ |5 L: Z- D
restore3 H0 A* m! p5 D/ T; c+ @. B9 R% ?
$ F# K2 }% x4 }- h sum dx2407 m$ i9 ?: q4 B P
local tempminplddy240=r(mean)
! t: _7 D9 A4 N1 g7 W
0 \4 E i; x# K P! Q0 v
" ]% H' k, z" t6 h* m3 E3 n; F# Y }' {* f% j- D) U. o8 L
( e( i2 w* C* G1 q3 W7 ~. j
5 r- J/ I& o+ v& ]7 g z* M. p+ T. C# N2 z* q+ y# |
$ v# {/ W9 Y4 L) m4 y
8 v/ B( a% L. k" {# r gen pminplddy240=`tempminplddy240' in 1
/ `% Q/ p! O4 O3 B 1 A! g1 q/ }* Z% j8 X4 E. o% V
*-------------ddy240pmaxp左侧高峰值 -------------------- b+ |5 ?5 E0 n X" E( G+ z" z
; B5 t0 k( a8 A preserve
$ l) t% F. p* `5 p1 b+ ^8 v
, X9 d) j/ R" w8 }' K! F7 i. T keep if dx240>`tempminp'. Q v# ^* z4 [, s L& j
/ i" I N* g: L
keep if dx240<`tempmaxp'
( Q* {+ T/ ?+ D: \ m- l R
1 F8 r" D/ ^4 ^' n' M keep if ddy240>0
, l Q- H: z8 w1 {2 o count9 T! y! a: c' e
; R5 `8 r1 W0 m Z, m; t: t7 Q5 w0 M if r(N)>2 {
7 [/ u- D* F0 C/ d0 `$ A! {$ s
- N: \5 `; e( Z9 n+ u" Z$ r) o0 r pkexamine dx240 ddy240
/ @8 B6 Z% b0 `1 j
; L. j. ]3 B0 l# Z! r Q2 ] local tempmaxphddy240=r(tomc)
% a: k2 ~7 g0 a
4 R* a5 R+ f8 r4 y# F! u9 n$ V; I K restore/ q+ E$ r& A; |$ Y
}
: p( u4 a; {) z$ ?. S- k* G
& J$ e$ d0 B% E7 {: Y. w& M7 U1 r else {
t4 J0 ]: { V& ~. M M% A
" K- ~+ o/ v7 g {3 Y+ Y% q- c di "cannot find pmaxphddy240". ?+ H2 n, J0 E1 y/ T1 r) @# L
restore
f) O0 l3 o" J1 I
& s j- c0 i1 G2 n% k sum dx240& B5 H U- C3 Q& i
local tempmaxphddy240=r(mean) ! [9 Q9 P" {/ T
9 F8 N6 l E- @9 ]8 I& m& T! `9 @ 3 w! E) @; x/ q
}* V& g& y6 _' e: T ^- O
! G0 T5 p7 I5 l" k1 s# X
) I' Z- f$ Z7 r; G0 I 5 W# W, ^- z1 b3 n
) d. G1 @# ~! A0 m% m4 N' ~, p
% [% o- V N6 \
6 Z+ m" i9 L @ gen pmaxphddy240=`tempmaxphddy240' in 1! W- T* Y" y& N
0 R" N( M+ x+ K: Q
; c, `3 @! f% K4 ] *-------------ddy240pmaxp右侧低峰值 -------------------
) @5 e# }0 g. f! R" ]' s4 S
$ @7 e' V3 ~% M$ e preserve
U6 d2 ~0 g& e4 d8 K
$ H# Z* w' O# Z& O/ _! ~; Q) G, T1 O5 m keep if dx240>`tempmaxp'; ~: ~ P1 x- ~- s$ `) m
7 F7 Q" Z- p; |" h3 u: _3 @1 x- J gen temddy240=-ddy240
0 C* t: ?: \; Z/ r8 z# j
7 @+ S9 i- I5 ?0 ?( i keep if temddy240>0
5 ^0 d2 B* G* } I( t3 E, w 1 O3 o: w( G% U. `3 a$ _4 k
count
- y, L5 Y% e+ x2 G: E" b9 s% o 4 g* Z. z' z0 w7 L( U4 G) C% G P
if r(N)>2 {0 w* c1 n' m6 H3 @
$ W/ ^) C: f5 E/ a
pkexamine dx240 temddy240
R$ X& q" \/ f N
; `& D7 g4 k3 Y/ I+ |( x: G local tempmaxplddy240=r(tomc) $ L/ u+ k8 [* o2 K( O- C
restore6 p' i2 {/ E+ O/ G6 `* W
}" ?: d7 |1 ]$ u7 f% A
% a- R& e8 D; B7 w else {# R4 k6 V) X) j. N
restore# E" y' o% S; X) a; c6 z
di "cannot find pmaxlhddy240"
+ N1 y( w: C7 z# ^1 h" v6 [' Y : I* y* J' ]7 g; ^, W5 Z0 x% a7 U
9 b) E* ]' U4 y4 j! k4 a4 T sum dx240
" ~& F- g( v6 H6 l1 _ W local tempmaxplddy240=r(mean) in 1! Z4 q, Q, w' M! O. ^+ T+ `
7 i% n1 R" n+ Y9 S8 u- V1 k; b
# T6 V1 {5 W! M; t }+ c3 v+ u5 N5 a) |- B- x' o0 p8 R" t
C& t+ B/ |& s$ x& j5 L
7 Y) o1 K* G, `% ` 5 i) V; ]5 D7 F" d6 f2 u( ]
s1 J; p. a% w, |
! D" t+ ^/ x( x( I2 l {
! q1 {# w! }2 h" L; s gen pmaxplddy240=`tempmaxphddy240' in 1' d3 n" l0 @) f
0 R% c3 Q, W2 E K$ M9 S
*-------------------------------------
|# Z- C# P! r6 U; y m. x- c: K 1 O/ {- l* R) G6 K. _, i6 v/ S
gen price5d=v5 in 1/20
/ }. j" [' N1 w0 C% E ! o) `9 J+ G% ~7 i' H, `
gen price5yy=_n in 1/20
! d& I7 \& L; l( C& X+ o4 q8 C # C; d$ A* U9 R' b
gen price5y=price5yy*(dy240max-dy240min)/20
" [) h6 z+ n; b, k9 @- b ( e* i1 E9 k8 {- Y. w# t2 q
*price5y &price5d4 m! ]) W3 x; t9 H& n
, J8 w& \, a* H. i gen priceny=price5y in 1
) S0 ~" |1 W7 i6 \5 {3 i % c6 e) B- A4 p5 T9 \
gen pricen=v5 in 1
7 I m: |& M1 m. V# k. X/ B5 L
, [4 ?% e/ W( t5 r) q7 M 5 |5 L5 d T, T( `7 W2 m8 c2 B: {
*priceny &pricen% l: y! ]4 b% X
, Y6 e ~ N7 C
2 G3 d5 v: H1 b$ o8 u6 @0 e *-------------------------graph------------------
$ N. @7 t% u/ p( R' V 7 `9 j. Q7 Q) b) I
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)
/ U! n3 D W$ Q S% E- _
- ]4 ^' @) {# E* ---------可选项目----------------------: x7 ~$ I$ _: n/ M5 L
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
% e/ |% h) m9 i! V3 M* g} N, b: }. m9 b
end
8 D) Y4 @6 _8 i4 Q$ A7 B" v |
|