|
|
maodeng 发表于 2013-1-28 13:13 ![]()
! J& |# x% _1 Y0 N! S. hello 300236
5 V( |% S3 c& g+ Wstatement out of context0 V1 d5 S. h# s+ B8 T- I
r(119);
; {7 w& N- ~% V( |抱歉,最近太忙了
, m0 F H/ j j3 W! O) t. C% _
) K5 _! A) w. D2 S6 a5 X300236 我用下面的程序试过,没问题
) b0 T/ _/ x( X& s* W* L4 G
3 g2 Z! P; A: R6 [* l/ M! w8 Z你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
" C2 b. e( n: i2 z
6 a) g( I. y/ P. r: t) kcapture program drop hello/ v. y f. z7 a3 W
) b. [1 p! A# e; Z. J$ k- O* Tprogram hello& Q- L9 A- g- q0 s. a6 |& _, s. f
4 i! u8 E, D1 o$ P
quietly {
( W, A* l3 M3 k. A6 C a! p8 p7 J$ n# A( q4 x
clear( E! R X Z9 A- R
* }: o. s- `! }2 u* g% S( U
cd D:\stock\test\source7 i# [3 _; v( _! h7 M
! ]6 o! i' i _5 v& j. r/ I) C' \insheet using `1'.txt
- w- z) U. d7 y' R$ A! s3 k
6 H7 X# M' o% h+ _7 z keep if v5>0
( S+ {2 ?4 f$ X5 i) V8 U
. U9 a9 t& n, C( P gen vt=_n( a0 P& W5 ?1 X i6 h( [
9 }( k6 [; K9 f4 ?7 y+ z) Z0 q tsset vt
, H+ l( `$ v) f( P* U4 R5 q. b5 R* [9 I5 Y/ o3 @* W
gen zf=D1.v5
) M0 c' M; X- ^: r+ {
. X& b+ d8 w9 y* Y* k3 Z gsort -v1
) f9 S" b, F$ j% G
) E! Y0 c# n5 ~ o gen avol=v7/v5: P0 m6 M0 ?7 u2 O- |! m; @( u
' D. ]+ U8 D/ \ J* m keep if avol>0% R! B; [. @4 x0 j5 u0 S, k/ s- ]' V
1 l) Q* @& ~4 n" o6 Q2 P
drop vt! q5 e. ~) S1 r" N" G& |
5 W# p$ x8 ^+ c gen vt=_n
8 f1 C! Q' L6 z% @ $ l5 f' d- O, O* L; v
tsset vt
. x5 A2 ^5 j6 L. [4 R! a
, z* s) j2 d6 Z5 h `% |$ ]% K2 b9 [ sum v5 [aw =avol]
- f- Z9 V$ P- ^, J: S. I1 o& Z" p c% z: D: B
gen amean=r(mean) in 1) g; R* A" l% h9 l
/ `/ ~+ z$ F: f1 \; U Y, `
* 总加权平均值 amean
+ R; G0 m6 E; m% p0 Q' K+ F" }
+ |! v+ S6 i* p, y" }+ O
O p1 J p& o! ?6 U( z5 R/ @+ Y3 R keep in 1/240
- k" e$ H# m) Z5 G7 g& ?+ U+ } H$ R& [' w1 l. ^4 p- @* O2 v
sum v5 [aw =avol]2 z* f# A, y0 U8 q0 O3 e0 l6 }
. b% S" n( a# U4 D( _4 I gen mean240=r(mean) in 1 v2 R# d, W, w" X5 A6 Y* E' N7 i
& A& v0 ~: P2 V. R# q& s *240加权平均值 mean240
/ W% M- M; A. Z6 _; e% n1 p
/ A0 S* D# l, `2 J( F set obs 500
) f& v7 M" S' P ( P! x# r( g8 O& ?
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph% y+ }, T# t5 a9 b, W
# G9 K: N1 R% G+ s
*240 kdensity(dx240 dy240)- D" Z% l: K' m1 X; R: y5 O8 f* K
$ c8 b: S5 x* ~% k: E, h5 y8 Y/ u. w sum dy240+ m& |# E- E- T Z" e; r; H. E
3 |# M! S' q6 j" |6 A gen yxis=r(max) in 1
! B- s( n" t" N) t& F2 Z8 B3 J " h0 |1 r" s- i; v3 q. {2 c' K
gen yxis2=yxis/28 j3 _) C/ j/ v% H
' _$ `0 O9 J9 y$ X3 Y2 Z
*yxis
, `. c& `. z) V6 G4 Z* r9 W 1 O3 C! g) V/ _
gen dy240max=r(max)
! {( x6 y1 o9 C
! Y/ [5 ^* l. m, x& k8 O gen dy240minp=r(min)
+ C" B8 v _& U/ j: K
; z0 N5 X. Y# y# { gen vtt=_n
2 @; j* m/ b O6 ?8 H$ K. E5 s0 n/ h7 p( i* v0 F8 ]: T
tsset vtt, k9 r, b0 w+ n# c
' I) N% ]/ _- c9 }; I3 D6 ]& F
gen ddy240=D1.dy240/D1.dx240
" E) m& p# z; Z9 g$ n5 [ o
0 c$ o5 F4 A& w! y2 k! H a sum ddy240
" F0 T3 a9 T1 l ! S! g, {! H: ?; F( n7 o
gen ddy240max=r(max)' ^4 W% c: t6 _
* A- E- c L- }( f/ b
gen ddy240min=r(min)" V, ~: V. ] d( @$ g
! I1 [3 B" H1 ]& l' H6 K$ n
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
) ^/ E) F* m1 W3 z 9 t2 J; g6 Y; l' c5 T
sum ddy240g
# ^, p y& ]4 z8 s3 l# K
0 u, ]8 K. N: f gen yxis3=r(min) in 14 @" U- n8 v- y* o% @( q& Q
1 R( D& B0 r. ^ o# z) H* s) z gen yxis4=0 in 1
3 V; _0 C# l0 e/ v7 P3 H ( R6 F/ A4 d Y) {4 W3 x
*ddy240g % _# N" t" }# ?& C: m1 A
0 R, {- ]& l2 @
0 b: c: V; R! W% ~7 }0 f6 x
preserve % |) }! i% a {7 G% @
0 J+ J$ U; K& l2 h9 M sum v5 [aw =avol]
4 F; P" i: y& X. W1 Z0 P* M& Q1 ~/ b
$ c3 M* b$ R" c: V8 g; S* Y keep if dx240<r(mean)
4 i- B+ M. a# E, C6 a 4 N h* V" e1 v1 l" b
sum ddy240
7 Z: u% q6 n1 p8 q5 v4 M " g! b# Y5 B/ ]" O
if r(min)<0 {
, g" D3 f) {; H; I" `, h
1 l* i) [4 J) Q) k$ G/ z8 R! ? keep if ddy240<=02 \ C4 c; W5 q' W+ y
5 N+ Q+ ]: z" k+ N- z count- f1 U* `, y7 O e2 k
; n7 l, y$ z! n) Z
if r(N)>2 {* F7 [, A6 F* E5 y
! g6 Y7 H* D. h1 t: O: h
pkexamine dx240 dy240, w% X0 N" F! e
# } G" c5 J m- X( t1 _& c local tempminp=r(tomc)/ \& I; t1 ]9 t) d4 P+ Y
restore ( \ v. `0 X' z7 U+ _) o# |; B
}
4 B4 e* J4 ~+ S. w# R7 O2 J
4 B7 l% P7 ?1 H, ~$ t9 t5 E' O else {7 @. x0 W. ^8 x/ y8 U
2 t+ s" i$ d+ a G di "cannot find minp", _0 p" K# o: N
2 q! b3 n- E) v% O
restore
1 s& m' y3 C. W- P4 R% }* i sum dx240
/ x" N6 G* P% f+ o. i l6 K local tempminp=r(mean)7 s1 I3 |9 { x( R- F1 j
/ O. R/ N% H# n) P9 i8 j6 K }: s* K2 G. v7 T4 P
}7 {9 H3 y8 j& L7 _' g% x
else {4 r2 {0 P( x3 G0 y4 K8 A
) W# D% L# a7 k8 v% ~2 g
keep if ddy240<=r(min)4 |5 C2 Q+ P4 N3 S
! G5 A' o0 M4 m sum dx240
( j y, L' E m# T9 p
1 q" O2 v& x+ V# M( ~ local tempminp=r(min)2 X- [4 S7 ]! @# |( S9 R
restore
3 }% @) Z% @' R5 J" ]/ ]: s }
3 Z: ?) ]' n- j4 {1 f4 P$ O" V3 m; @5 o3 o
: r- ^" W8 k) A, L) Q7 {( C& s, y8 M7 h& A" m
gen minp=`tempminp' in 1
" |& T/ a& c$ l" J6 D# n *240 minp; h+ D8 P: p/ Y/ t4 q
f9 ] X3 v+ I- m. c
- W7 \1 w& |4 E
/ L2 ]2 ]5 @5 A( ~' b4 ]$ k
preserve # j) G* ]- u. s1 c
2 i3 o, h& _7 y9 H
sum v5 [aw =avol]
4 Y7 i; {9 Y( Q 3 T9 X" b/ t; P: q" l
keep if dx240>r(mean)
2 w8 g: F5 S, `2 q) u% c ) T" ?8 R# \* i2 X2 @4 j5 }% y
sum ddy240
+ W. L/ ^4 X a7 a/ p * @+ `! L1 ]1 M: g
if r(max)>0 {/ E. }1 r% e$ L, _5 L, c, p
5 h% i+ r9 C* [5 s- V
keep if ddy240>=0
. u& c* e3 o* d6 u 9 Y% l0 Q$ A' Z T7 l. s2 `( R/ j' J
count \. `& @ o' w* |( v
; }( O+ e# E4 ^0 y5 E' p if r(N)>2 {
$ y. v# B2 R/ L8 k' V+ _4 _
+ h8 v( w% w! Y; R) R: Z pkexamine dx240 dy240
6 L& p9 F ~: l) q6 \
6 a- k2 E) d1 H( s1 D: w8 }& |$ p local tempmaxp=r(tomc) + f ^/ ]; |/ G f" ]/ L& P
restore
: s& | C" f, ]4 Z' R+ ^* q8 u }& d' q9 X6 m; ?) w5 o3 ~* Y: m8 R
* T. q2 ^0 S2 `2 d* V
8 |) U: M. F& ^# E7 U% ?9 t: j
else {4 Y& S# F, r0 M! U
restore + g2 r6 Y4 Q5 y+ h/ l5 q+ Y. K
di "cannot find maxp", `1 E; E7 L1 r8 k
7 I) k8 U7 O9 M; V: f4 G
! V) ]4 f- E O sum dx240
+ x3 u) X6 h: ^5 Z, ^ local tempmaxp=r(mean)* x3 Z6 K! J" s3 ?: _
# B9 [1 J7 z1 M% Z0 N' s7 ] }
! b+ G& ?5 ?9 b + B+ L4 ^4 V4 z* X! c
}" ?1 b# }: x4 t- d3 x
! V$ j& n5 o8 y6 w! \1 V0 ? else {( c- t7 N2 m& J7 c; I, o& N) b
0 g, u" C6 a. p2 f+ E. e* K% G
keep if ddy240>=r(max). [8 W2 l( a6 ] y% b
% t: a* J- I& n- e sum dx240
' B9 Q& ]' p4 X/ f# K " i6 h( l) r) G9 E
local tempmaxp=r(max)
. S% F% f7 p* H/ Z restore
( s1 ` ~: H6 v( y }% K4 e/ T* _. ?- Z8 a+ c6 o
P* ^8 ]& i' O3 f
9 K1 m' z4 s. I* D6 X, x; F F; T- }2 x0 `6 X1 s+ |0 T Z, J
7 c) y* W, u7 I5 u3 {& v gen maxp=`tempmaxp' in 1, e( h/ u g7 M9 p: g
" G/ _ h. h {3 o& ]' a5 D *240maxp
) i% a; L0 L5 A% S; f9 } + x# s/ w }# w& S1 D" G3 p" x6 c# I
4 o% {" `0 N5 Q# d* m
*-------------ddy240pminp左侧高峰值-----# N" ^5 w: w7 n' \: e. m7 E
$ y0 O) U. F' p+ }4 T/ d
preserve
4 C/ S3 K* [& ?/ _' X & r/ W+ }2 w' S1 f1 w' m4 `) ]) S( W7 Y
keep if dx240<`tempminp'
( k# d& z4 V1 A/ a , o0 a& l! i& ]7 ]4 w o
keep if ddy240>07 Y9 F R/ E9 w7 ]. h
, `* |6 q/ ?) L& g- M8 |4 u* c W
count
! _% O# b6 K$ _2 I1 x3 c( ` 9 ?+ h. e6 l9 K( a0 }3 q0 n8 |
if r(N)>2 {
c) K# f9 Z& f* V* P7 X 9 a7 K$ n& x/ a- A+ c& {
pkexamine dx240 ddy240. h& P0 V$ `! D6 K G: }* [
) _% O% p4 [3 l1 n local tempminphddy240=r(tomc)
4 b4 M0 [7 y+ h( @ restore# T5 H8 F8 [; I2 s. G" S
}
+ K8 |3 M+ Y6 S0 U
9 x& f+ V, M' Z+ c( A* B/ f else {
% I) f* {: ?$ o- K: O restore 0 \/ Y9 @4 m1 `# e* g( d
di "cannot find pminphddy240". I* X9 W* z, s% j9 h) e' Y* y
/ k3 J ?: [" ~0 ^, v2 U% a
L' H6 Z6 F$ l. \6 Q sum dx240
1 ?( H$ H1 W; D3 a local tempminphddy240=r(mean) 6 Q* K' d0 l+ b9 U; ^
4 o/ l9 ~. @2 ~% K& `
/ `4 I0 F5 T' G
}
1 i/ U, n0 C6 S
7 U' L2 y! f: L/ o% Z
: q3 o0 x) k: q/ R/ c( c 4 o& |; \$ u! R
( {' s3 ?4 \& a0 N" E
$ U/ O7 i9 j( r8 ` J
" F) i {8 c3 _, ^0 ^
gen pminphddy240=`tempminphddy240' in 1
* M) {2 Y6 B' h3 C+ D/ E
7 C. o) e- z. m% s; {; I+ ^2 O; T( [ ) b. Q; o1 b" j, V2 }" L
*-------------ddy240pminp右侧低峰值 -----------------
: D9 c" ^) ~3 Q1 ] preserve ' M, ?' P) ^. _, T" }& E
" w/ C6 O+ D+ V& c* F3 u) D9 y keep if dx240>`tempminp'
- _0 {6 j( b0 H* i 1 G+ O$ ~! q( S# X" |* ?: }% X4 q
keep if dx240<`tempmaxp'
( {) s% s, k+ N9 @/ c% m : K8 E7 P& v* u/ s6 ]- H
keep if ddy240<08 ~9 _0 ?* X+ D3 O( |$ r' K
K1 H& R9 i4 Y" V( b gen temddy240=-ddy240
- i& o& j5 L" c* j1 R9 ~; B" N
2 a' N0 v0 h0 F6 k- j count
# ^5 @- k' x& K0 L B9 w
/ a1 A( E0 C& Y) {3 k) R( ^ if r(N)>2 {: n x& z7 T- H0 n! z4 j# R% }$ Y
+ j+ A i* S4 ~6 w3 P# W$ X9 i
pkexamine dx240 temddy240- ~0 E4 A/ I- I8 p0 Z0 \
4 a- k1 E+ f# e( G4 q4 r. B local tempminplddy240=r(tomc)6 O" y: F& y. c
restore- g$ x G0 Q7 K- O7 J& u
}
& @, L0 R. ^' t' G0 m4 y
& w: c0 Y, R, n& Z9 \ else {
3 K4 s5 v1 _+ {- _; F2 ]0 E
0 S! w: i* w* {- u di "cannot find pminplddy240"
; [& [1 a! i$ G- T restore/ U f, L, @" N: S0 \7 E t5 {
8 ?9 V2 B; M; X( v$ P
sum dx240
) P3 H1 j" s3 `7 F7 c3 w& j3 P& O5 I local tempminplddy240=r(mean)" K! w+ X9 d0 ~. K
* N! a. x8 I7 b) O( c/ f: N
2 j3 A+ H6 d0 y! J }
, S* t, C+ v, |0 d6 Y# g: k: a 0 Z& \7 z; O4 e. ` r, L% E6 L
* r) K5 V( M0 o/ ^- g6 |
. q2 A0 M0 t. @8 G: v$ G1 ?
' S9 V4 A! X5 I+ d# T+ x
+ }+ `- Y+ y- j/ k gen pminplddy240=`tempminplddy240' in 1
& Y0 g! S; E" e 4 ^8 h1 L: |! I) |) h
*-------------ddy240pmaxp左侧高峰值 -------------------1 `0 @4 Y* M0 l+ H8 \* ?
9 E0 _5 ~4 E6 Q3 N" g# y+ u7 ~
preserve 7 i- @% r7 l% y( z* ?
) u$ E; n+ r, Y: B$ {
keep if dx240>`tempminp'9 v0 F) n! }7 Y/ E" V3 F
9 ~6 K2 ?: j- p* C1 {) K keep if dx240<`tempmaxp'* ]2 u. @+ `1 \! j6 n
2 t1 `; V( f F) k% e+ w: ^ keep if ddy240>0
. e/ O: b$ K, l4 V count
4 [" M" C" t g/ z8 j4 a. T : ]4 J2 f$ t& r0 X! D
if r(N)>2 {' Q3 O9 a; X8 B3 w3 s W& Q
4 ]6 ]. w. s0 b- g; N2 C# r
pkexamine dx240 ddy240
+ o& q2 y8 A0 |' X% V
6 r X! Y5 d% _8 d local tempmaxphddy240=r(tomc) " Z1 I/ E6 U4 y4 h @8 h
+ C$ P0 v$ A# B/ f# M* D6 C restore5 y# \, `1 g& W& A% a
}
O. e& G, P" S4 Z ! h7 d- D* \# q) L
else {* r2 ^6 v, h# z, w2 {9 ?
, r; ~3 P9 h2 ~ B3 L$ p9 P
di "cannot find pmaxphddy240"
! h$ {% H* y6 v- v restore5 y: v: L) @+ g+ A" Q$ }2 ]
0 n! b5 Q9 b+ J i sum dx240
) L H6 E& [& ~6 N+ X local tempmaxphddy240=r(mean) 7 q# N V, A- `3 |
1 y- a" S3 c) w7 s2 Q7 P* E5 N
1 `2 d# \: p# Z2 |
}9 N& `% I% Q( i4 K4 Z8 [0 D
' F1 {7 U% N. r5 F; N, ]) s( U* J' h
3 J; Y; s" @2 J8 U' _2 i$ k+ |
5 I" j$ \$ f5 e! u0 T
! Q% s3 L4 W. [) s" z
( ^. |$ a: ~4 d; [( W ( `, _6 \& }1 V+ b4 Z
gen pmaxphddy240=`tempmaxphddy240' in 1
* t J5 G4 B0 E! T- z1 L , o3 O6 r% G" v: H* `0 |' S
" f' l. }: S1 x$ l; Y *-------------ddy240pmaxp右侧低峰值 -------------------* P9 v! ]7 O' E* J, g W J7 K
: c+ ]. Y( i' Z, ]4 _+ R8 i preserve 3 w9 c; W1 ?4 T" ~% Z- W2 D
/ s4 A" [& {) J B, B keep if dx240>`tempmaxp'5 F7 W7 n5 n3 P. f% [
2 o3 w7 q+ }8 Z. h
gen temddy240=-ddy240
7 o. D! J( ]9 ]8 V
7 b. Y$ s# a# J keep if temddy240>0' X& X- ]5 I6 R Y- y
3 \/ S9 B- t1 H0 B1 W
count: p( m/ h" c3 U) {
3 t; w6 R5 [. v2 \1 R if r(N)>2 {
}# l! W* T) I5 n6 z& ] j" Y; W# ]; x ) i9 f4 Z, N5 D- z* R& Z5 W) D# V
pkexamine dx240 temddy240. @) r7 D$ F( I/ }* G
3 P& _6 l/ y4 K- z
local tempmaxplddy240=r(tomc)
+ A4 g: o. D4 c9 n3 n7 e restore
. j# i* U7 D, S- | }/ F. l" ]9 m) c4 q
7 S% r8 ]1 E# U6 K3 x else {! P+ W" Q, B9 U7 S3 c- ?
restore
* R' C0 m9 z' d di "cannot find pmaxlhddy240"8 e8 M6 d* s! G) [# c2 }9 g
' N/ F2 e! M( O: l9 D( k
$ n f) t. j8 h" a8 u sum dx240
5 ^- e3 T c+ z( e* B local tempmaxplddy240=r(mean) in 1
& w1 T X( @4 D: ~' _7 j! i
8 B8 }# y! f3 A' n) c% c9 m7 w$ o 5 `* _3 Y2 r2 f- Y8 V
}
1 |) f( k2 r# ~
$ I3 b0 B9 F: Y W
6 \% L6 V% Q+ d2 V/ w 6 o2 e/ i& u' a. {
' J. m% j; B& h0 k
9 _) A K0 ~6 R7 N
" s: J; ?5 s2 S. Q/ Z3 d0 @, P gen pmaxplddy240=`tempmaxphddy240' in 1 p8 U2 g" @- Y+ N- b8 J- ~6 W; S' t
0 D% v0 l3 u1 E) _# J, j *-------------------------------------' A( e8 ~; h; z [) T8 T
0 g$ d+ G% r3 M# [
gen price5d=v5 in 1/20
6 B4 _2 m( Y- W8 w" C; u: e' h 9 B! g% o; @4 d: t. [9 @
gen price5yy=_n in 1/20& F2 e. m. }, _" k# v
( B' T: z) ^) D' ]; J- L& i gen price5y=price5yy*(dy240max-dy240min)/20( @% ]9 p& }( b l* i8 |
2 I/ \* w. t" }3 i6 B: r+ ] *price5y &price5d
% \. `) R: Y \2 f/ P
1 `' F) g. G9 ?$ a. Z* P gen priceny=price5y in 1
' U1 V" b+ q6 E7 E) D
' I H7 [! P* I- D gen pricen=v5 in 14 p# R& b" s) U+ Y% o8 S' k$ t: x" i
5 a. M" R/ L" @: K- N* a/ a* T
1 i# Z4 w/ C7 E$ F *priceny &pricen7 H/ c, x* h! M5 x( _. ~) a
3 q- `' a U: Y" G3 f
- L& h9 J1 n: d D+ m *-------------------------graph------------------/ H! p; {* B1 v+ M' b2 z) V
6 y6 u/ c' C$ U) ~6 Q2 n+ {, x7 l 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)
& ^- M c0 Q3 c i8 y/ X$ n
: a" s, J7 Z! M" N8 j& u/ a* ---------可选项目----------------------
3 f0 o. k1 J, {6 e- m*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))0 ]) c% |% J. C' N) k, O
}3 M7 w4 ?, W+ D" i7 V0 G- F0 h
end
% S$ Q2 w9 Q$ B* B! G |
|