|
|
maodeng 发表于 2013-1-28 13:13 ![]()
# \# S& p. p' O; h5 c4 f. r. hello 300236
' F% c1 n' P, V7 Vstatement out of context
7 G1 i4 {* k) n9 W8 D% C* J, ~6 Rr(119); " j3 u) r) n9 `# e" L4 E, ^
抱歉,最近太忙了! G3 l I4 `* J' H5 Z
+ E3 P) K& R, x300236 我用下面的程序试过,没问题; j0 Q" Q# W: U
4 d' B$ J7 E- O/ ~/ i) B i你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
2 G3 h7 H3 N2 G% D8 ?2 Q9 \1 b v9 J5 w) Y
capture program drop hello2 z' f+ \9 P1 Z5 t6 }
% s9 P( d ]* g" bprogram hello
# M* q. y/ O. e2 m' ]5 w4 c X) c2 T* \" J4 B
quietly {8 @% x( e3 h/ U3 |) d; ]
, ]9 g: L+ B9 n- {% h$ ~& y, e a
clear
3 q% \* L7 D+ t, t3 i0 k& u1 d) P& {
8 ?7 a5 F5 D3 ?8 H0 _cd D:\stock\test\source
% F4 k& z' W1 A. P$ |2 \, y" S
6 K0 o, z/ Q) L; finsheet using `1'.txt% \5 d _# L: v {4 D
! F* {5 q& h6 ~; y0 l0 V3 ~: i keep if v5>0. V0 M; w4 u8 y$ n% `6 g; ?, \
" Q5 ?$ E8 V( \& L; a0 ^) V gen vt=_n& Y5 c3 ]8 j/ F7 l
+ U4 d# k1 p5 w7 U1 \+ R/ A! x
tsset vt
, |& O2 s& t' N0 q
l* `6 y. j" Y gen zf=D1.v5) x* j: f. f% h8 V
9 @' [! i& M: S$ C
gsort -v1. k8 Y: G; p$ z* Q4 M0 {
# \8 l& `5 e: D5 x7 d gen avol=v7/v5( J* N9 x) ?. \/ X
" i; v$ _. P* H' D0 P
keep if avol>0/ d" _) B8 r- w3 Q. e0 b. o/ j
, @% N, L! U0 t drop vt
; V1 I6 l! i6 w! c3 T g" t . P9 N2 k% @' _8 t; H3 y/ G6 g. _
gen vt=_n
' x* ]# {- e3 b- l. `" Q& k
7 a: s% C/ W/ P0 q# G tsset vt
: ]# u" b' w, V4 P) v 0 h2 b( t/ q' e
sum v5 [aw =avol]" B" j7 l8 o# i, ]9 Y1 \
+ ^9 g$ V) G! e; Q
gen amean=r(mean) in 14 H$ [4 Q% ]$ K% A: x
8 Y% q5 w8 M) r |8 h4 J4 A
* 总加权平均值 amean
" q7 q( O: n, V3 |# g6 S: \7 V
% j; Q" A) Y1 O, l! w& h3 l 2 k6 F0 |! @0 E5 N$ G: l2 h8 t
keep in 1/240
; a- X- H' I# Y3 z3 b, T
9 O5 M) _, I: v0 @( f7 @8 K. G sum v5 [aw =avol]/ v B+ I$ _3 u6 w: {& N
3 r2 d/ M0 h5 L gen mean240=r(mean) in 18 {4 D% z, [; b5 G- q- b% s9 E
* |" q% \3 c1 I *240加权平均值 mean240
) y a1 D7 u5 c/ T
$ z7 j# n" w" E; b D set obs 500
7 g2 {% B# ~; j/ y, l
# j8 q' l B: m; z* M u9 U+ n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
/ |. ^. f5 z o' j ' o) ]) ]+ l8 [
*240 kdensity(dx240 dy240)
; J3 M% K0 x, R
z2 Q* h% Z2 i6 ~& k$ o sum dy240
4 d9 p: h% |! e5 K6 W# F: q5 L - H) \( K7 ~5 S6 r3 _
gen yxis=r(max) in 15 i+ L& j9 C4 B5 v9 A
3 H1 U: j9 V% R; f! m( H gen yxis2=yxis/2
5 s; n3 ?" D, E ( d, u( g6 @" v$ B# v/ R
*yxis
. d2 W) x& \/ n x n2 U! c4 B% ?
T7 q9 c! l* K" u* t: m% `1 l gen dy240max=r(max)8 J/ u5 B+ l# K. z6 Y
% ~ c7 G* q3 A8 I( y gen dy240minp=r(min)3 o' s L8 p7 f& C& Q# E- T
7 z) b* @5 d$ R' Q$ L( G. I gen vtt=_n
- _: f( c5 P V' Z; f& s% I' _
$ f- R) J* ~8 M# C3 r: m5 b tsset vtt1 o) o; Q; a0 w
1 Z( L; L5 `1 j gen ddy240=D1.dy240/D1.dx240
: U* N6 l5 l9 B% H& m / H' b$ Y* n" ^, a* f
sum ddy240
+ G5 O5 P- ^) y9 J, k: V 0 c+ a" w H# N5 W! a3 f
gen ddy240max=r(max): e% ^. t. c. y' C
0 n! i: C5 K8 ~ gen ddy240min=r(min)) I$ g( n9 E# R3 k: w
) V7 O/ V: L# Y& d) c
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- N9 d: |7 L, Q, W
8 m: `/ z( q0 p sum ddy240g
0 w5 X3 w3 J. M( K, H8 J( ~. I
- J F8 ]7 t# N gen yxis3=r(min) in 1
! K3 h# o+ f6 @, P- T5 {
* }; O5 b) K7 ]% x }5 M% W gen yxis4=0 in 1
1 ?+ O5 I8 R- r7 B* E 4 e* ?! ]6 n) r( d( P
*ddy240g
2 f4 Q7 p9 Y' `4 }. \9 v 3 ` e: A7 \3 c% X; @+ t4 {- d
? b9 B& V8 F3 u" u6 }& \ preserve
) |8 ]7 [0 K `
6 l+ X% v3 h2 ^+ D2 B sum v5 [aw =avol]& Y. l9 h; w+ q" f' @5 n' _
7 ~+ t5 g& J* w% E
keep if dx240<r(mean)
0 c4 v4 A# l2 \$ O
( A1 M6 X7 v+ | sum ddy240( S; U, S1 ^. E3 R+ ?
) B6 b7 @ g5 R! {7 m Q6 [) x/ l [ if r(min)<0 {
$ ~8 Y- E& ^6 [8 r
7 g" `! q m+ K& f# i' Q. x6 ] keep if ddy240<=01 E( s1 R, m) P9 V
) d( `2 |* X9 D- P/ v5 y
count% w$ E0 W3 F! I% R' k! Z7 q
. K( z2 j- x( q; | V# T- O6 V" }
if r(N)>2 {6 Y1 I/ c: Z0 W) x+ `5 i0 G
/ X% _& `0 m/ u$ ^. Y: b. Z
pkexamine dx240 dy240
" A1 ?5 ^$ i& Y
# J+ O- x! i" e local tempminp=r(tomc)
1 s. I$ z) r' C, f! ~& h restore
2 Q$ k- q8 t0 P q5 F }
& g* q6 W8 E; t6 L* x8 S% g 0 `8 Z! @. D% B& W
else {
9 i; G3 a4 W, w 9 Q* n, \& N% n5 e/ T' D
di "cannot find minp"
! P0 Z5 k7 Y/ w$ |' Z0 U/ R
- t/ \. u% }. f7 s: f restore
. G2 n6 ~) I: w' V2 n& ~9 M6 O sum dx240
' }" D$ d' Q6 }! ~. V+ G0 U local tempminp=r(mean) _) ?. D6 ?' W- U4 I( e
: P4 p, T& w! u Q
}
# ~# s, S" D4 P0 F }
" z# R0 J9 C1 _: L; R- c else {8 L; z' s! g+ ]) m4 ~
6 @% I. U' f" W6 X
keep if ddy240<=r(min)
. ^: {/ `' h: O ; q% u' u% N/ A& n& b
sum dx240, t. f3 W* C, m$ C
; l/ m. d" i3 P5 A, G' o' C local tempminp=r(min). r1 G# f" F2 H7 q
restore
- E/ m+ K( p+ X; |7 k2 G. F }
3 {0 I8 p- q6 _" Y$ \3 z) o: I/ e" P" @2 J, @
: q3 D$ k9 W0 T
8 w2 X' Q* `& q; l; `. y+ K gen minp=`tempminp' in 11 I" M; F" Y, o8 r& x+ ^$ O
*240 minp
) r/ a' Z2 X0 w- B
( b% {: J' @2 I8 ^, x, b J7 o- |
* I2 t7 l g% I( x$ V3 B
" X! \- m$ }/ D) {# n- r preserve
/ r& Q, ~$ @9 @/ S 2 B# r; B7 D* O9 z9 u- _
sum v5 [aw =avol]
5 r1 q4 ?/ O* \8 ~$ K
`7 x) R# q' ~2 P% M* M; W* j keep if dx240>r(mean)! o5 q+ g; ?" ^8 H- |
! J0 y& r- D% }/ W6 T. y sum ddy240) m% _8 p4 i9 J) [
3 U4 B7 x! f; _, V k$ m
if r(max)>0 {
) q5 F' u3 ~0 \/ @5 e. e0 L, } # K& _) R+ A# ?6 @$ S* t
keep if ddy240>=0. q5 E. K) [& q& ]1 b5 I4 n# Z2 b- N
7 f' U- g9 l6 z5 d9 o/ t' J count
6 X$ Q7 c- \+ ?$ Q q 7 l5 V1 f, u/ Q& T5 x0 o
if r(N)>2 {* n* K8 c/ K4 e+ t- b) H- x
; W# J. _9 b% T+ J# o pkexamine dx240 dy240' n! p: w) Z5 Y; l' N
2 u( |9 f* e# E k8 \5 N' j* z' p: b
local tempmaxp=r(tomc) 6 d& V. Z a$ S6 N L/ N- |; ^5 s
restore * `& X/ z* I* R4 V6 Y3 r3 b
}9 l1 ~7 K# e" B" M. W1 }4 o
; w9 \: _+ X) ?- Y3 I; A
" x! A, K9 G+ M; S5 {2 D
else {
% }, M# r1 [ s+ k& b: X restore # C K2 @# {6 C
di "cannot find maxp"8 l- M4 N- m$ k" M* z0 d) f
' j. w5 u7 B9 X3 P4 u ]0 J6 Z
. k5 c- `3 x( K- _9 j! e) ~ sum dx240
+ b* X5 w' N; o1 O3 X. g4 F local tempmaxp=r(mean)1 L6 q- y; a8 @0 \
; \0 J6 i) Y. j- M0 w& l }( S8 P# [$ E- ^2 y# J
* O& \. j0 S( p" H: ?0 `
}
; I5 C! `" j& U6 R2 w% k2 {4 g& c
" E+ L" ^ }1 E. q+ Z4 k% n3 h6 e else {
8 r- L# Z5 U# c- J( ] ) E$ [9 z% _! \, w
keep if ddy240>=r(max)
: F1 u3 Q! @5 y* c % q. e+ P8 X% v9 Q! O" D0 h+ q
sum dx240 @& C6 l4 W0 l$ |+ l
2 Y; h1 c, b7 h5 ?/ G. v
local tempmaxp=r(max) . T$ D2 ~. A4 x% f! e
restore
8 d" D4 \% A6 u' l# ?) w# B }
& V- S" w) ]" y$ e / z' g3 P" T9 U4 N
# f# f B# [3 q2 P4 [6 ` & q0 ~; n# B' P3 b1 P# o, ~$ G5 r
$ L/ ~6 }$ t' L9 m gen maxp=`tempmaxp' in 1
, \2 j* s6 @/ u' [
, a2 A* u8 I' ~ *240maxp: ?/ V" u" ]! a2 d; ?
' O4 e q8 n: Y" `5 D7 E
6 x9 R' d/ s$ E7 g. H; G
*-------------ddy240pminp左侧高峰值-----7 R5 a- u7 N* }' e
: w, U; G" y+ `* P- ~1 C4 {
preserve + Y2 M! B3 g* J+ u: z/ c
6 r3 |: z1 @0 S2 r; x! `
keep if dx240<`tempminp'
9 n# F; Q7 w- v% Y9 g- L0 G2 { / E# |, R" J! m' M B
keep if ddy240>0' T K- K6 E: O( {; H. W! s
/ {6 T" a$ h. d: I
count9 O- g9 [0 k3 `. ~# }5 ^
5 Z( C: |3 ?1 U, H8 {) z
if r(N)>2 {# O) t$ G0 e, v1 D0 D
- o1 D4 z; G; o* _7 a pkexamine dx240 ddy240
0 V9 h! |+ G% d' u3 K' n
7 _4 B1 V0 p6 C" j1 w# S local tempminphddy240=r(tomc) 9 O8 S+ M* ?1 i- b- c5 G" s; ?
restore
J1 w+ R6 V, R }9 _9 \7 n. x( z6 d3 E" ?) O
, c3 n. _5 K7 s/ @' G2 b
else {. a" _5 o9 m" J. t) Q. l* c
restore
( R3 T& N! L7 o2 _. F5 w1 H di "cannot find pminphddy240"
$ X) `" H- ^4 O8 n+ T. e7 e1 I 4 t( Z# j7 P. @6 Y5 n$ _$ _
- @" ]. D+ X0 _/ }
sum dx240
5 U+ E* n2 r6 ]3 v) A% y/ _% G7 z local tempminphddy240=r(mean) " }7 R0 E, `0 y; ^
0 b% D4 G. X& ? Z9 }* k* ~& w' H9 E
9 t% G7 e. b3 L* x' O, y6 @9 q }
' b* l5 P" I8 ~( H9 Y% w _ , X" r4 }7 t+ h8 l& s/ H
: |% V% F1 Z$ g+ Y- y- @( Q+ m/ V0 a
" l* _! ?+ _9 B/ R8 q7 P
/ _# t% p# R8 e, f% k
9 N- r; {( g: i) {4 [) P
' _0 e# J/ F4 q& c gen pminphddy240=`tempminphddy240' in 1% U/ D9 y6 g) F! t9 u4 W' K
2 i' d) `2 j1 x
N3 L6 o- E V+ M
*-------------ddy240pminp右侧低峰值 -----------------8 ^% a; I/ m) b) ~
preserve
+ s: v8 \! u9 \$ Y' o S: \ 0 `" f8 ^9 s" w0 ^
keep if dx240>`tempminp'0 `8 p0 D. N7 P+ K& K* z
" @4 `5 Z k8 m2 k
keep if dx240<`tempmaxp'
2 e: R* ?. g/ h q E . w1 ~, w1 c, i5 j
keep if ddy240<0# V! {# T! g1 G+ p8 `9 T* P
% y+ I( ^$ Y1 A% w) \4 o
gen temddy240=-ddy2405 M' b$ n% t% F, s" }) z
1 V, Y- \8 p _
count
8 @# A7 v0 B6 g) }. P) | + E4 x& I7 ~* x- p
if r(N)>2 {
- S% K/ X" G+ ^8 u+ Q' b6 ` # z! U0 f: ? @+ J6 @$ w
pkexamine dx240 temddy240
' a( d1 o& \: V0 w8 n! u6 y! R+ p
, m @+ \9 ~( z* Y local tempminplddy240=r(tomc)
" F0 A: W, H9 [: [ restore
: d+ [' ^( O/ M- J8 D }
) j* q2 J3 M& W/ ? 5 m9 D5 L5 s+ j
else {
" }1 ?; Q l/ ^& R" G: k ; d# }7 o$ G0 I/ ]6 p
di "cannot find pminplddy240"
$ i. j# c3 e( \( p restore0 c* }9 }) {& j2 _& A
; x& [- H" z! y8 k
sum dx240
) L9 n$ O4 R, Y local tempminplddy240=r(mean)2 R9 g; p3 G( x
8 v% A j. K! ~# Q
( l9 C; c$ F( \1 x/ g }
% u# w" J# B |! z8 q8 A) \. n
/ l: h0 F j/ \0 Z 0 }2 U. N v3 Z# q& I
' y1 w5 Q* t3 j6 z" O4 A! g
9 |% c! t8 H( H6 V% Q3 o V
$ F( X) o5 q! Z9 S0 w; S
gen pminplddy240=`tempminplddy240' in 19 R- j2 ?$ c: e, {+ ]- d; i" Z0 y
" ?7 ?2 L+ Y1 q8 b$ m
*-------------ddy240pmaxp左侧高峰值 -------------------! [& Q) S. {$ p" F$ p
$ {1 X0 J0 K- T, } O+ G preserve # |- Q" v0 r6 c% g
* o% f# z" ^' L; Z9 k v keep if dx240>`tempminp'( X, e8 V6 i' _$ x- r
5 {1 p1 ~4 D2 U0 ^/ J keep if dx240<`tempmaxp'
* L/ s- M7 u2 f' h
1 @; h6 Z, ]5 Z. h; a keep if ddy240>0
" w+ I8 E5 F* {, ]3 W count2 {8 }" ~! r3 B* t3 b6 u9 d
8 Y+ S: f$ E# d3 u if r(N)>2 {
, P7 ^/ t1 @4 D+ L9 U0 n o) T6 Y , {% b) U. [ h% c
pkexamine dx240 ddy2404 ]6 y- a6 L1 n2 q
! ^- D; r0 t' K, u local tempmaxphddy240=r(tomc)
2 u5 A- r, V/ r5 N8 u $ P4 L% J5 {( {$ P) h7 O
restore
0 D$ F% t$ E$ P9 N& H }
S* ?, G" i4 ^7 k / H, r* a7 M$ S, D
else {6 r5 _# _& j! v$ p0 X. b
' p- t9 `9 [* z, y# R8 q
di "cannot find pmaxphddy240"# R9 e# k" y) D4 M, C4 f" ~
restore
* t9 m) j( @+ z. w1 e; X7 ?* q * Q+ b! u/ }3 d& h/ d. g- ]
sum dx240
: w- ?) [6 B; G5 R local tempmaxphddy240=r(mean)
! Z- X g5 f' v0 u2 T
7 P0 ^3 J0 x5 u# }+ z7 w
. z3 G+ `7 M. h, B1 P7 O! O } \" Z+ K# `9 r: |" S
6 e3 n: b! K* }& ?" q* Y6 Y' Q
2 y0 q% t, R5 f3 u& N
3 S. N* G5 v( l6 y O + T' Y4 A% ?* g' ?1 g) f
# ]7 C& U. @* D( z; F2 n
. N) x& \. p' u0 O. U3 t7 \- \ gen pmaxphddy240=`tempmaxphddy240' in 1( {' _6 h% }0 l. ?) D! ]
2 D ?9 h9 Z1 l) f5 X1 m. R7 s. K - s. E/ _+ n% Z8 K% ]
*-------------ddy240pmaxp右侧低峰值 -------------------' E. ?7 O7 |( C1 Z% [: J
|' B% o+ k* l; H8 R. B% U
preserve
1 U$ [4 S& a0 h4 A$ ? " S1 p& e0 a# A
keep if dx240>`tempmaxp'
: R% X4 E" U0 z
2 F% w+ Z* j( v6 p% ? gen temddy240=-ddy240( j$ C, m& f5 x( Z1 W) y! P' p& [" x
5 v" A6 d) P: w6 @3 r/ l+ _4 H keep if temddy240>0
& J/ f% e+ }# L: E$ q" ` ; v9 y+ f& y; D
count
7 H' S2 C/ Y0 r' G, f
7 g7 Z7 B& e+ p+ s if r(N)>2 { g8 U9 ]: M% ~1 |! \$ n2 G" B
) B6 n, u" T! g( x( ~ pkexamine dx240 temddy240
( R: x x3 @5 ]- Y4 |
( e2 k4 _ e! P+ D! k4 z# b local tempmaxplddy240=r(tomc)
1 }& ^" D C) ]: w6 ` restore
* C* r# r; w0 S6 o4 U }' f) a0 N' k* \/ Q: K4 n
. H: ^2 p3 d+ W8 Y1 H# V# [
else {
2 o2 E5 y& J5 a( {$ l' [% { restore! Q ]; f0 r% s1 C1 L
di "cannot find pmaxlhddy240"
, ^! U- A; P: U! _% S, {$ M ) u4 r2 ]) i; F. K1 @. S' F- H" G
3 L" ^% B0 D2 ^+ N
sum dx240# s" A2 Q$ C, d* @3 O
local tempmaxplddy240=r(mean) in 1
' R) O1 @% k) i- L# ?) m5 d1 M7 p" h5 U 7 V4 n4 U& L/ y/ ~# A
: z1 }+ ~% j& j' E. Y( T9 R }
4 ~: X, v/ [; ?7 s
& ^) T; j2 g+ J+ p% V0 M* q # ^: l$ C9 s& |2 B7 S6 {
. ]2 P+ N( _: G7 C4 H ! V1 l: Q! X. W H/ V- B
1 V$ e% l% J0 {- c" d! `& ?
+ q, h$ S" G! y h( I4 g! q) \
gen pmaxplddy240=`tempmaxphddy240' in 16 f# W+ X0 d }# J
6 N- m6 `; Q( D8 M3 ^: |
*-------------------------------------
4 ~# U. P+ S( T3 C: ]: a; ^8 _0 a
4 J7 j" v0 m0 h3 | gen price5d=v5 in 1/20
" K. N# H F8 p( t0 U1 z
O8 f& u/ `% Z& K K" ^4 d gen price5yy=_n in 1/20
) {, g) x" D4 s' S2 |' W 9 l. f. X4 k4 h6 ]5 r
gen price5y=price5yy*(dy240max-dy240min)/206 o5 i+ ~ z3 j) W! o5 }/ z
+ S& R" W! I( M5 b; ?5 R
*price5y &price5d
; }" j. S/ q* @, h' I) r: I) V
: Q. o! L* J5 K; F gen priceny=price5y in 1
+ t7 A' f5 J2 T9 P! g' U; m 1 r1 ~0 W% Z r0 M: D
gen pricen=v5 in 1% }0 p4 `) z" S8 @! H
- H5 k' f/ y/ G9 D ! R' Z5 E, s( a
*priceny &pricen
9 m% C* I4 Y, I4 r5 U$ r" h& z3 w ) U' T, e% K/ g9 n- \* Q3 c0 h
9 f: h! ?$ b$ ~* A
*-------------------------graph------------------
6 s. H: Z. |- Y4 m- A3 x
# A; Q8 T* }1 w& ~ 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)1 u# y# S, \" Y) `0 A
/ W. p! O' P$ `+ g* ---------可选项目----------------------
! _+ P( ^! g3 x6 ?*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))3 J, {/ x0 J2 Z; \! N/ ]1 ~4 _: h' w
}
6 P2 |# u) j9 d( d7 N" x( zend
+ F5 Q* A; ? Z8 c8 L. q. p |
|