|
|
maodeng 发表于 2013-1-28 13:13 4 S% G v6 A2 _' ^8 |3 b
. hello 3002361 ~9 \6 N1 O7 R3 p- t6 } m; w
statement out of context6 U! L/ p# r" w9 D* C5 B
r(119); . w. C! _! D) t& I F* g" w
抱歉,最近太忙了
?" ]0 t2 L, E0 m' U
- l) {7 G4 l0 }- \300236 我用下面的程序试过,没问题
# F5 i8 J8 ] V- z, f4 _9 T* c& I* g6 Z" q N, C
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试% R: O0 Y8 ?7 R8 U. ~6 n
( D* \. A8 y. |* o5 r
capture program drop hello4 Y8 E1 a* s. q; f" p: ]7 k
8 {$ o4 f3 e8 f, m' q! B2 ?% @program hello
* c; E* C1 p9 l; i0 Q* U) `0 Y2 r8 [1 c' }+ `+ J
quietly {* W- u% Q& i& C3 }' i9 p5 i
" y( h: k$ T& k" O9 w8 k' P% kclear3 J# P7 F P; ^% P
% [% o% c6 u# M L, fcd D:\stock\test\source
( x: ~8 V$ Q! ~5 Q# D$ N! z: V% \' j
insheet using `1'.txt; n; ?0 t( b% t8 B2 \
, @2 d5 w1 i: j4 x keep if v5>0
2 g" U: | C4 m q- I( `, [$ P
' i" `0 ?8 h+ |) s, N( ` gen vt=_n8 {1 c9 ^& f) r
+ W8 y1 B/ D0 f @ tsset vt& l8 ^4 O$ j2 V7 W
2 Z9 i: C- q& A. R \1 Y gen zf=D1.v5
( w w2 b4 t# ~) Z2 r; {
e4 U# s& R/ x1 i gsort -v1- Y8 O* D. l4 ?
" G6 I( O: P9 t; a) _6 [ gen avol=v7/v5
6 n. P2 X& z& j% J! R! y
) H" f6 m1 G) G5 N keep if avol>09 Y; c0 x4 m5 ~4 b
& D8 X6 M! [# P+ B
drop vt
' X, t& B# ~- m5 i0 b9 [
" r% q( B9 [8 u. P: b& P& {) d gen vt=_n* r* M& u5 T9 q* I5 w1 M# Z) m
8 a# x7 u5 [! x tsset vt$ z& A. m. Z# ?( h/ G! R
0 v6 R3 m! S! ?' N: ~. f- H6 z
sum v5 [aw =avol]
; h+ v& I) y! o0 s) |- J, g' [" e" z' P" o# r& y# @8 x, ^6 T, k2 K
gen amean=r(mean) in 13 |0 z* M9 p( v8 y% l
, I' n8 d ^# }; K
* 总加权平均值 amean
. Y+ T$ d$ ?) F8 y
7 a, e& ]9 @6 r* ]& y4 j9 R7 O
~+ A1 y/ v- x+ T0 u) L keep in 1/240
$ B; \8 \& r5 j M& h9 W1 P3 t) Z( h/ Q b9 v
sum v5 [aw =avol]
; R* u1 f# O) v) m3 `1 _! d/ a6 Z j$ q. X8 X7 a
gen mean240=r(mean) in 15 t. H+ k! H) i& ]5 H
* k& f+ {4 h7 _. q R *240加权平均值 mean240
6 N' W9 Q) W/ j
6 H$ S1 `4 ], K& V$ B) Z set obs 500 ! E& p6 X( {6 c
$ K* X3 q6 O6 o# J2 ~- H) n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
& J% h! C1 o0 f0 ^' _6 s* H 8 a3 O3 H# x5 T3 [: z& G; y5 ~; @
*240 kdensity(dx240 dy240); ~, _4 s0 k7 R/ |3 i
U+ x1 l( h! a0 I; ]
sum dy240
& @* B" J( n) X# f 7 [5 L W# O* T! W7 B
gen yxis=r(max) in 1; Q# K) f- F, S' p$ L" l; U
8 |- Q* W" } k: v6 L+ D! [
gen yxis2=yxis/2
! g: m2 \! ?3 A) s. L1 v
7 s# e4 o7 m; t% B5 h *yxis
. n5 Q' G% X1 H! d: c: |9 Z
7 g6 l: z* }0 a" ?. l. }6 b gen dy240max=r(max)2 y3 I: d5 m2 o4 ^) n0 F" Q7 c1 u Q
) z' r+ j& v! P+ j% L, u gen dy240minp=r(min). m- v8 k- Z6 r0 U4 n
/ B' B( r& z' t" I3 R# F" { gen vtt=_n
* @% V1 M) r' i/ v$ W5 S: g0 k$ u A& w! d
tsset vtt1 }# U& c( B$ P' k
0 o2 N, h' J8 I% \8 x5 a/ _
gen ddy240=D1.dy240/D1.dx2406 Z2 a. n9 u' ?
. u% @9 w3 C8 f7 F9 g5 _) f
sum ddy240
6 d9 a& b2 `" X5 a' B/ w - Y/ B8 ^, E7 F" y0 ]7 J
gen ddy240max=r(max)
# ^8 e! g2 P" Y. H2 d
- M9 E5 n9 @1 B$ b gen ddy240min=r(min)7 ]- D8 L5 n# y9 E' L& G: Q5 C
. M! N2 e- x$ P# |+ _
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
, r- g V0 I; Z2 _, v5 q6 j% L
% O9 s# Y. E9 H% j- a0 g+ X sum ddy240g
3 h6 z1 i; @( ]7 \4 y7 ?8 }
1 T- V+ \5 D: o' Y1 K8 v6 L! Z gen yxis3=r(min) in 1
; G2 J- k; l5 Q % K3 P$ l) S0 {2 c) N
gen yxis4=0 in 12 N: P. M( @7 b/ O7 R, X
6 z" y0 K; l/ y. c# v *ddy240g 2 d C% E# z1 P7 E+ J
9 ^6 L, d4 o# n& T/ A0 P4 h! c6 C ' \6 n+ t- a. q6 A6 z& ^2 s- `; X
preserve 4 M7 V# u; N) O0 e
8 a4 H- I I! Z- ?3 Z4 Q3 d
sum v5 [aw =avol]
9 ]6 v% r1 u( u0 ~7 @/ z & J1 Q; `" Z$ l5 ]$ W
keep if dx240<r(mean)
0 s" K5 E% K. \+ ^* M
* o0 @0 p- x1 a" G$ f& n. ?9 u sum ddy240
. T+ {* ^" z9 ^ o+ R
' n# u8 ^ F' G. Y if r(min)<0 {
7 P# s% R a; Y; Z! \3 |# ~ . L& c S( C9 p4 L8 @% r- }
keep if ddy240<=0
6 @ Z" \8 k$ h' [ + @) B* G0 C$ u! w( ?3 B
count
) _% V7 X; t, b; ?' L8 a ( l2 t' W" W1 X- x# d9 q) d
if r(N)>2 {
6 ]. N ^1 c6 }/ ^4 M& R$ o& f
$ h% {2 |6 E/ v' h8 O5 U; M" ^ pkexamine dx240 dy240
% @" v$ T! x% ]& e: u+ ] - O: Y! C8 [3 B# ^" s i& Q
local tempminp=r(tomc)4 ~5 H- @( ~& W
restore
& ^4 n$ r8 d/ J% _3 y+ ? }
! A% a( o! S, r0 x; f 0 f3 F2 R! U- k- Z) b; B" C& ]3 D
else {: ? m# a3 E' ^
6 S% ?7 R$ S6 S- N! E2 z
di "cannot find minp"
& ]$ p% K. ^) F 5 R# F0 x% f3 x% R M* y; F
restore ! X X! x) Q3 D# D# K! x1 u
sum dx240
" [; N4 ]" U' e Z# P# ^5 O3 x local tempminp=r(mean), t# A# G c0 p J5 s( N
/ O* L( s1 X- h+ f$ O
}3 j) B& n# n$ \, g' n( B' W
}+ X6 }: {5 H1 [- p; A$ B
else {; m" @) C% a' R8 k, r' l
* i, J: d6 f1 |# J0 |: Z+ F- F keep if ddy240<=r(min)
6 U0 F3 Z( G1 [7 }) _4 z 2 R) ]9 P5 L' n$ l6 Q6 ^4 J- F
sum dx2405 X5 A3 p/ O& e' W; X
: D! h, D) C+ J" R3 M' s local tempminp=r(min)' ~' T0 g/ m& _& Y
restore
, p3 W7 [0 `* ^) B }. e k5 d8 _& d4 z6 R+ K8 H8 L( t5 p
. H4 C% _$ M# c$ q/ W- U
# A9 K. y2 ?( j5 S9 f
' q% q, u8 o7 o U gen minp=`tempminp' in 10 }. V8 c" B$ i' w1 S7 t
*240 minp0 d0 Y) M6 a! y$ D, y! @" @
# m& G0 K) `: N* c! M
% ~% A9 }, ~- f' j4 E9 i: \, r' Q # W% Q3 s7 W6 t |: I
preserve
1 @9 V% S# K( o0 y
' k1 w) p* t3 t. H$ g9 n sum v5 [aw =avol]
2 r& g( A; d$ Q . D" ?% `/ g% f0 J6 H5 ^
keep if dx240>r(mean)
% K, R V0 L& V* w 0 e2 r! Q9 ~/ K4 l6 i) |5 g' [
sum ddy240. P2 z9 }% Z* p2 _- ?
4 d, h$ ^# h& J3 }6 ]' H: r if r(max)>0 {
8 u9 i- u m' w" B; h % R: U& N3 C. B$ o
keep if ddy240>=0
" g4 i. b1 V( K3 y% M% L/ |- { }2 @* f' ?6 e/ c; C" _: g. U- e
count
, Z* G7 ~7 L; d+ f) Z
' `1 T# G( l( F! D if r(N)>2 {9 T1 s. F( x8 G
: L. z" g% T( ?/ X
pkexamine dx240 dy240
/ a1 r' B- K! u3 C
5 j) n. }' t; X9 R local tempmaxp=r(tomc) 2 ^) P6 s8 n/ m6 C7 _1 h: U; F3 |0 @
restore
4 y3 V3 z4 ?& F2 k4 h }) ]. n+ W/ @3 s8 e
" Q1 c5 i3 [8 u& R: j; X
9 Q5 t/ O# ?" h2 E else {& L; F1 u% ]" o, H; e( v5 E
restore # D5 P" i. B* p2 ?9 z: ^, y
di "cannot find maxp"1 \* V! B5 s2 D' B- G" K- q
! C4 ~. j' X8 t4 h$ N, \ : h( e+ j Q- n5 ^$ ^) p
sum dx240- j: H. c2 c% \5 a) a: W, j& }
local tempmaxp=r(mean)
9 F0 y9 O U7 R' {
- Z' M0 H4 h/ ` }
7 y. K/ h- r8 O2 x# a1 | * n; R: @" P7 G# G4 t0 K
}3 x5 s9 }! _8 e0 A9 G
" q; @- E* H" f, b) _ else {0 _' r @3 O& M" i6 z; ~
$ ` W7 u# q# i
keep if ddy240>=r(max)
" Z1 ~0 W8 T2 f) y : N- J0 m; i& n0 b, _# d$ n- P0 k- K
sum dx240/ y1 h' M( P3 h% f" R6 f- _: |
7 |! J2 l; y) V0 e local tempmaxp=r(max) 1 G, l$ k' J4 S3 U8 i6 o
restore 8 T* g, l- [! A! @; ?
}' c( U# r, b/ ~* ?' u
4 c0 u2 ]& S/ P. v, k) E. `5 u7 |( T+ R, ?8 ]8 a! ]
$ g: a$ A( p/ ]) I* H( @# C8 m0 u: v7 q5 G2 f6 G ^3 U9 C
gen maxp=`tempmaxp' in 1( [* {& h/ `2 T1 _4 {: U
7 Y; o4 P! V# L' S4 i *240maxp7 h* P' s) N4 @/ f/ p; K$ p) G, f
* o3 }4 M c6 _8 j
/ O! q% z4 c+ {3 |+ Y *-------------ddy240pminp左侧高峰值-----0 e, w9 X5 p. X7 P% f' y, p/ P6 r, O6 E
. d6 A& Q( N4 J5 F0 F5 L6 B preserve , c/ p7 x o0 J: X
. u# d* P4 F- q6 Y
keep if dx240<`tempminp'& Q7 ]* r: g4 o& _% |1 z& M; k+ Z
" r( F5 {: C# W1 d keep if ddy240>00 |% o) `% K9 Z6 T% x
2 T& s g+ E; t count
{: k5 s! n' r8 }
2 K J _3 [, V/ Z7 K0 u2 B v if r(N)>2 {
- _% l5 z, h$ f) f2 Q2 H. m1 u 9 |: m, A0 [( Q3 |2 d9 i1 l' {
pkexamine dx240 ddy240
4 m) _; r5 T) I" Q& U 1 s0 o# `$ S s1 @
local tempminphddy240=r(tomc)
F) X s5 F; w1 h/ W restore
j9 c' q* K) n8 g1 W8 e }; P8 d: E( R9 ]
: N; ?; W) f1 n8 C else {
4 G% \4 X4 H$ }6 t8 W0 h2 ^4 t6 C restore
! ^+ G& I+ ^7 I+ T di "cannot find pminphddy240"
. s5 z+ ]7 x- }- P% l
, i0 s, Y" |+ d: s( B
+ j; A4 l( W3 J' e! S! b sum dx240" _" r* I: ~) b9 s+ u1 v
local tempminphddy240=r(mean) , B: a& E; g$ I# `7 w( G
) E. D2 K, Q. U8 i2 @
) D! k9 S& K8 b2 f' C9 q: r! k! z }# t% T3 _- |( E
6 J2 M* p# B7 B, {: K6 a
) M# M' r5 A9 b4 x0 [! E8 k
7 X5 \* a" F: b: L7 g + O1 e S5 D, ~+ g4 @: H
3 V8 i4 h2 e3 q* @1 E: H" S! i / M9 J0 E6 M6 A
gen pminphddy240=`tempminphddy240' in 1
" h3 C0 Y+ g$ l# q8 j, Z 3 h, ^( {0 R3 m5 {* m1 R" m. Y
: ]1 k( ?; U8 w v6 d- X *-------------ddy240pminp右侧低峰值 -----------------
* |7 [) k' O+ W C' Z preserve
. F1 r" G( H3 ^
) M2 c' Z6 N6 u+ `6 G$ ] keep if dx240>`tempminp'
7 L9 o P/ y# l* Q" K 6 n' X& @. F- u7 q3 g/ [: a$ |
keep if dx240<`tempmaxp'% G+ g" o5 z5 W' ]( }
8 p: @! B$ P2 I [; n0 m
keep if ddy240<00 l' ^2 N+ T" V& U% u. f5 q5 Y
9 P4 _" O! c; m1 }# N
gen temddy240=-ddy240
X$ s' L, u' g, L7 h , s5 r* ^5 T( J9 O- Z" s
count1 s4 b. b X# v( C) D$ @# Y5 s
0 f2 F2 q, I4 X ~, f7 H# |. i if r(N)>2 {
0 O6 e/ G" w9 X1 D" @1 g1 g1 z
, k7 _/ j+ e8 d/ n pkexamine dx240 temddy240- O* U4 w$ c% \; c! O9 o( U9 c
6 O$ S$ \+ N9 J" ?( A local tempminplddy240=r(tomc)2 h- o: i; ~+ K' g5 D" a
restore2 ^: K- o7 w. K4 \
}
, o+ a1 b2 ~( l+ R! A3 N
& G! G5 b( O6 _ else {
6 h' r2 R1 g8 F( R& \ 1 N9 `. R8 `* w; R$ S1 ^4 y
di "cannot find pminplddy240"
/ H3 A8 y: N7 ` restore8 a+ h0 e2 [- g2 I
2 G& O4 r5 {! [5 V sum dx2407 d4 G% y& N, k Y; ~7 }
local tempminplddy240=r(mean)1 F# W. s/ p1 M( p" X
% l6 r1 n0 P/ J0 g$ o 4 @, p% z) w0 X, T: g0 [ V
}
7 ^9 v% v* ^2 X. i# @" k, y; U9 t+ v
7 ~* z: c' B0 j8 x
& T7 F& L- J6 `1 U" \; n6 Q
$ _& U: }$ R+ D5 ` % |6 E# E! T j" B
. V( A0 r5 h. r: `4 V gen pminplddy240=`tempminplddy240' in 1' E, |" F! ~# H1 S8 d. }* L
" ]/ {0 e6 m9 I) ~/ b *-------------ddy240pmaxp左侧高峰值 ------------------- h2 e/ j. n% N3 U
) |. A) T2 z, k5 O5 l. }
preserve
, P5 f9 B# _- @6 f$ B ' i3 F' k d n% G5 w* H/ T. e
keep if dx240>`tempminp'
4 x, f# `+ o1 }9 W 0 l# _" s7 H& m, A7 l6 Z$ v
keep if dx240<`tempmaxp'7 n: F; ~8 a2 D9 V, I. x
9 U" Q# Y- s9 c" }4 f0 x" K keep if ddy240>0
" @: P* N @/ u6 m0 Z' p1 a- M4 `# D count
8 h0 g7 ~8 m& W( T1 U8 \ 8 d' [' A1 _+ s- R; L& [
if r(N)>2 {" S$ C; D- f G& b, \+ p
: e% P& F* V0 @. H3 V0 Z6 V/ B pkexamine dx240 ddy240
# D2 |1 w5 o+ N6 S$ R+ e ) a" Q$ \- d8 `! ]( ]- [
local tempmaxphddy240=r(tomc) & ^/ E7 ]6 k/ n& z
1 J/ I9 `5 W4 ~2 W# x- l9 ?
restore) B; w8 E# P# y& ?7 u% n
}
. B( U6 g" L1 Q" c' ?; w
+ `5 J3 T/ v/ `6 {) K else {" Q) W# [2 t' o6 i; F
! ^, X- M# U0 K di "cannot find pmaxphddy240"
?+ _& [* d# ?. p% j: y4 F restore
) _5 O* R# F* b9 d. m4 l% f6 }" X5 ]$ Q! V / R# F6 H6 `: S+ P& f- L! \4 Z4 l
sum dx240
+ e# M1 h+ ]. w2 \; E8 q local tempmaxphddy240=r(mean)
% c3 A8 j p+ F' G, K
, m4 |& e5 h5 X
3 T O- e) f9 B: N: N2 ` A }$ P9 A9 m& W- o! Q& J
& H/ P9 N6 |- o8 ~
) B4 ^! s1 h7 I0 ~, Z; ?% H. M! e* k9 u
' z& ~/ h3 E: s+ l% @4 v
7 p1 I1 @- u7 d7 |9 R; w: }$ F
* w" j! |! n6 H2 {. v 6 N. x% A. |( h' @( b, f2 ] \' ?+ _ i
gen pmaxphddy240=`tempmaxphddy240' in 1" m& l! o" j% j) Q$ K! B4 [
5 L! o% l: Y' T! d3 h
" c, `7 F: y! @# ?4 j5 W4 v' m
*-------------ddy240pmaxp右侧低峰值 -------------------/ J d; q$ w0 R& |% W9 R
8 G% l( a: Z B/ I* [: G preserve
3 }! A5 P1 J: L/ H3 F
' s9 o# m: ]1 L9 ?6 A( q keep if dx240>`tempmaxp'# A6 _! O7 t& R2 k0 z; L
6 B+ A% M+ E6 X9 i
gen temddy240=-ddy240
. d0 o' j$ M! ^- ?
4 m" i/ e w. [! a" C; N+ n keep if temddy240>00 P2 M! m: M3 W2 X! e1 w
) c) P4 J2 r# u9 h# G$ E; I count. h6 Y, a4 W% m$ {8 q
* H! H. }, D" s0 i1 Y9 [
if r(N)>2 {3 [+ a* U, F) @5 W+ w K9 o- x: F, J( j
1 Z( ]. w8 a5 R2 G; k0 }
pkexamine dx240 temddy240
9 u3 |9 r. r& n7 P 4 _2 ^+ |5 U0 z6 h6 n# H& x s# @
local tempmaxplddy240=r(tomc) ' m7 N! J: ~4 j q
restore% s, M# d! r1 H8 z! [$ i0 i! _
}' \/ V- d- j8 b* p5 w; d
! \! |7 o# B: A8 {$ ? else {
& i1 J1 w4 Y! x# J" Z: j restore
- R" B; q! h% I- a di "cannot find pmaxlhddy240"$ o5 S4 Z3 Q4 v `& r$ W" U \* U
. ]- Y: S- K4 \
. b4 P0 m+ g' V( ]# j9 \ sum dx240
! F S. p" @, H local tempmaxplddy240=r(mean) in 1+ S2 r$ W' C3 s# X b6 }
- N+ M5 _4 @. j/ O/ x
e" ~. d! ~- D }; z+ J: d$ ?: e O; }& } R" v
- M- f: o! K: \8 u2 ]2 W: M! F 7 R: k' o: Q- N; z. ^9 b, d
% J" Q$ ?$ P9 Q% ?
2 w# n6 E) a! T4 G x0 v ( E- p+ T- ]+ p1 n8 {
$ v; [ v8 f2 @) M) H gen pmaxplddy240=`tempmaxphddy240' in 1
% n/ n3 H# O- u4 U* N ( u0 _$ n- s9 H, M6 _- A: |
*-------------------------------------
5 _8 @& f* k6 D, N
& d/ t) P9 ^( p gen price5d=v5 in 1/20
A4 L! u% M" \
9 y* n# v* ?2 _4 S# v gen price5yy=_n in 1/20
/ y7 W0 o2 a1 ^; ~9 F& ?; h # |) D2 s, i) `9 e0 ], _
gen price5y=price5yy*(dy240max-dy240min)/20# @. c+ c/ j& s) Y5 g* g
( S, b/ r7 c3 e$ n1 r7 a
*price5y &price5d
7 l, R0 c6 X- v+ E/ Z6 V
, u1 u' o* J8 m/ D- f- v. J* K gen priceny=price5y in 1
7 E" H3 f0 R1 \3 b6 v" M& \- ]
; }# t1 b* B8 T gen pricen=v5 in 1
. e8 S9 u7 w6 U1 p2 |
8 x8 N$ x6 ?+ {9 N
$ }# Y) l) ~- t! j4 t! I) I7 s *priceny &pricen9 e4 M8 ^# E9 y; J% O$ s
) Q+ n& D' X0 m5 N+ j8 G
0 L! o5 E9 d/ M+ {0 V+ i8 g
*-------------------------graph------------------
: }7 o4 W, `; t6 J4 T
' |0 [ p3 c) c 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)# Y9 o0 S6 h3 z. j7 i1 G
+ n; h8 T& f/ M4 n+ a# U( a
* ---------可选项目----------------------5 o) K' p. T( C: |" H
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
' h# t, Y! X9 x% X7 q6 _7 a1 M}/ j l$ f' b5 g" b
end& [0 @0 y$ A: A, {
|
|