|
|
maodeng 发表于 2013-1-28 13:13 ![]()
; I5 K& @8 ~: Y, O/ k6 r9 U" _. hello 300236
) I$ {* E) N, S; c) ~, Mstatement out of context3 ^9 X' \+ T8 F2 A/ G, g
r(119); " X9 l1 _6 N+ a, J ?
抱歉,最近太忙了" _ Z+ A/ Q* }; a5 W
4 v/ l( @+ ^' F: X
300236 我用下面的程序试过,没问题
7 e' f8 ?3 O [2 Q& @8 `1 X m+ H; I' `
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
, c/ c0 q# m+ a8 c! d
3 l4 d( A1 ?* _7 E$ l% r9 e/ ocapture program drop hello% r8 {: _4 D7 J3 ?. c/ c
4 ^/ b; U3 \3 f3 X- W/ w: E
program hello" P2 \ Z4 S5 r. `
% g, V. K, } f6 a5 w. B9 X
quietly {
5 F/ \4 V5 G2 ]) f: M
7 D2 O! j' V% T, fclear) v8 [% l& R( |# T. C& y
" l/ }/ U* A( R% B; Ycd D:\stock\test\source
; h, @' T9 x( s/ @1 ?( C7 n* M8 d
' P4 m! m/ p% N- |' B1 i3 Pinsheet using `1'.txt
; A; ]+ y2 g# m1 Y, p/ l1 P0 C% h4 A- L9 s5 v0 x* w2 {7 B
keep if v5>0
# G1 `. K5 i! |
# r. n. L, i1 V( L) ` gen vt=_n
1 j+ v5 D: v: _* {2 |' }+ a % j% i' T/ i% d1 p
tsset vt
1 U' G& a6 J# n# n& y) o {+ N! \; I8 w$ Q) d
gen zf=D1.v5
?, W+ g7 i2 _% `' p+ p
: {/ W" U1 c# O1 Q gsort -v1
# h7 B2 W3 F( G3 H! P: x7 q2 `4 W" J6 `; O
gen avol=v7/v5/ }7 q0 u" X. j
' g4 i: s' o( |' n
keep if avol>0
/ {7 j( W3 {/ f & u, E7 S3 S; ^+ ?7 b
drop vt! b" }& z" `( a7 }& {
: J! H$ R9 J: {' u7 a
gen vt=_n, M* t& x# Q8 o( X) d( d# u9 r
& e. E W1 [% v4 c! U+ A7 q
tsset vt+ B# T5 }3 x# ` Q L0 u0 X
4 }9 j$ n5 E1 k
sum v5 [aw =avol]- F( Z* s1 s$ X5 ]% x1 Q, L- i# G
, f6 C1 G+ B5 O+ H8 Y
gen amean=r(mean) in 1
# [- R {/ r# V4 Q
) W& j5 M: y6 w1 ?" K% G- G+ @ * 总加权平均值 amean, Z' n( c* `% @5 d5 A0 ~7 k
2 i }- E" y S
8 E- c( l, }" c- Q* K$ l
keep in 1/240
# @+ @$ F+ |0 P! ?% m5 S
T7 ?6 G+ `5 o9 U/ Y sum v5 [aw =avol]1 d5 K) B7 v- [% t
$ s( E: v6 T8 {3 B- `
gen mean240=r(mean) in 1
$ Y, ~8 L8 A. q! |, Z5 U
7 E& v+ D$ M& ^+ A4 m& F% k; \' y6 g *240加权平均值 mean240) F! L5 I9 M- a+ U2 i
& D% V; n! o/ h: N' @$ q; {6 \ set obs 500
$ R* _1 P' r9 T" s
* c1 s, q1 h2 e) N1 ^, B+ N$ t kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph, h0 ~( ]9 Z- [- r
5 S4 d* O" L7 Q9 f$ Z( c. s
*240 kdensity(dx240 dy240)
% T2 ?/ e/ ^$ q$ u
, o& x$ ?9 ]1 Z+ y sum dy2406 N& u! U. `: p. s+ i+ v# i
6 T* n5 X* v( C" U3 z+ O
gen yxis=r(max) in 1
m% l$ w4 s* K& Y9 k7 P 7 y( o1 s; i7 x/ I2 |) s; Z
gen yxis2=yxis/21 |7 `4 v+ ~5 p( m, e+ F5 S6 d# k
; t+ u/ y7 _0 h# l) L *yxis. }! ~3 X" n5 j! I7 S
~# H4 W# x3 u; |1 `5 A% g V
gen dy240max=r(max)7 \* I5 X# y" }, M4 Y/ _* D, j4 g/ i
L J; v5 Q2 x7 ?+ e# t3 { gen dy240minp=r(min)- T% R* z4 h6 D- L
1 @$ s2 q! i5 N* P8 L7 P* Z) I
gen vtt=_n
" h6 P O8 T) ?: U+ z- t6 X7 q8 s' T- D4 h1 i" Q
tsset vtt7 T, S7 w; ^9 G. Z. b
3 m+ A. V" d* W& }' O
gen ddy240=D1.dy240/D1.dx240. H9 k j7 n- M* e7 @% G
$ p+ Z$ E7 v( z$ ]2 t' {+ \ sum ddy240
! v) O' N( P7 |* Y$ @; @+ M
7 C( K+ M2 D4 j1 t7 I gen ddy240max=r(max)5 W. O' `8 d5 O! x
/ L8 s4 q) P8 ^4 L' ^ gen ddy240min=r(min)
( u h# R# X% o, j $ n5 o5 u! R5 H
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
0 ]# V$ Y' K5 Z$ I, l
, a- |8 U5 N; s0 w& ?7 t4 q sum ddy240g
* n1 @5 t/ b" b% W( M F1 ~ a$ ]
: s' n# u3 _8 h1 I4 y gen yxis3=r(min) in 1
4 r. d0 o6 H6 o4 X6 h$ D1 j) ?0 | + M1 S( s7 r4 H
gen yxis4=0 in 1
: M8 R0 D: o; H2 @ 3 E" s& j Q$ x3 h/ e
*ddy240g
4 o; f. ~& N" D+ ^
9 v" v8 z3 g% l" u1 E% u8 X 2 q1 b1 ]6 B4 Y% w5 }' X1 e
preserve
$ X) e t) e8 p q
. E8 j. J. d( l/ \3 c sum v5 [aw =avol]
& \ S0 {; I* N b$ L3 n( [ : D) q5 H" n7 z7 l; A, ~$ h* M
keep if dx240<r(mean)
- v e0 a1 q, k0 v ' L0 o( ?" K6 q9 }- c
sum ddy240! M- w+ g; Y3 A
% [- F1 v% }1 \# l5 d) g# \+ l
if r(min)<0 {
7 L) k1 n& d- W 6 }1 M( q+ \: i( t. T3 h0 @
keep if ddy240<=0. K0 n+ s: c% r5 o
8 J" r! o$ X8 T8 k/ X% ^ count
. i1 n+ s9 D# o* k, y 2 |* y0 i/ m8 o- m
if r(N)>2 {* d! p1 }, d! ?; q/ p
! m3 T0 U" a, _5 E& x
pkexamine dx240 dy240
! q' e: {3 E$ X) f& n
0 {9 N9 _" K) l, n- M0 I- k5 ` local tempminp=r(tomc) k( Z2 k1 {! ?% ~, \1 O' B
restore , E3 F9 G2 l1 }
}
: t+ ]5 ~, i0 w+ q& f7 N, N
# X8 O+ ?- m* Q0 Y- x else {
, Y E, \0 E& }/ g; ^8 n# h ) c4 Q- o0 e( x8 g
di "cannot find minp"
$ B2 k5 U/ ?# A2 t' E; |4 d: c+ M
, `% {. g2 J$ H0 W; D( m# L restore 8 H7 M! [& v3 r8 {
sum dx240$ [9 L' I! i2 g9 Y+ c9 ~% ]
local tempminp=r(mean)
4 w9 l, D! f9 L' K- l7 P6 B
J/ T: R1 ^, Q }/ b7 v% d- O- U! c- q6 r e
}1 v. u' S+ W0 t6 `
else {: d% ^ }: l$ n, W' o9 I$ e/ S2 x4 z# Y
- |! v1 c( ?9 W8 f, d keep if ddy240<=r(min)
" g7 N$ X; ^" }9 ^& [% v 2 j3 E N) B5 F* X
sum dx240
4 p2 G% A' c+ T0 a
; }6 \4 m1 f9 @; |! W1 X local tempminp=r(min)8 }# y7 D" |3 r, Y$ Z7 U& B
restore
}2 {* H% y( U# S9 t4 V }
1 b' s, z& Q% \8 i U' l( {* F/ c
& h2 o; P0 _' j& x* e) ^ |# K& t2 m% o1 ]
3 p) I' L0 ?! m2 j# V gen minp=`tempminp' in 1
# D! V+ u$ r" D: ?1 k/ T5 O) m. G *240 minp( Q) }6 R: B" c4 T0 w
4 b; a9 U. Z( s4 a% G* `+ y2 N' Q+ d/ M
0 c3 ]# F6 B( e % y% Q' }5 ^8 m8 S& V0 O" r
preserve
6 {* _! h1 a! G4 [/ q
7 j) E7 u2 ~4 G! i3 U' Z4 o) K sum v5 [aw =avol]
3 C2 B2 _' P. D9 L3 A
9 j& ~" M* X- Q+ X5 y keep if dx240>r(mean)
, q0 p7 O% T0 @& ]; J 9 c8 f. b8 a/ y4 ?) o4 q
sum ddy240% T% O# R: N! m
! A1 d# W; F2 F if r(max)>0 {
/ A( m( b, T3 r. e( ~8 m H
& B6 g; m7 g% w) Y+ N9 T5 n8 } keep if ddy240>=0
* h) o$ m; k; \" c 4 D* g: M9 }5 H
count* [. i: N- O* H" {0 [' }
x: L. R# E* C3 i" d+ x. |. W
if r(N)>2 {! q0 R2 e/ }/ I3 I' p0 t9 t
& ~& ?( p) v* j pkexamine dx240 dy240. ^4 ^: `3 `+ s$ g5 t q0 ]1 H2 s
9 O8 b8 g7 M' ]: E6 z8 T
local tempmaxp=r(tomc)
* ?% o8 L5 \" v6 u& H- ?+ a restore ' Y. w; f+ O3 I2 F( x7 ~. }2 c
}
- B b( ~+ u. Z3 B; T& _% W) ` 8 `8 F7 [5 a0 u4 E3 t5 l k
6 h* T$ D* V. m) |$ N else {
: ^ |" _$ ]$ {3 d! u( h restore " |$ Q. k1 J: L0 J0 v
di "cannot find maxp"* @" p+ J# K( U4 {2 o& z
1 t7 ?# W6 e1 @ , _- M% A* O/ J" q S! I v/ j
sum dx2404 [/ C( V: R, Y) j- q& G6 o
local tempmaxp=r(mean)# `) O- e" w6 J6 Q7 f
& o6 v( U4 z0 `4 ^* v/ M2 G6 w" b$ f* ` }
) J# [: }9 x9 L w+ D
$ y' D4 T6 d0 Z4 d# o }
: @) A! j& R' Q* P4 j" K* ` * I2 S$ `4 d5 q, k
else {6 r6 s+ a! d4 `
+ M6 T; }+ _6 n0 A& e6 _0 B& `$ x
keep if ddy240>=r(max)" W1 {& @+ @4 D9 m
K& ?7 N: O% X$ K! p3 \) O c sum dx240 N3 Z7 r8 x: n+ c. T% a9 t( ~
: e( q+ c' ?9 k0 O, I# g
local tempmaxp=r(max)
3 a7 l0 D' M# p6 y restore
$ B6 j9 \7 _+ {0 d i% w# ~ }
u7 p8 V- M; c6 T
8 }8 V5 | o0 A, H
. C i1 y& G2 z1 ^: p
+ K( I" J. r: Z' P5 m3 {: `. g, F! I% H8 j7 c; ~! z, r+ }
gen maxp=`tempmaxp' in 1' _# s8 R1 _" d7 }1 {, @$ c
% P# j+ h0 N/ t! N# R *240maxp( Z* [" W: y& y0 U) @6 y" y. F0 j
* k: \' x. V3 e/ S* m* y& s; |
: ]) o. w* n o. w2 A( m+ h/ E *-------------ddy240pminp左侧高峰值-----
' c' K0 [1 Q. ~0 N8 g1 \ a ( O6 s$ i5 U6 t- `6 y
preserve 8 K" L- s6 R! s) f. ~1 Q
) h( l z2 ]$ m# q0 N
keep if dx240<`tempminp'+ [* }( q- k* |) n8 @2 a4 B0 a
0 h8 g; ?- L+ v, k. y& G# g: P keep if ddy240>0/ D) p! u; S+ o
8 B# h! L2 Q( x+ d, G8 c count
' | V* E7 `* [. ~ - r* y) i" n4 u1 I
if r(N)>2 {# _- R, B7 [6 B* a9 L
2 l5 n8 m- u1 g% N pkexamine dx240 ddy2406 o, ?# Y0 |/ Y3 k. Z" N( w
, H; Z) w2 P( y$ K local tempminphddy240=r(tomc)
1 r1 }; ?! p; X0 L* t& c& H restore: g: i+ |1 L9 R6 C I4 P
}
" \3 S" X0 Y) G3 ^% u% c/ b$ E ' n( G* o. C0 M5 K
else {" G: n2 M/ F# j: |$ l
restore
q" c8 _: @1 V N di "cannot find pminphddy240"
) s( H" U, \* u. L- L- ~
/ L; J9 t/ v0 b5 a3 V 5 P% O) ~) y7 @ s, V
sum dx240# k4 }7 l& l( Q; V
local tempminphddy240=r(mean) 0 Q* @" b# M+ J6 i1 E& ?
6 Q7 k5 S" ?# Y" S
( B; Z8 u' o9 x0 ]' o! X }
& D2 O& t g) [2 {+ l: t
' [! j- M% u* P" _ ' I- Z/ h. y4 a8 c+ a' F+ `) U
& I" i8 @' C' b: e( T3 c& a' \& w
$ {( @* P V* L, u7 n
, _ c- \& g. i6 e! {1 ]& L- Y8 ^; l
2 Y* _' X0 o" g" a0 G3 r* [! ` gen pminphddy240=`tempminphddy240' in 1# ]9 }& [+ @7 G2 k; G: b9 p
' L6 U' L% ?- c$ c$ P
9 H* }" m' C; ?. z1 c( w2 l- S
*-------------ddy240pminp右侧低峰值 -----------------# M- w- W% @; m) Y' f$ \; Z; @
preserve
/ S" |( i) G' y- k
1 ^; e. B3 F, H% u4 H$ g5 o keep if dx240>`tempminp'
- b9 }5 K7 n8 W# S: P. x; T
3 u8 C) i" u, I; _ keep if dx240<`tempmaxp'* ]* n* M' n: Q1 x @
/ j- ?) M( g/ T$ Z keep if ddy240<0/ Z3 j5 ?1 b6 W+ m
6 P `7 o! Q: W; K
gen temddy240=-ddy240: [) q. v5 t! o0 r- d5 N
9 L L: Y8 @5 ^! s# T$ v. @ count3 Q" Z& p1 e: g
|# ]( c/ C5 n if r(N)>2 {1 T; h9 I% }0 W9 B3 P
/ ?+ ^- n7 T( L# ]7 T0 Z$ u7 y pkexamine dx240 temddy2402 ?; \: z, F" [9 J& H9 v
2 ?% m- s1 z* y A" ] local tempminplddy240=r(tomc)
- k+ I; N. p# w5 Q. ] restore# t4 M. x$ w- y
}
* ` G9 A! X8 U2 e+ r/ z 3 B$ w: }1 {- r1 C1 W
else {# y2 m# r& {! n" x! c5 }( J# O, P8 B
, h. `' a% `( \ A$ c! e
di "cannot find pminplddy240"
) b5 c# T. m% Z5 M' j8 W; s restore
" |( N' t6 @: E7 B9 l1 q( b
- M7 }3 Z8 N& I9 k& N+ @" u sum dx240
0 d. @! ~ _/ L7 r* r7 D( a# o local tempminplddy240=r(mean); c) S6 w$ f- s% g" H
0 ?5 ?7 w8 k) \& `
8 D2 G& d9 m1 H2 J3 X
}; E, t+ K: m8 S# ~- Q+ g
- f- C( u0 Z. B' ?0 t. Y9 q & |( K( ]) l7 U
+ O9 A1 H ^% b. ]% ?1 ^ F% D& _7 |2 u8 |8 a \
. Y3 o+ q. P, ^1 j) b x* b
gen pminplddy240=`tempminplddy240' in 13 ~5 y9 Y; z: D. g) \1 V
7 f$ {6 x' q* j/ r *-------------ddy240pmaxp左侧高峰值 -------------------0 M. Y: X0 {; A
8 f4 m6 B9 [& I% L4 V, h) y2 h preserve 1 l* A+ ~, S' N" x Z n8 L
1 c, u, n, E5 S% d: b
keep if dx240>`tempminp'
; N" V7 p1 D2 b( b/ m$ y
. q0 l! m: F' V- J" b5 @' G keep if dx240<`tempmaxp' L2 `1 ?% B9 b7 F& E
2 W9 g1 O& Q/ k2 R& T- K keep if ddy240>0# A( h# r w5 n' G ^) g
count \7 T7 W9 n* J4 t
, k! i& q8 e. R, _% e9 b if r(N)>2 {7 b' |7 I9 D& j$ D' X( \$ N0 p
7 n# l6 K( U) ? N4 k h
pkexamine dx240 ddy240
, j3 K7 w) S. [$ S1 {6 W
2 l/ }8 U0 n i( u4 k local tempmaxphddy240=r(tomc) * F/ x8 I3 { O$ ]9 p) U( ^6 U+ q9 ?
# O. s& W+ a- j1 l! @
restore2 U- H& f: ?8 ]# T/ N7 M
}
2 P+ H) Y9 S( N+ |9 v6 t" }
; ~! l% c/ W* _) F" d/ B else {
' f! d4 A4 e4 N, |
0 [- F) _% s4 @3 ^9 h di "cannot find pmaxphddy240"
; E5 l8 }2 E7 w restore6 r7 h w' E. d; j
! s& u* k2 R+ D' W! L( j }9 v sum dx240
! q: d: n' X' ]/ @7 `7 ` local tempmaxphddy240=r(mean) ' p: G* x$ `5 n9 X
; d/ v+ d I" w0 A2 v
/ T. y6 c2 O; s& x$ X# L2 S
}
/ v5 g* o( `1 g/ v( B- L6 v* H 4 J1 |+ C/ `) c A/ D
" O- Y; a; z. ]1 O: q% e
+ j9 H2 z, C- N
) _, U z( u( j. S E, ?- D9 S ] 3 I2 } E" M1 z- S9 e, t8 b% m
* @9 D" [! B4 d9 f! x
gen pmaxphddy240=`tempmaxphddy240' in 1
; x1 K1 Q4 Y: p+ j( Y $ H& q- b+ f+ @4 H
) j; o( I& q' ]6 D. f
*-------------ddy240pmaxp右侧低峰值 -------------------
/ O& O5 a" W) s j$ @% Q4 N 9 v( Y7 R* a7 T3 ~
preserve 0 |) Q8 r/ O$ ?. i
6 r" L X6 v: K) E8 ~/ z# p keep if dx240>`tempmaxp'+ E. n* F$ S, U) u6 v; q2 x
; g0 X1 ~& J1 Q+ b4 A8 G gen temddy240=-ddy240
, |/ L# E* i* [8 Q r3 O% J0 B 5 Q# K7 e* g% \2 ~6 z; {% w) S |2 g. _0 _
keep if temddy240>0
1 |7 l" |! d% o, p6 p 7 x1 H3 C! @ b) D7 \8 c( \8 e2 Q8 t# F
count* ?, a4 r# R: }+ H$ `
9 x4 c H5 K! h* {) v9 ` if r(N)>2 {
9 Z3 F; R' B5 n5 S
0 {# H6 A. l" `$ V5 [0 L' j pkexamine dx240 temddy240
* c3 n, g" L1 P% c 9 w' {, a( @( w0 p l$ Y
local tempmaxplddy240=r(tomc)
- ^# J5 R+ b: k @% z, } restore! O, U2 K0 |2 l* {) I; y1 V7 a
}8 W& W& i* n* K1 H* E2 k8 I
, S0 S* H2 z5 z3 C0 j
else {8 m- b: \( `; K( x' |% l" ^
restore9 E# W) f4 x* v4 C9 ?6 |
di "cannot find pmaxlhddy240"
5 T& e* J8 Y# n 8 s9 U; j/ _8 s% j( c
( M3 o9 Q( t9 K4 n* X
sum dx240
5 f8 S8 T* e/ b m5 T' } local tempmaxplddy240=r(mean) in 1
* l. `5 J5 X* q% t# s# \ 3 G2 `1 i& r$ e
2 w F5 l1 n6 y3 h' t. N/ ?
}, |. ]% ^# K' f( O
& @; W$ [# \- C
, ?1 }$ I3 w, @& @5 _7 W/ m6 R
2 X1 [9 B, P6 i4 p; w8 s# O( v
5 [% m# M- O) f; T. u: p% x- w, i6 \$ H
$ i7 N% i* U+ R( C5 T 3 w$ @/ y$ Y. l: U3 d4 p6 ^- F$ ~
gen pmaxplddy240=`tempmaxphddy240' in 1# X% j' \/ i4 |2 D( K; n
& r% ` ]) i- F# {( d *------------------------------------- N6 f s6 |! M' u' q) [
m. ^. R1 ?9 u1 m5 K, E; H3 e; h gen price5d=v5 in 1/202 Z, r9 ~- ]1 J: e" N% P
, K7 C+ O9 `3 {2 {. Z1 G
gen price5yy=_n in 1/20; t- s2 U0 v5 d: M5 h1 X
% L9 V6 G1 g6 z! P gen price5y=price5yy*(dy240max-dy240min)/20
, o1 f4 n; t1 j4 G* k( P$ a
, L8 D6 E; j Z *price5y &price5d
* k# d* p! B+ e# [ [# j $ d& {# p9 e9 o. x" D
gen priceny=price5y in 1
5 y" U) B V0 F( W4 P+ k8 X! @- O / y6 I) y5 W" }1 i
gen pricen=v5 in 13 [1 _$ {3 O- e1 K: |6 a- `
0 p' t, d- M6 p: T- ^, [5 `. S2 `
m( T* o7 b' o$ ?, l *priceny &pricen
) w) c9 l! [( w$ D 6 K; J; S9 d$ e4 u
$ D$ i5 m! H. L
*-------------------------graph------------------
) ?% l c! v+ ? M* S( l1 ]( g. 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)* d/ w) Q) A z. x% V- \6 Z
0 [) E5 @$ U( E4 ~4 A* ---------可选项目----------------------
7 @6 x5 t' ?4 T$ K*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))( ?/ m5 r; Q1 |$ o
}
2 W8 V7 Z3 h2 o; Q* ?) A0 Pend! v$ C. V( k; O* w! m! p7 o
|
|