|
|
maodeng 发表于 2013-1-28 13:13 b1 _" M V3 b6 u& F l
. hello 300236
8 q9 V2 ^; {3 A( F" a- b6 L8 ] Z' sstatement out of context
2 M/ Z, A" N+ q/ lr(119);
5 @( u; k8 J- Z2 x& R1 h抱歉,最近太忙了; o. {6 m, ^6 R5 p
- x7 I2 E+ s2 R6 r- c' q6 j
300236 我用下面的程序试过,没问题6 v9 l+ z3 y. l' j, C
" p# E# A' d, N& ^/ E你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试9 t; g5 c2 S' T/ W7 q
/ x7 ?8 S! P6 d- B8 R- J, K7 K( |
capture program drop hello3 h' v" R! L1 |5 [
1 l7 b% t3 R5 w. b% P
program hello9 y: v9 M8 @. f
4 `1 h+ c# {) i$ a/ d2 W quietly {. x) N0 X; z& |+ a
* \# b0 J( w- n# [clear; U9 V8 ]6 A$ n) N- L+ b) ?6 Z: R" N
" |9 F1 e3 y H4 S% F: j) s
cd D:\stock\test\source
- a- b; J' U. I6 M3 j/ _/ w( O$ b# A0 D E1 O! w
insheet using `1'.txt! r3 s l7 c( v1 J; x: j! u
% P+ c- j5 f7 {! J+ s- e4 n
keep if v5>0
- J) E1 s% b2 h2 ?1 U
- i" U4 S3 k$ v. Y$ @# @3 S2 J gen vt=_n
\7 x" |+ U& @5 Y$ p+ S2 x! h, k 6 }1 U8 S7 M5 `4 n) F
tsset vt0 A/ m, Z& O2 m
( H% u: _2 E. J( N4 E5 S
gen zf=D1.v5 E5 ?1 X8 E3 V9 R
$ e9 @+ I) S! N. O0 D# L
gsort -v1
# J, V1 ?+ Z: v/ K
& Z# U' M3 b% e, T6 W1 ] n$ o gen avol=v7/v5
) s* i. }6 p1 o' o
, T2 r w+ @7 M keep if avol>0
9 \% e/ O, E2 e; j) q3 v 9 [5 W+ e' Y6 s
drop vt2 Q3 b- Q6 b: v) h/ D! a
; O3 h* b) b2 ?& G! \8 f
gen vt=_n
) w) `2 U# r+ V0 ~
' q6 m; t# i* C7 O2 E6 S tsset vt L3 I6 e; f- X3 X- }, Z; i1 C
0 N) Z2 W! |0 ?! \( ]. L, C sum v5 [aw =avol]( ]- b6 p L+ y
' y7 C& w: l1 U% D' |' L3 A gen amean=r(mean) in 1: e% k. O" ]+ o/ F5 y7 \- Q
% n$ q9 x) {# R' F8 `
* 总加权平均值 amean1 Q. m$ I! K3 |5 k! b' Z
8 f: o ?7 Z7 t- y: H( k - U" k8 S. c8 q: N/ @
keep in 1/240
% i( l) E4 \3 l* z1 g- v; B9 d& U5 m. @1 L3 L4 @& F
sum v5 [aw =avol]) [& `' L/ f. {3 n( Q9 G1 M: u. r D
' G, C- K, \: u5 d& X
gen mean240=r(mean) in 1
5 T' n/ v1 Z; ?; \" z3 J2 w ^5 r7 K! z5 ]% m7 _
*240加权平均值 mean2402 V7 B4 E5 M* a# x3 \
# {* n: T8 K/ b6 F) S, v
set obs 500 3 E, A& Z: A" W8 o7 c6 s
3 T6 t3 p8 M y8 z9 ` kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph% N( b. Z0 B3 \
5 C( N' L9 k/ L1 Y/ S
*240 kdensity(dx240 dy240)
, H U9 Y8 l6 I7 ?
r2 z, N) ?# \' t sum dy240- i0 K( P& q+ o- \( g
. J" ~ h, r5 L, ^6 K
gen yxis=r(max) in 1( ?- q* ~1 N+ s" j
! G i6 i+ [8 \1 k
gen yxis2=yxis/2+ r V" l/ T3 x0 g5 I3 y# h3 T$ s
' f# ~1 a! u: U% ? *yxis/ |6 Y9 ]8 ?6 R/ i/ L! `9 N
' u4 {$ ~% P$ u' B1 m; Q
gen dy240max=r(max); m% K! B; F3 i" g
% t/ u3 k5 Y4 A4 C gen dy240minp=r(min)
; q) T/ H* y' F+ X+ G
9 D" n9 f8 x/ b) |) l gen vtt=_n
6 X; e1 v- r% a& l
2 V6 h j+ q( L3 S# t/ x( D5 a* X tsset vtt6 F- h2 j R. K0 ]
3 M3 C0 z) d2 |* J gen ddy240=D1.dy240/D1.dx240
( M$ v+ B/ ^& p' c) r 3 q+ m- J( `3 } i2 {
sum ddy240/ Y3 ^9 [ U( S* n: s
; y/ D8 ~5 X/ A5 P% Z: {
gen ddy240max=r(max)
/ n" }- ?# W' _8 d . [. A- F y* k1 }$ R/ X
gen ddy240min=r(min)/ d3 {. a0 k3 Y" C
0 j5 [, D- o% }# U B8 s% N- h, K1 | gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
# G2 x" n9 f+ p& d6 h3 v4 O& _
8 {2 \2 \, E; q T0 t" o: U sum ddy240g' m% C, V) s& H" E% v1 Y1 K8 Q
) V- c+ R5 x# y6 i0 A gen yxis3=r(min) in 1( h/ z# S. b) U
, _ U* A% e& @& \+ s- q k+ J* C
gen yxis4=0 in 1
: t, T) {0 ]0 o1 m ; V- _( j( l, U# K; I7 g
*ddy240g
+ l$ Z$ y" E4 ^/ I; _* C7 i: G% p ( Z9 K: W" m1 {2 j4 ?& p% o
2 y& ^. {1 R0 @& f
preserve . @0 _. ^# V' M1 c5 g* l( x2 n& z
- ^3 y+ }" q0 @) A$ m' I% k8 _
sum v5 [aw =avol]1 Q$ i( F \# x* ?" y
" P9 s4 A0 s7 J% o# ` keep if dx240<r(mean)
1 ?0 t/ ]/ k J r: n
% F/ K! n4 Q" } sum ddy240# D1 F: j4 R+ T6 Y4 }2 s a
% p' E' Y7 v4 _: _- n6 M
if r(min)<0 {0 J* C6 E( r" D' _6 S
6 L) f6 t4 r2 {! r, s
keep if ddy240<=0% C* M t' W+ N# P* E% Z* ]
1 u. a3 ~; x* b9 a count* P1 P5 q! l( C
9 d Q9 E8 D1 P5 | if r(N)>2 { ? { o. ^0 ^& o1 t
7 a( n' a/ {7 v( [ pkexamine dx240 dy240, b* e+ [$ E) |1 F X* ^/ }0 z
& f6 ]6 j% F) q- {' j& h
local tempminp=r(tomc)4 D9 O, c3 J9 _/ T- x# j- R- f
restore
. r/ l0 V/ u; X, X: U& ] }4 r+ F0 i2 J4 {$ k9 V
7 A: @& H c* U5 m5 @$ X8 B9 w else {( l# x2 z4 [ |0 t
4 q0 C/ B) e$ A di "cannot find minp"
: v3 f: ~) D4 a5 ~. j
! O, g+ \3 B. F& m2 u% o- w restore
9 U& }6 R" t1 Q7 P1 B7 H& x sum dx240
" Z) ~/ d6 g1 A. L. ?, C5 |$ | local tempminp=r(mean)4 i- N" T# a) g. z1 W+ n
" @. x1 u+ z3 T8 w9 s$ P
}3 q$ N: k* Y, g6 A, J% o2 y7 R
}
+ N0 { Y% \& Q G9 c else { r4 n! w) s1 G$ d
% @/ e. ?; V; ^ v3 Y' w8 ^/ h
keep if ddy240<=r(min)8 C) F# f" S. u9 L O6 A% h
$ d! u0 W5 k& Q$ N sum dx240
& p* C0 J! Q$ l 2 m( ?! u0 E, |/ R
local tempminp=r(min)' b& E; G% o/ t C0 V
restore
! d+ l- D {8 z% A1 ^( f4 | }
& j! m4 Q2 @% ^ M
# i4 N/ [! h9 C/ p6 N
! n0 B1 K5 F+ N$ x+ c3 ~7 F2 ?4 S
0 w" T8 A4 c' U. ] gen minp=`tempminp' in 16 C5 Z6 C- `, S! W& W
*240 minp. r0 }. ~+ {. U( u+ [
4 A" q3 e. }4 T4 a4 C" r5 Y# B
& Q2 c( D3 y" \1 F# m' C preserve + x$ g* k6 ^+ |* p) H) }8 U
% Z1 m) p' S+ m$ J% ^+ m* b+ L
sum v5 [aw =avol]
# T5 |# K8 z% z/ K E- ^! X3 `$ Z5 ? 5 P, i. j; x! C$ }& { h0 c, Y
keep if dx240>r(mean)
* N: G: z3 b- W& {9 k
4 v, }" l0 c" @+ v3 E sum ddy240- L, q. O* t" p3 O1 T7 P! y2 U a
# ~4 H: K7 K3 v8 w- ?
if r(max)>0 {
! }/ X# c5 k* ^3 `
3 h, B( M' w! r/ g% M* ] keep if ddy240>=0 h/ L9 [, a O
" [+ r5 @+ U) P$ C count
, g. d ?$ m7 N9 J9 p
. U- Z# B; K5 v# b5 V8 G! Z5 K if r(N)>2 {
1 p! V/ @3 ?8 x9 f Q2 S: B2 S 4 ]# X) L' m8 }+ h/ M: W0 G p
pkexamine dx240 dy240/ t9 t# \. E/ [# z$ S
4 u" G, f& u5 \% s& {- n2 c
local tempmaxp=r(tomc)
+ S# r/ K: Z5 N6 | restore ( w, J9 t% b6 Z' U
}
2 F- H, u5 x1 W 8 {$ X8 C+ P/ V( z8 C
I9 P+ d+ a, c3 P. t
else {
: P5 L. v$ X: p restore
8 B/ X3 _4 H( ]; Q2 L+ F3 s. d di "cannot find maxp"
4 Y$ G+ a& P! u0 K! \ u. V2 O: a : [0 K$ Q1 g* e$ x
7 F+ w. P! O) p2 e7 V
sum dx240
4 g& _( ?. U: C$ } local tempmaxp=r(mean)( Z4 n- H( B7 R) U$ |
5 C0 u2 }: V% k4 V
}" Z; i( l$ X: H7 G! K# s
& S5 N& z6 O3 J/ E+ B0 Y, B
}5 F+ b; L; ], r3 `
/ E5 K \" ~( D: M9 F else {# h0 G- W/ m# t& e2 J* g$ g& @( K# ^. ^$ E
- o' w% x9 s. B# w0 L5 ~
keep if ddy240>=r(max)+ t- G) \" w4 c2 A. n" S
5 w. i* x R* b; P$ \! S sum dx240- B( i: S" a3 [, E6 q% g Z# O- T/ c
: U" L" J6 D: v# V' \ local tempmaxp=r(max)
5 A7 W1 L! i2 R( G& L/ B$ f+ P% K7 q- y% f restore , e* f" s& H; F0 n# b
}
- E/ U: ~ r5 ^ 6 _" S6 ?$ ~9 b& o1 U, k- i
" G7 F q9 n2 @- U0 B' K
; |2 V' R0 m, ]* _+ h6 a4 P! }. H8 M) w( m' h* H* v _& n
gen maxp=`tempmaxp' in 1
: Y8 q4 q7 Q' |, s/ l , f4 k. r' j- k0 r' X3 E" b _
*240maxp+ V% u5 W' J0 u* M
) m8 W! x! o+ Z- ^% w
% U" X% T7 u2 r9 Z- [0 p, W$ `
*-------------ddy240pminp左侧高峰值-----; L% }5 h5 }9 T
/ y4 G! N. E4 \0 D
preserve
+ F) a' z* T8 k6 O! } 5 Z/ T" ?" Q* Y2 ]
keep if dx240<`tempminp'/ P5 X$ p7 S- M% ]+ g% G
& O) @. k3 S& y- k5 M! E6 E! {
keep if ddy240>0( `# @0 ~: P4 U- h/ |4 R3 T
6 ^) ^% f/ e: m
count$ n8 w$ h( P1 D- b
, r7 Q$ l$ K" L if r(N)>2 {
- Z; v4 S) q8 ]% r2 Z6 I* L 7 _8 u* ~. {, h4 d6 x# L% b1 r; ~6 A
pkexamine dx240 ddy240
1 J9 }. ^- K+ _6 H/ |! U' V " L, |- T1 V% r, V* c3 s$ p2 m
local tempminphddy240=r(tomc)
0 C% V9 n. x; n* l2 b3 T1 o" d7 b restore9 i( V" I0 w% `( L @5 J
}4 A$ l E+ \- ^3 R2 P0 a) w. d7 Y
( r3 y; J5 N K% N
else {5 R4 a9 r: k" R$ r! H. z4 `
restore
( k: P" j% ~' D; J* R8 Z/ X8 v- x di "cannot find pminphddy240"
$ S# }1 L, `. x# F% N2 R6 ^6 ~" E0 l $ j# [/ t% |+ |( u2 t I
# @) b% |0 m4 U# w |! {* c sum dx2408 F" { t0 B, `9 ~
local tempminphddy240=r(mean) 7 E8 F" L4 O5 F D
a9 f ^0 W6 r9 L$ Y9 e! ^
- A; k1 F. V) {1 h, \9 t; r }4 Y$ a3 f0 j( e. X& ?
8 f7 m+ i' x3 m# Q- v' r" R6 Z
" k& `! w- W+ w
9 {# q3 b! d/ h0 p
5 ~5 W, B; F) }
; \1 c4 _$ ~9 M5 s; t
9 v8 u9 f( z1 \- H4 d
gen pminphddy240=`tempminphddy240' in 10 g( g4 y7 }* w: _8 ]
" a7 b; W3 M) r- x* E$ ?2 B
3 |7 j& Z) p1 i) G4 l, L *-------------ddy240pminp右侧低峰值 -----------------
. ~; x# B9 M* T+ d% q3 z1 x* F preserve
' w z5 _" Z* B# L( }+ m" H( B$ |4 w ' e u* v! E$ t! i6 N4 C4 i
keep if dx240>`tempminp'. y$ K9 j8 ?/ p/ f& T$ w
5 P2 x6 M1 f- c/ p# o
keep if dx240<`tempmaxp'
; }* F: g7 w( @3 j, Y$ X2 y
9 \2 H% P# D& u keep if ddy240<05 J5 n" ?; d& R+ F. {8 H" a
+ ^ d5 h5 y& \" Q* A/ Z
gen temddy240=-ddy240
9 q9 K. D9 g( r
+ X, s/ x8 M+ C( s count. M) v3 M# ^ M9 h
+ S* ]# E! [" l2 ?3 d+ Q2 Y if r(N)>2 {
. p0 }# O0 U+ C4 @% f- P0 d$ E, ^
0 _! g/ b& C6 l1 R pkexamine dx240 temddy2400 h ]) [; s4 d. Y' g
: j" B$ O3 e h( A9 I |* D
local tempminplddy240=r(tomc)8 |( n! X: ?8 N! I
restore) L; v1 n, V& n/ `5 ?
}( E0 b' Q% ? d8 f: C
1 L+ K1 Q0 K; ]9 t1 a [3 K else {
' O( `( }0 }# i5 { 0 O+ n6 \% C3 N8 o7 w0 ~
di "cannot find pminplddy240"
3 a2 W: Q# ~) m5 J* P' N0 I restore
9 X2 N1 z! J& D7 b0 | 3 W1 m. X" m6 V# v# \2 L c' c2 Q
sum dx2404 P2 u) ]4 `5 O: q* N0 R- m H
local tempminplddy240=r(mean)2 t# d8 A7 I8 N6 ?- d$ L7 F/ Z
& f' Q( W X$ F3 |3 m5 Q
# w+ n/ t& {+ w+ y }
) ^/ y \1 H" T) H. }8 b
3 l* }8 q2 b$ P C+ M
( l7 @% f+ r6 Y# ]) y & v4 D, u7 j2 I! e) R; S
* D) h: n @1 u4 W0 C
5 L# o4 M+ T6 y/ A9 p X* K a$ x gen pminplddy240=`tempminplddy240' in 1: A) _5 f3 J h: n) E3 e+ n
& j6 w6 Q# S3 s4 W3 ?- r$ p: j
*-------------ddy240pmaxp左侧高峰值 -------------------
2 A- ^3 g# l( U- S7 ]
3 K3 l3 s( v! I# Q3 t preserve
# X. \0 X$ t* S
0 O: U; n! \( ?7 y keep if dx240>`tempminp'8 f9 D9 D* d0 x6 G% B6 e
4 D, H2 j1 [4 E/ u
keep if dx240<`tempmaxp'
2 U$ K4 z7 i, I0 R$ o- g 9 i# V- r% R8 ?6 } u
keep if ddy240>01 Q! D0 B( r8 X
count
' \ K- z4 P, z ) U: C* H( c4 H# F6 \# Q
if r(N)>2 {
/ B: G5 C: `/ k3 n `% l
; \4 w6 _0 a" l' i6 o9 r8 U( s0 ? pkexamine dx240 ddy240
8 P9 W, S- S5 G7 P) z
% N6 A8 ] P- S! h: {! \4 w; w local tempmaxphddy240=r(tomc) $ V$ I" B q1 H4 E
8 G1 t/ W( ]5 S8 R# x; J! k. P
restore
4 u0 z4 r: O) T N% U9 ] }
1 K5 x1 ^/ N5 C0 H" Q1 |
$ L3 H# b) R C else {
9 g. c8 a/ M9 s
0 A2 N$ b3 k P2 r+ D di "cannot find pmaxphddy240": a4 O8 e3 V* z* @8 c8 V) E
restore
# q$ c7 N1 o; A & o1 w0 K: E I. @6 d
sum dx240
2 C8 N5 o, x8 `( T$ g) n+ b& x+ d local tempmaxphddy240=r(mean)
9 C$ H# f7 {& V: t+ h' a- |/ J , T6 o) J& q9 I* V
( _* ^/ F/ |( ]6 K }
[, |3 t; q: w2 S; Z4 q8 c & y7 V, @3 x* e; l/ t- y9 S* b( p! N! [
" K- }8 |: s7 l% J$ l7 Q! T) Q: Q4 X
) D1 k, I# G, _. X* i- p! L
7 V3 ?( ?. o) r. d( Z " E$ P* ~1 z1 D' K9 {
" g' w) b; D# i- b6 f$ E, A7 r
gen pmaxphddy240=`tempmaxphddy240' in 1
' y6 O& ?4 L [ ( c! t% i( [9 a
3 j# H* ~9 `$ c% ?3 [. D) ?
*-------------ddy240pmaxp右侧低峰值 -------------------; j7 n; d% y9 Q7 |
1 y# {! h) J7 r n+ c) p. G: \ preserve " e, c% t( a$ r L$ v
: J# y3 d. ^9 J( y5 y0 P6 Y: t keep if dx240>`tempmaxp'
" N! [* w: i( g7 k$ d 3 z" q: J- D& T" S
gen temddy240=-ddy240# Q+ b/ ^/ ^6 x: Y" D$ e- b
; `5 D- a/ P8 n* ?' Q" Z
keep if temddy240>0
) T, R9 K- H3 Y1 r) @2 }) b
' H6 n/ l& A, l) D count
' Z( l! \8 d% a( y" W % K2 `& T) p! f9 M# q; d# \) n, Q; R1 [
if r(N)>2 { m$ v, l) U, Z, l5 t
! n% h: m' [4 ]) p. ^, ^ pkexamine dx240 temddy240
T/ b: Y8 U6 H: F' N - r! o4 j/ s/ M- i* ]9 S
local tempmaxplddy240=r(tomc)
. ]: A) ^& `& p$ ~& t restore1 z/ I, s. K; ]3 z# `) J4 ?" A
}
* x. G' o/ z3 A, ]: D7 i, K / u" M& ^% K/ \; |# ~
else {, Q& M7 c/ v- Y# H! S$ ~% i8 W8 A
restore
. R- d4 P1 o6 T: n) q di "cannot find pmaxlhddy240"
& c& n s% s3 q* x+ H! i4 g& o
+ l( E7 G, P/ u. ^# N ' U9 R1 Q: k3 f. {' \; O
sum dx240+ A0 m9 I6 J* {6 L
local tempmaxplddy240=r(mean) in 1
. I4 S" o9 G; y8 _3 ]2 M; a
( i0 v1 N) v2 b% ^2 M$ \+ Q & K c9 b. Z* C, f9 r
}
; V6 F: _' B) ~% q+ E3 U+ S N
+ N- X& ~; R! g0 v# `" R 1 v! `6 r$ p+ A m5 R9 j% v6 c
* C/ W! q4 n1 t& U
3 E; Q. Y: i+ O J) \' p# n 2 L; y( v4 f! q) K; K R& D" S
( \: [2 ]7 v, c3 {% K9 G
gen pmaxplddy240=`tempmaxphddy240' in 15 y4 e% p$ e3 S: ]2 e
7 a4 E: c Q+ g% m, V/ e* B
*-------------------------------------5 ? X( K# e* X$ M
- L8 C* \) q: q' t# O9 A. m [7 ~
gen price5d=v5 in 1/20
$ z5 Y6 U( W+ T- e3 q# `
- Z2 d1 F% j: g' G" N$ v' Q gen price5yy=_n in 1/20% }, h3 U$ l8 f
2 s# [0 J8 W4 [8 B! n! t gen price5y=price5yy*(dy240max-dy240min)/20
; U1 q( E* G- d2 d5 V/ { n
! o8 `! s9 A) S4 A *price5y &price5d
" k. |0 M6 u8 Q2 D+ u
4 u+ _2 Z* L2 ] gen priceny=price5y in 1
9 C9 p' ?' I2 z# F( @: j- s
- ?- t' M f) ?8 }' k h h gen pricen=v5 in 10 D0 `1 V! p5 m1 J
: A4 ?. x' u' R" J* t3 Q
/ @5 Z" y5 x/ N; P7 M9 y# t E
*priceny &pricen
2 k: [8 G* _9 v0 ~ 7 s% c' V& b8 D& [+ N( p
5 ?. r& q1 }6 k8 c; j! }
*-------------------------graph------------------
7 U/ A$ e8 z8 _3 X5 w7 J* d1 ]9 ~
" m- Y" d+ |3 ?. ?; A 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)- R9 B: U! h3 ~& H
( N- T+ u" F9 ~& ?+ T1 P
* ---------可选项目----------------------
+ j4 l( t- S0 B8 @*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))! g \6 m! u" z; T# \9 d% b d! _
}2 y( E" @& r. o! l; ]/ u
end" ^9 q8 Q! M) y' b7 ~
|
|