|
maodeng 发表于 2013-1-28 13:13 ![]()
' e, G) H5 c0 t$ Z: @% f B. hello 300236( J: v- D5 X6 P5 Y
statement out of context( J/ y" h4 V. d) Q# h
r(119);
* Q' D/ |. Q9 Q' u2 |4 A& C8 @( u抱歉,最近太忙了' Z: q4 m3 K& A$ e9 V# [# V
; h( M0 H- M: y M: i0 V9 P& v
300236 我用下面的程序试过,没问题
. u1 h/ y: S/ v8 g
, |( h. _2 j( H, p1 O你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
1 L$ h/ {4 z& w, I9 _* d
" q& Y3 P- u5 f) Q2 N( \& T! _capture program drop hello3 l# |1 Q7 ~# \* F" i" E* z: Q# D
8 p$ _2 V" `, K/ \9 z1 H4 uprogram hello, L! |7 ^& g K
3 ~! h1 j7 h: V7 q
quietly {
/ M) ?& A* C# U: J# T- V9 \$ [/ ~
# T1 s! O2 w0 W+ u- |/ Cclear" h8 c3 E- t3 {0 a
, U" o' X& v; a; ]
cd D:\stock\test\source
- |% E, r/ P3 q
8 X) [' v2 W- ainsheet using `1'.txt; ^% K$ H4 |6 N6 j' z& i, ^
. S4 ]* y s( Z E, a4 ^
keep if v5>02 s) V2 N5 j! W* f
" M% T/ V( k! a6 D
gen vt=_n
7 Z& J" P$ F" X0 Q4 r7 W2 @
% {) z3 I7 G2 o! b! \! V* ]' k tsset vt
9 q. Z ^2 ?7 Z& O2 _& b
! H; p+ A; D0 X* J gen zf=D1.v5$ z! h+ _% r( ~8 \2 ]
3 \. H9 O- o6 A" I+ @8 s gsort -v1
1 I+ U! l" y3 T y
2 {& T- o% ] o- e gen avol=v7/v5: |& [6 I, u Z* o2 ^% Y: V
; N" ]. R* Y0 q keep if avol>0' j9 k9 s9 ~* u4 R
" a& s8 H# W$ A# g0 u9 |& c
drop vt K6 i } Y% a& i, _, V5 f
$ D8 e' l7 i8 g% R( o3 x9 x gen vt=_n
) J7 X9 G, M3 K( s }) D \
2 C3 a& I7 T- |$ |$ N tsset vt/ Y/ S) }, u# T2 V; b. Q. ]5 {4 g
[! H% h7 V# h) l" t% {' j
sum v5 [aw =avol]
7 m* `9 A2 s# l. j5 A- N: k6 P; q' f5 z! e
gen amean=r(mean) in 1" W# t5 c+ u4 E8 z( K2 i' E/ u
+ e2 b0 e' J! B0 F Y- ]% q: U * 总加权平均值 amean
' Y, J: F* ?( p8 E 8 Y% I8 k9 J, t. H0 F
1 a0 A8 n8 J- N/ u9 Z keep in 1/240
c" `8 d7 A7 q1 W: W) g* d+ R, j% f$ g- }
sum v5 [aw =avol]
+ J' a, g- a6 u# v$ o7 h5 C! V. d0 c) p
gen mean240=r(mean) in 18 t3 N& Y: N- ~' |( [' ~6 R
S* ]2 v8 B1 s( E
*240加权平均值 mean2402 v S0 S7 K& U
7 \9 a4 U$ X5 |7 a set obs 500 y( @0 H$ v$ m5 A
# Z1 {9 x" {5 ^" g kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
% ^; W" M3 c* r) p: C 7 b' W E5 z8 a# ~3 F
*240 kdensity(dx240 dy240)
1 i5 y2 m6 D0 |) ]$ t6 D' C , L1 ^/ L6 D& j2 Y5 O, {8 {
sum dy2401 a; ^- e# }; a! M' h S! C9 ^" `
1 S( |7 |, S3 ^ gen yxis=r(max) in 1! h3 i: B# F. @" r6 v1 [
. i, G v2 V/ s
gen yxis2=yxis/2
i* T3 ]6 n5 S1 \
% Y* j9 W3 W% j$ `, I *yxis) r. z: `& Y6 O5 l
3 } I/ f: i9 T( i1 l# C# G
gen dy240max=r(max)5 k9 q$ \. U& E& V, e' v
, O$ Q5 P2 Z# y$ v3 O5 q
gen dy240minp=r(min)
" }7 x* {$ K2 @8 T
% W+ F, H3 ?% A- k8 ^- f+ M gen vtt=_n7 ? L. O H" b4 t7 U
) ]% b. W+ |2 n7 K" G
tsset vtt% V7 r3 v) n* ^
! y& ^& v' F2 v. P; E. i
gen ddy240=D1.dy240/D1.dx240
5 j7 T# R0 I$ I6 D3 R! t4 r9 N B
8 h# P, ~( X1 d8 E) V sum ddy240# K- [7 L, T1 _; @
7 |( @7 C' Z# D. G
gen ddy240max=r(max); V& m! b; T2 b
& R: F7 \, l0 j' H6 E
gen ddy240min=r(min)
8 R* l/ |, o/ z
7 T# C: q9 j& B( ` gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
8 J6 y, ?% M, Z& T2 t- q 6 d' h. J* d j# t8 U
sum ddy240g
$ c$ V3 R0 I8 F/ l) [/ m7 p& [ & \5 z* Z! D8 A- u( z* e, W, e4 \: z, x
gen yxis3=r(min) in 1/ F! m" U6 y+ U6 L6 v
. A2 O6 y5 }; Z- x9 Z" q2 g gen yxis4=0 in 1
- }/ Z+ m2 T+ Q9 n 2 q' ~ Y" T4 x; ^
*ddy240g
# c" Q6 u$ D1 i9 I % @! I/ `! T6 S3 z
1 m# p$ M8 d( }$ d
preserve . x A) ^. O, F* `3 c& {( j
0 p* v9 T- ~# P sum v5 [aw =avol]4 Q" R- x0 s, d& ]: [* Z
6 V& g! e: _( s8 Y/ {% l# w# C" `3 m keep if dx240<r(mean)# x# D$ y9 E" }- o" }3 _3 m# b
! e/ ^+ n0 l- b
sum ddy240; ~+ q' D& l+ P; g- o0 H2 R! \
r+ x6 @8 q7 `+ _ if r(min)<0 {, N7 \) u' R: e4 @9 H
% n) e5 L0 H0 ^6 x" n keep if ddy240<=0
2 [' c/ J! o! H3 L! y4 j8 X
9 r5 d# z+ C- Y! e0 `" r count
+ d4 M; Z& e1 Q, }/ ?& g
; q- v. y. K6 h( y p if r(N)>2 {% b1 y. r: z* p1 I7 L
0 T9 s; m5 ]+ F- n1 W% g' `
pkexamine dx240 dy240+ w4 ~; E) C( D; K
9 H# K% R2 L6 g" C2 l local tempminp=r(tomc)2 o7 ?1 J, [5 y- j) u
restore ) Y6 g; O; a, I: R
}7 c) q( r3 Q$ U0 Q$ u' M
$ v5 V; m4 b0 M else {
7 X% `0 A) g) w) @* { 5 K, ^- v0 d8 \- b5 N( m
di "cannot find minp"$ |+ p! ?" o5 ]9 ~
5 h2 T) b% \$ k! |
restore
' K9 p/ e% M6 A$ N$ M, P sum dx2409 H6 X- |! |% c; ^4 c8 o+ i
local tempminp=r(mean)
: T A0 U: p+ S$ ~! D 3 b0 G0 Q( M4 @/ a; M' V. h* X/ j
}
: Y* y6 C5 D) U9 H3 `! H* c }
3 A4 A, `2 ^3 m1 p else {
& c+ L( d/ U% H4 \, w 3 L, Y" k% c' a; O5 v
keep if ddy240<=r(min)
, w1 L7 {- p3 l# M/ p/ E
2 ]8 b3 X8 Z$ x5 ?% K/ E sum dx240% g j# G, F2 x% _7 x$ q: S
' z: s. ~9 W4 T
local tempminp=r(min)
; a0 i$ x% f. q- X2 j) }8 R y restore
5 ?# g s+ z' k& R }
, Q# {& g" Q; n+ r! p- r- C
$ k7 X/ \5 g7 c3 J/ i" g5 c6 b% O* d0 [( S" I
C/ i- ~: ~6 a5 o' \7 B0 [ gen minp=`tempminp' in 1, X# l5 i* c) k% s K5 L! u
*240 minp) S8 B) \/ N0 x% X2 ]7 p; w0 f4 D
4 w3 ^% `5 M; q5 O; i" I( |. ^4 x
0 i* M4 e' c* R9 u9 U * C" V) i& @- a6 {& d& @
preserve 6 w1 R' ?9 [5 e# z# F6 K8 A
1 ]* E0 n5 q" V1 _! S
sum v5 [aw =avol], Q8 m2 i, ~( k$ y3 L2 q
- S; C4 Y, ^+ F3 f6 g8 [' E3 z
keep if dx240>r(mean)
8 M) |7 j4 J& s" p6 q4 s$ t5 U 7 S0 p+ H; F. x7 S$ e( L
sum ddy240( H9 S. B* y- k2 s$ a! r& ~0 V
7 t8 H: h# c) ?7 Q( L) D if r(max)>0 {# Z6 B) S# W6 I; V: `# N
$ w+ \- W' g ?2 b8 V. ]' l keep if ddy240>=04 o/ k2 b0 c. k
# F+ V( U$ q6 Y1 B; f9 `7 C count
, K% i4 _; f( Q+ Z, c- U& I
, n& U; q; e1 k: C m0 v1 M if r(N)>2 {
7 k+ X) J# Q: S6 Q9 { # U6 |) i& ]% W; n3 |
pkexamine dx240 dy240
! E; f, Y8 _" ~! g) E - F1 S8 P4 L1 D; ?
local tempmaxp=r(tomc)
" @0 E: S+ z% c. S- Z, n0 S restore
% Y6 o4 _( I( o }# w6 s* _* m/ U7 P) q6 W$ A3 Z
8 S& w& t4 U* g" q9 O# W% U& ^
e- h8 U" s7 c- n6 z
else {
3 G9 ~% w1 b- O; q restore
' D& k( s5 _' O( K4 H# b( p, N di "cannot find maxp"2 x1 b2 d* D9 W
4 e* D$ e, V' G. S# ]0 @
$ c; V% e5 D6 e& R: {' c sum dx240
. U' G' O) a) j+ i2 r! z local tempmaxp=r(mean)( s: V/ J9 k; ]* Z9 K; R
7 L$ i. F2 b( K3 y# o8 Q
}+ I, a6 d0 v5 [4 N' B% Z. c
6 l) Q, d/ c8 i! u+ C7 x }
$ g+ g! ^. \% y# t / J- c# e2 s$ L0 e! A1 |
else {! }# E) P# D Y
0 ~$ l' s, j4 c& }1 u5 Y keep if ddy240>=r(max)
4 P2 q0 s; I/ \0 r6 L' f 1 F G$ L* {' v' {( a! O/ [
sum dx240
y; l( K4 e4 R1 b' d
6 Q9 y+ ~$ M# j5 e, B5 S+ P local tempmaxp=r(max)
% Y, q! m; k$ d. n restore / R" C( v3 e i2 x4 @* U D, q
}
% T1 i+ X; R& u8 p / h t& l9 P. ?( x: \
* L1 H, d$ A x) q9 b & G, |* R# L& g5 |" F, V* g ^; u
4 u8 ^: ^" _# }. Q$ U4 ~' ]
gen maxp=`tempmaxp' in 1
& u8 S7 C9 O' v+ z$ M ; ]2 P6 o9 \6 x' \8 k4 P5 r0 H1 h
*240maxp
7 W0 u$ P3 B9 }2 h& ? q ( h5 V5 Y, x' B% q( O8 f
1 M- k( Y/ k' T F8 `; p- l8 ^ *-------------ddy240pminp左侧高峰值-----9 Z# ~3 {" _) G, U. n
% U/ m/ ?) e4 N preserve & s3 D$ J3 k# o0 x, e
3 R8 ]( r* u2 D: Z" s0 y. B keep if dx240<`tempminp'" d8 I8 i& ]+ g
/ ^2 ]' N0 m9 A/ e7 ` keep if ddy240>0
/ p6 O4 ^, G; I! m' o
, m) W/ B, d, ~! E& z; J count; D7 @3 z6 y$ G; P/ h8 a
, W$ C- Q! I, n" Q
if r(N)>2 { V0 ]" Y6 _. ]8 A
0 j% i$ j' H% _) B p. n3 r& X
pkexamine dx240 ddy2402 [+ H& v3 y' ?3 d
: a4 x6 @0 ?8 W6 @) ~% H$ c u g- e5 n
local tempminphddy240=r(tomc) 0 j" ~, B+ R. l1 t, Q6 | ^) x3 k
restore U+ g9 {8 e1 |2 U5 o
}
" o R9 K$ D1 K/ r" C/ N. a2 {
c1 P% ^* w. O! |& N else {7 E1 W, {% T* E9 k
restore , q# x0 n! n c" f8 Q$ D- P
di "cannot find pminphddy240"/ g6 b8 _ k! ~3 E# o' n
$ ]) f3 J6 R, _* E& `1 N9 Y- d$ j
% @/ H9 L2 a6 V" D* h/ F' T' Y$ \( Y
sum dx240' o' s3 R$ R+ u9 _3 W# D* r. x
local tempminphddy240=r(mean) a& x5 ^5 h6 [6 l- C
5 E( y2 c, w; }/ |9 Z+ v
0 @: ~7 n6 Z; W, U! n1 Y; O O
}
, S u- F8 f- d6 h ) w& v" W5 |' R; V! u
0 N3 k3 }+ L7 h& O1 a Q" E % [/ k# O$ l. _( \1 c1 J
# j$ j8 K- k( a/ S# c3 n/ n# L
4 x6 F- V6 e' N! D- r$ v ) r# _/ I( a. ?% I. P6 f$ f
gen pminphddy240=`tempminphddy240' in 1
: }' c0 h8 p; a: X' N1 H! Y 7 k! H" q0 E- z' Z2 x
0 y% I; g$ c$ H0 q+ J *-------------ddy240pminp右侧低峰值 -----------------2 \$ W3 ~: |% i6 d/ _. J& w- L
preserve 4 l* h: ^2 z/ w# x
& E; l P: }( m
keep if dx240>`tempminp'6 E' T- p0 b: H- j
+ C, b- @5 G5 R Q) [8 `% u
keep if dx240<`tempmaxp'' v- j! O' k' I( u4 l8 t
& D' h8 Q. [- C+ y8 I% X4 ^ keep if ddy240<0 D6 y( B v5 c, \
; @$ a/ B4 {) Q6 H gen temddy240=-ddy240
1 `( @8 z% R3 t$ ?
" t( `1 `, e( _! g. C1 _7 L count
( ^ X7 F7 u& Z( ?$ p
- S- A' Y8 f& q5 P if r(N)>2 {
+ X0 ?$ S" @: _4 K1 O 5 N* Y, s+ o( D6 D. [8 q
pkexamine dx240 temddy240
3 Z0 }8 c6 d4 f9 D
( K3 H* T$ o* H9 s4 i$ B; E p2 t) Y local tempminplddy240=r(tomc)
) Q8 l' y- O" u, N6 B# r6 r restore% f- a9 o3 E2 i- ]) [4 k
}
& h/ Q2 B7 F8 E
1 Y; e) k0 W2 k2 ]* i$ M( b7 C else {3 q$ q% Y5 u$ K2 j' k
5 K' \8 W) w( H# ~! ?9 x$ e, } l9 ?8 W
di "cannot find pminplddy240"
% t. Y1 c, {7 |- r: A' c restore
# h D7 n' h( R$ ^& l u+ e3 U, M % p* p" d7 g+ R- g+ F% S, u; t
sum dx240
7 j! T! J+ u; T" _ local tempminplddy240=r(mean)
' k$ D# ~+ D) @ 2 x. e# ^0 ?8 M2 u$ b
6 A$ f+ x3 L# r% m% X
}
/ s) s' {3 k% I: @ f
o O1 p6 R* ]5 q, v g
) B% o4 a4 {+ x* @ 3 c# t0 X7 H; f, P% I/ e2 G9 ?# f" W R
( ]$ {/ { i9 K) k$ K0 A
3 m) s# u" Z- j% ]% t/ [: @ gen pminplddy240=`tempminplddy240' in 1( d! A- M* l+ \4 M, b3 Z' `3 a5 B
4 L+ Y* d* `+ ?! b8 ?- p- M
*-------------ddy240pmaxp左侧高峰值 -------------------
: r& X% [) v" L( E8 o1 K
' k# f5 O2 [4 n T preserve
! W3 b% K. _4 r; B
1 B" H6 D# p+ D9 ~4 C+ |' }$ G3 O6 V keep if dx240>`tempminp'
$ B; t% U4 ]; d " a% g( F5 w/ \
keep if dx240<`tempmaxp'
5 Y. `: m, U1 h
1 b P% [/ F& H. h* \3 z keep if ddy240>0) a. v# k7 I6 N) O6 B
count8 E" M# n& K2 a6 h' q8 h9 _7 V. |
! B' z" ?+ E, @5 b
if r(N)>2 {& D' u# l) L& D: r
}, X4 o' W& q. N( N% P
pkexamine dx240 ddy240
3 b7 A" D* r* U* I+ i+ u. T I% ^8 ^0 r1 Z- Y5 ]: v j
local tempmaxphddy240=r(tomc) 8 f$ h8 m& g: M
; T# [& _* X2 k" P restore
3 u+ }8 c4 a; z6 g5 ?6 Q }
( M0 c/ u! y: L; ~( h. M: M
9 y3 B" H; ?' c! f9 Y- |! X) f else {
& p7 A# v7 Z& V$ m
. W+ h' s; a/ I- W9 f! q9 \0 i di "cannot find pmaxphddy240"
) T6 j! E+ }+ X- h5 v8 f7 _ restore
2 j# i! Y4 _6 x4 J, {
x2 N( ^8 ?9 s( O# B+ U1 m! p sum dx240
- | K, f2 D j; Q local tempmaxphddy240=r(mean) 4 k' ?1 t0 V( K- G' Y0 O
R6 d0 ]2 ~/ v9 X! }+ o# I# ?
) Z4 c& @4 v/ T' s6 Q) o
}
- k, z! w3 P* Q( X4 b1 E7 A" V
) J7 ~% `5 a6 M/ g! s0 } l/ q8 C S0 N: X! Q. i, a
8 p- O% P/ n# I4 {0 y
5 {2 o* | _7 I& r) Z0 C8 h1 }
) b: E/ K, T( u8 {, J
% G4 V- m: G1 u+ B8 R) k8 u gen pmaxphddy240=`tempmaxphddy240' in 1- q$ D f3 v: v8 C R$ ~+ c% G
7 H/ g2 V; ?1 L & H, @# y+ R/ p0 l+ B
*-------------ddy240pmaxp右侧低峰值 -------------------
0 E/ O. ^2 t2 Z' J( n( y% ? % F j0 V# C: G% n/ o2 B; I
preserve
s; q7 p! g' M5 M$ J+ J7 ~2 ^
. d! K; o- r) {1 T c keep if dx240>`tempmaxp'
% Z( x& y7 u% z6 W8 ] , v! q2 Q+ n! r U+ L; y
gen temddy240=-ddy240
|& p4 p. Q [, s7 y
: d1 X2 k, p, \- I s keep if temddy240>0
) a' S8 `- m, ]* o# S0 C 3 G+ g9 ~" A" T) l' {5 ~. U
count
- ~- c+ V- M6 L u8 G1 }+ y
: y* e8 D9 e% J7 F. E7 H- {# Z9 A, s if r(N)>2 {
, T; `: c z# |3 D) z& z$ j$ `
& a3 {4 J2 v8 G# O+ X0 A( q8 t( Q pkexamine dx240 temddy240
- p* P+ @3 ]0 b3 v$ l; D6 S( d
* V; ?) A7 A6 g0 h5 ]' t local tempmaxplddy240=r(tomc) & R: c: \9 }' v' J% g3 L$ g/ g
restore# N- H. ]: L5 Z B# r: e& v
}
/ Y/ p0 n5 W. F$ j1 {) g$ g
9 s' z2 z; ]( h+ a! m' E else {
; a; G; V9 k# x! M restore
# a1 c* ~/ W' B8 [% Q di "cannot find pmaxlhddy240" s. h* u5 a: _ S# X( s U
Z4 y9 F" c' C9 k2 Q 3 N; X# g6 Y( |
sum dx240
* A: P1 k n- S: l. B9 l local tempmaxplddy240=r(mean) in 1, X2 I B' d, ?8 I b
; M* S' J1 K3 Z7 g% @2 s# k
% Y! f& U6 o4 ?8 |
}
- v5 }3 ~5 ~. [( ~ ' Y2 R" q+ ~7 g0 u8 P7 o8 t6 e
5 C8 r& N) y; u3 X4 X5 S3 v
: U( c/ O" c" n. T0 A7 a
5 f2 e4 I' G: b3 p% y
: e) M- V+ M, x! _
$ B: S7 ^& b6 T0 `+ I+ y. O gen pmaxplddy240=`tempmaxphddy240' in 1
/ U) d) S3 B! j4 w 0 @7 u: e& C* U, {
*-------------------------------------
! h* ] [* J/ y
5 N+ m2 T2 n5 V, b0 z gen price5d=v5 in 1/20
7 P2 m2 Z" ]7 c
) F2 P" ?; h6 T gen price5yy=_n in 1/20
. n- N b: {. d' t* j6 |% H' Y$ E
% t( b. i- W5 V, x- p gen price5y=price5yy*(dy240max-dy240min)/20
# ]/ m6 X& a7 n% z4 E' o
5 a. ^' A4 T8 b *price5y &price5d
1 I$ Y" h0 E j4 s3 U; S; C1 y " t7 V/ i, x2 x/ a" w1 z& \' G
gen priceny=price5y in 1
" [+ `8 y/ }+ F J1 o1 }
. n, h1 z5 w8 @ gen pricen=v5 in 16 ~/ f8 [7 Q$ X
7 \5 h/ {& L K! G& ]1 k( f: [7 ]
: i& P* F4 u, c- ^. j *priceny &pricen
/ d9 F5 i: M" N: E9 k1 k: W/ V* j
M' |; k& }* ]& N9 U' O, P
+ Y7 U6 ^4 v4 P- { *-------------------------graph------------------- N; u4 f0 Y& v! x. \2 x$ W
% `. w2 B6 E# Z- @9 d 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)
. u8 }! O) d4 s
8 v D" a" [; K2 I4 V* ---------可选项目----------------------
8 K' \2 J! d! I; _! V" H* H*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))$ G4 d) t, [* v
}4 Z+ w$ h# G- D
end9 c9 {( [; @3 Y- L: W' ^! X
|
|