|
|
maodeng 发表于 2013-1-28 13:13 ![]()
( ^& H* H2 Y4 w( }* ~' V$ A. hello 3002362 {% V( ?0 R9 u# F( q" U7 @
statement out of context* f7 [1 [5 b0 I; W- }* [
r(119); ! g- t0 s, C$ j( H
抱歉,最近太忙了
, w" y4 ?; i- l
: h' q% R/ L9 _+ }8 S% L300236 我用下面的程序试过,没问题
$ Y& I' `' V& c) A6 H/ v: k
4 F$ m! X& P, E: I你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
4 [* j9 ]& U# ^0 O7 [/ @, t" E$ t
" x: C( q% w2 E7 P) K5 z1 zcapture program drop hello
) ~: L, d8 B& b a$ P
6 E" a7 p) e" Z' a5 z3 d! }' Uprogram hello
! H0 ^' U# i8 Z- ]5 K$ T/ Q! I' U% ~) F' ]! e; r0 N q+ B
quietly {$ c3 |2 i# ^8 U) _4 j. _- r4 Y
( i( p+ e7 H( s D& ^" S% e
clear
8 h0 {5 l' Q; k4 C k& P4 X F, X
cd D:\stock\test\source
; X/ S5 | ]) x5 Z y0 \8 y# M" U6 h% ?* S
insheet using `1'.txt
# [+ P' T" A$ d2 f2 T1 l; _$ O L$ z
keep if v5>09 Z% c- p8 @8 k/ l% E O
9 |( _( N! N; @ @ gen vt=_n
# Z. i6 D* N) T5 J9 H , R$ F( j6 {' M R! E5 N5 d- O: ^
tsset vt
6 P& _2 O- Z9 u$ `( u; N1 Q- {
, b6 b! D, ?' J8 D gen zf=D1.v54 r! p0 i/ Z6 C
8 n! b) k1 c! O
gsort -v1
* g* v) s6 x% G& O: P
& ^" W1 ^! y5 X; h* c gen avol=v7/v5- V9 w+ O" b: @4 c* g0 @
( v8 V7 @- m5 l6 d' R; j, p8 u2 \ keep if avol>0
" f8 K# E9 l1 ? + E( o5 J, K8 s3 o( {/ F7 F7 J! H
drop vt( k: Y! p0 n/ p* l0 u% |# {* j+ Y
! o F$ G( ~( O- W) \. F; ~3 r# S gen vt=_n1 J/ U2 i: V0 U
( B7 I/ T3 ?1 h2 d Z3 P tsset vt$ Q' u# E5 K8 I7 P* k5 \, R% t6 }2 k' T
5 K0 S0 ~, E+ q$ N6 D sum v5 [aw =avol]
# E/ {$ u& F j7 ~' e! y! t
2 _$ V N1 j1 }: a gen amean=r(mean) in 1$ d- K0 D% N+ o% A* h$ v, z
8 q# I% N6 l% q& \
* 总加权平均值 amean
! o* G8 H% W, k( O s% |0 j
: i* O1 M) J5 h, H
" v3 c6 B5 z) m+ H) P keep in 1/240
; k! U/ b" |1 C$ f8 U' `
7 D( q% Z2 e. j% c5 b+ ? sum v5 [aw =avol]
8 q/ s U) C+ g$ U: ?4 z$ L
# q1 Q$ u( d) @* r& o4 a/ H gen mean240=r(mean) in 1, N- E8 W4 ?3 Y/ V; X7 p9 w1 F
( E3 E m1 v/ {/ _
*240加权平均值 mean2406 ?" O% l1 [6 G) P$ K/ \+ U
! I6 l( @1 n' W: `6 L# z set obs 500 , S* E8 x$ ?# a
( U5 F4 }: _" ]8 D kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
0 [8 }) e; ?% p# e& [4 U . \& p; A- u# n' `9 w
*240 kdensity(dx240 dy240)* i* `9 q. f* e& d. G9 n# z% ^
6 n" T1 W* z. E
sum dy240
1 P V: L9 R/ T5 h # w# m: u: w1 }% c3 F/ F+ @5 z
gen yxis=r(max) in 1
# \2 }3 C2 o; L& u9 M- S. Y
1 R, s6 q! N5 N c& S+ e) @9 h gen yxis2=yxis/2
; K, H4 M, R- D9 n+ Y! a1 G1 `
. N' R" \9 b" j4 z8 q+ S *yxis2 v( _' k8 Y" ~5 t8 I" e# p
; `# n8 A% I, Q* K4 w gen dy240max=r(max)
* B3 v3 G9 o b6 q 5 q3 H* ~" t/ W
gen dy240minp=r(min)
, {& g' I5 P- ~6 k . E& l: }& F0 p
gen vtt=_n
0 d5 q9 A4 e# Q* q4 p+ z P" {
7 s7 s( }. `( _6 n. P tsset vtt
* y5 l# K# F, Z5 y. P3 |3 T/ e4 m" R/ v
gen ddy240=D1.dy240/D1.dx240/ l$ P9 ?7 p- g3 e2 B
- h8 ^& N% _2 A2 x sum ddy240
3 N) F/ B8 }/ ~* f [& r( R
' I( c! W' _; {8 {" s0 v0 x1 E gen ddy240max=r(max)0 c0 t0 G3 p& A' P" L% d
1 C/ l6 \' k& h# F gen ddy240min=r(min)% F5 m( H: }1 r/ t
: ?# H5 m; _7 |: H. _ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
& v! I4 o, J8 x( B+ x* H
/ }5 ?, c4 w5 _0 k sum ddy240g: u5 s, r! T9 j2 C8 }# u
3 w8 C' X& f: z' z7 v# c& _
gen yxis3=r(min) in 1
; @2 k: Q1 Q T 7 F" t( ^: i* ?( c' @1 B' E
gen yxis4=0 in 1
- P% @, e: j; @4 \# Z + Y8 M4 w! m& d6 R+ ]
*ddy240g ) o3 H* _" B( W5 p
* S8 }: Z( }8 b9 N
& y! g7 d: F7 E" u2 r
preserve
6 a8 h! W: @% j7 l" P ' f# {7 Y; B& p/ E! p
sum v5 [aw =avol]
: J) k1 o6 U9 {' f- M) V/ K. s# m
7 \5 t( J- t4 } keep if dx240<r(mean), a% R) N/ K2 u% _% ^2 h# [
/ u3 [/ n+ L7 [' |0 G( q+ h
sum ddy240
! p0 y# S% d' p1 t; R. c$ {. x/ h5 M
7 s# c( i* F* w: o. [ if r(min)<0 {
' w/ j& L2 e. L9 o7 H
2 |9 y5 e2 @: ^ keep if ddy240<=0
. c% }1 V6 o& i/ w2 F
8 g& l8 m$ G8 H! j count
# X$ L4 |) W8 @, C
" u2 J$ O% O+ g1 j; f7 ~ if r(N)>2 {7 K# V$ q# e! J' Q" X1 c
3 K7 m! a+ q: ^, U3 L9 @ pkexamine dx240 dy240# q. j3 {4 g8 |# J2 s
) L# L0 D2 _. @2 `6 e: ?
local tempminp=r(tomc)- G# ?3 ~: e8 T8 W8 ^' f
restore
4 I. `5 K4 I6 K) t' o) a }9 K' U) v+ y0 u& L H/ \5 K" b
3 x+ a' q' A1 ]5 S; m else {8 k& ]5 y/ A0 C) R$ _# S9 ~* C% w# G) q
* o. H8 X7 H6 d( b
di "cannot find minp". J! K/ i& m' b
, s( ^/ M( P5 m0 y7 t0 S: T restore
" m+ G3 W/ U$ t% ]5 L sum dx240- R# ]% \8 l( W% Y
local tempminp=r(mean)
! ? z6 L d7 F2 k& U3 C3 o$ o 2 b8 |' u: r9 L2 ^5 t! E
}6 ^9 ~' k: l$ G" S+ z! i
}3 E" t4 i* V) _! E c# g( }
else {1 Z$ ?/ U* Q1 y( t
* R; n0 B! U0 K! g, x keep if ddy240<=r(min)
/ v/ c) v& M% u6 `3 }) K! z1 Q " X2 D4 b3 Y$ w" k3 E
sum dx240
7 F8 _+ @1 Q: j * a- c* B4 O7 y% L8 x
local tempminp=r(min)
! n; t- F/ x3 e6 [/ E' e! | restore / h7 Y% v# O9 f0 Z; Z
}
, l4 j" v0 V) _3 c" z$ D: {9 u5 a- v
9 E- W) H- X8 U
. R; M1 n% f; @1 a$ W gen minp=`tempminp' in 1
. e; I# h+ g" z, z# k *240 minp
9 q9 S2 T; ~5 Y9 R+ C' ]& `6 @8 P8 R6 R! ^5 z
% P( n$ ? ^' K* s) C ! N$ v0 ?; Y9 x, J9 k- u& r
preserve
0 I7 T- W' r7 W" ?
1 b8 S z2 u5 Z# T" D/ ^5 d. i sum v5 [aw =avol]+ ]) ?6 \$ D# v3 B8 E I
) }7 z( {. Q0 k0 i keep if dx240>r(mean)
1 T2 ?7 k1 M m
# ?* [; U$ d* x' z1 q! } q: | sum ddy240
4 T. N4 L! T/ y1 z/ X% ` # j9 D7 o9 O3 ?9 t* A! O( K- R
if r(max)>0 {9 w# i) K7 E' E6 N' a+ H
' {0 p& N- E) F( v7 C) l. Z
keep if ddy240>=0. E" Z V$ e6 x+ ~& _: K1 M5 {
" f% G0 {; Y) Y0 ~, J5 H' M count
" W) ?4 q* f! u/ p8 @# `+ @ 0 u t4 W* S& x! g, ]7 }: a( G
if r(N)>2 {8 P; T5 m/ Z1 c" Q/ U. P" F" x- A
" O( W7 K0 N/ e
pkexamine dx240 dy240
# a, B9 @6 m- x; D d* v( H9 k
8 O7 ^( z* E9 K' ~* a, Z5 P5 c# K local tempmaxp=r(tomc)
4 ?" t* I. A+ r restore ! F+ V* X/ T- ^/ o
}. N0 o$ M" H. `
9 E! E X! T B
! _5 f u2 ^+ |( \
else {
- o, \! Q6 C5 Q0 {; c1 D+ e restore
% O+ `, P: A; Q3 a4 o di "cannot find maxp": p- t. h# y4 F3 ?- `, x$ _# _
" }( }, s; V7 v5 X5 M0 {6 F* a
% k6 @, P) E+ S! b* @1 n7 f( [+ \9 }
sum dx240
1 B, D4 [( R9 S! G5 `3 d0 _' y local tempmaxp=r(mean)( G& e9 E! g1 l' d/ d5 i
3 c v7 _9 j7 y1 Y
}8 _7 @2 b& P. R' ^. ~5 e: k' p- g
9 K R x" e8 j; d% `# ~, {0 `
}
: O: @$ t# D9 I% T) I
5 {8 J- M5 o w w5 } else {- f2 y. X' h& s2 f& ^' ~5 C# a5 j4 s
( M/ a) _; f/ S) t' D9 k- g9 l keep if ddy240>=r(max)% g7 Q8 ]$ z: T0 O* s' A6 w9 c
2 k9 A$ g7 t# v. L* o# Y4 S
sum dx2404 D& @) R1 ] w% i- X, g& h% x
! G- q, B" B2 P, o4 Z local tempmaxp=r(max) : _9 g$ Z$ n$ Q$ [/ M- }
restore . I L: |) ~# A" c
}
+ U5 f) y9 J, `* t3 H" F# D' s - A* j/ G, x% e5 [. e3 k
7 O z I+ r5 f
7 R) E2 |0 l! J" @- `& }& q' n$ C. A: p" O6 z3 B% h7 G/ J0 }
gen maxp=`tempmaxp' in 13 @3 a" j) a* g/ _# b
$ f! ~. {! |0 H- H* t2 I. S. v
*240maxp* T3 M( I# `8 e4 G1 G L+ p4 o
1 l6 _; Z; T- Z1 x
, l+ u0 X( `3 t( l& C+ i) P *-------------ddy240pminp左侧高峰值-----
6 M( L/ P/ D& W, g/ _2 N " V! M/ `: l7 L# Z% Y) g) }7 b
preserve : d! b. D0 H! [1 t, \
: @% t+ p6 n# G5 \( \ s keep if dx240<`tempminp'- V J8 ]7 D+ a9 d+ d
. m2 ~) b# y) Q$ V* p! X
keep if ddy240>06 Q* f: S* H- y, l& Z L+ q
3 Z4 N) \7 S; t
count, U& _" t7 ], s- B" }* h
* e3 h4 j% d0 s' ^2 F$ M0 C& V% s( [
if r(N)>2 {, @. N4 D. y; h
3 C* e6 I6 `1 G# W# W
pkexamine dx240 ddy2400 K4 W# `# J1 t; ~) i: Z3 @
; j& F3 l* Z9 O+ y) c local tempminphddy240=r(tomc) W& s& A: x) m7 M
restore
/ L- }$ N( l& v }
+ r. A1 s! G7 [0 k: `0 G6 L * a4 p& q- O! A+ G% [) E5 J( x
else {+ ~) u- M: p, b- f; n# W
restore ) M" O. |* |2 Y
di "cannot find pminphddy240"
1 ?0 w3 e& |$ f+ l/ v: J1 B/ ^: B. \
W, G: E9 Q2 R9 V$ D
6 F& v! U$ ~6 ?+ o! D. _! d8 [ sum dx240- s. Z/ c/ Y8 R. q, D: Q6 U6 |; d
local tempminphddy240=r(mean) 6 r0 V7 G# J. t) A
3 S; G0 l/ P+ n1 p
' D- s$ h/ U9 A1 @) D2 b
}
n$ h# c. G! s. O0 _
& r5 ]3 s& B$ s 6 r3 ?% N. l, Y( l9 s) ~1 o9 ~5 w
& ?$ {; l2 C/ \' q5 a6 r
+ Z# J& _$ }" o0 i
( A' `# \% [& C% I: G: o
) i) G, J7 _1 W: q; A: l% e gen pminphddy240=`tempminphddy240' in 1; b* U3 Z) G# x) W
7 D$ i0 R5 f1 M. |4 r 9 m; C1 m, q8 k4 E; l8 B
*-------------ddy240pminp右侧低峰值 -----------------
2 H& R1 Z- V+ O' Y2 @* r" r preserve 4 E6 M6 }& `5 J7 H. M
' i; a9 ~" e' W: } r keep if dx240>`tempminp'
% `- |2 X2 Q5 P; s
9 j% { |' I* }. c0 p4 `- f keep if dx240<`tempmaxp'
+ R: G2 K8 Z2 v5 k, p7 ^
. ~: {3 d9 @' J; i; e# }$ ]* N keep if ddy240<0, o; d- ` F) N; _0 n
1 q% W! d6 K& h+ t" V4 X% X gen temddy240=-ddy240
9 B9 I3 {6 g5 t5 T5 ~2 i+ a2 E , l: J. `6 ~9 @' I
count
6 h$ \& H& w! _- j- K# P4 N/ o
j2 Q- ]% }3 | if r(N)>2 {4 e( Y+ c D) Z, g* a5 S& t
/ o9 A5 b z& S* s; N
pkexamine dx240 temddy240) U1 m. `9 b% u! C/ n
& a3 @1 `- U4 ]. _& r c local tempminplddy240=r(tomc)2 p: z0 A2 g5 P: `# O% c
restore
b# J' U2 T" u! [ }
; {* K. b% w9 H. }. B7 p
. T# Q( A% Y, ~ else {0 L d3 D: d3 x6 _/ n+ I
8 ?) z5 s' C4 y9 n" p0 T
di "cannot find pminplddy240"
; D5 Z: ?: x; h restore7 g: i9 K0 s7 G) i
. u6 O& A4 P- I. G sum dx240- y5 @7 k, ?$ b+ }2 x
local tempminplddy240=r(mean)
% m r/ H( F2 V$ O. A+ ?/ }+ ?. k' ` + J1 G% l D. J( p" V8 ^
, ?+ B& U* c `6 d# e }
+ G; [. o! w3 Y! k2 C2 s# {5 Y" ~
0 L1 l* k) O: E( q3 | & g# S0 L7 L2 J& t, o a. ^8 |
2 G& \* Y Q& e& {
- L/ q7 W( K; p S ^5 n
' M8 `4 Z( V% L9 R gen pminplddy240=`tempminplddy240' in 1
. d+ P$ y) w3 e
; j! N9 ~$ @" s" w2 n/ \1 R *-------------ddy240pmaxp左侧高峰值 -------------------" @" e4 ]. h( m
( y. T0 E7 s5 M, a) R9 p
preserve
/ V6 P5 i( C& X7 p% d3 X
+ K9 e% x! C+ n5 A' f- o; S( ^ keep if dx240>`tempminp'
" u( ~2 ~' n$ }- k% J% o; g ; f# g5 G6 m: x, g3 y) g" ], w
keep if dx240<`tempmaxp'
- a7 I8 f4 T9 _, X+ U6 W' m ) R$ P5 \/ p; w! F4 J" v& ^3 _
keep if ddy240>0$ k# K4 T8 w0 p
count- Z( V$ a0 l W6 T U( C2 N
; A0 B5 }% E: V
if r(N)>2 {$ v2 a3 M& Z1 ^1 a
8 ]7 k8 v1 Y" b8 o' D3 N& L: a. v pkexamine dx240 ddy240
1 }0 Z R* Y4 y9 \% ]: o $ O5 O& \: P# o" g' Z
local tempmaxphddy240=r(tomc)
, _1 M6 T/ T) d5 ` 2 B' t8 G2 L$ v6 P5 x, d% u6 c
restore
0 F: S2 z0 ^" y, \' A0 S( @8 U }2 n6 P/ w* d$ a4 o
% `4 ^' _* C& m
else {' k1 c' V9 }' f+ S: u3 X
6 k, D+ V& M8 S) J8 s2 Y
di "cannot find pmaxphddy240"
; @3 b7 Z, [' O restore1 V" B1 r$ i1 C& k6 u1 e: H
9 q2 A& P( P$ N6 _
sum dx240+ w8 G7 o" s. D/ V' l& w
local tempmaxphddy240=r(mean) 9 y8 q& j" x7 O3 e7 V K% ]
7 V7 i3 e) m, y y9 {1 A1 g
& X5 w+ m: e2 Z: z) p' g1 c/ H! \8 t, G
}
1 [8 e' J: z4 U2 Q$ i0 M4 m6 ?; Z7 A: D G+ O% l s/ o% I7 D
0 [& C& s n" C9 N& Q q
# S, F3 b+ {4 f& P5 C8 t & m* N7 z0 h4 n# U5 n
* [$ w8 t& Q5 ?6 D. I1 T& X5 A ( T d( H' N! R7 @' r0 J5 f
gen pmaxphddy240=`tempmaxphddy240' in 1' x4 f! ]9 m! y* [
& F0 N x: P R/ O- A1 d! L
; w0 [! }# ?& w8 Q6 x *-------------ddy240pmaxp右侧低峰值 -------------------
, v; |- a e) Q' i6 b6 ^ 0 U. [ `' j( [# M+ F: U( B+ \8 S, J
preserve
1 x- [ ?' E( [7 c; ^4 D/ B
, |; y& R- w2 G3 u. C: M keep if dx240>`tempmaxp'
& I. {2 |' f: t- O
5 W. c0 h% g5 _ gen temddy240=-ddy240) }1 C6 H8 F, r# j# G- y5 `
* {8 [! z+ G/ n5 l5 M1 |# m) T; ` keep if temddy240>0
% w" \# [) W1 |8 O 9 d( @" z2 f3 \3 C- ?/ S6 l
count
" ~+ N p2 A6 i( n 2 o& Y) z( q% h0 v+ n* S
if r(N)>2 {3 y" U' q9 E6 E
5 } G E/ m9 o+ K: l; f
pkexamine dx240 temddy240
8 F6 p7 ^0 T& ^" u( q
e# \+ ?% }/ S local tempmaxplddy240=r(tomc) 5 q+ Z9 i S2 X- G: Y
restore2 |' A7 { Y% I7 v) D
} C: Q n, |' c
v Y- D1 b) \! m8 o
else {
; k# \- y. |* m2 }7 ~. G restore: C0 j& F( N5 V X4 h. @
di "cannot find pmaxlhddy240"
+ v9 R! V" F) Q+ O1 @2 d) l
6 [% S" J9 A$ H
+ o8 I [3 ?! y& U; W% q sum dx240
+ {: Z. q- D' I+ z, l9 b" r1 k+ _ local tempmaxplddy240=r(mean) in 1
3 z% { R, x0 M2 ^% k+ |$ T ! p" `; V3 s7 h8 j2 n8 c/ d
& h" h% V8 `; {! o/ C3 ~. f
}
+ [/ s. v/ Q% @% O" @- U4 l * K" R$ c/ l+ T- Y
5 r# S; g' M6 ]# Q
* p4 Y' ?) }7 A1 [
% o6 \6 S' y( |% a
$ g7 N# Z* w( d% m' a
% t1 g# C9 L4 N/ d# n# E! w' Y gen pmaxplddy240=`tempmaxphddy240' in 18 v9 Y1 g* I% w# W: Y+ ]
* d8 `7 R" d, _- @
*-------------------------------------" p# ]6 M6 c2 l0 F* h7 D* M, ^# K) p
/ |9 R' Q+ [/ Z" h9 _' t gen price5d=v5 in 1/20
" n3 q5 c9 L6 o' B& { A, `
7 I- r0 p) r1 S/ h: N6 N- x gen price5yy=_n in 1/20, @( Q n4 a4 h' s* R2 r( k! q5 ]- J
) L# F# i! G8 X1 V$ }, [! [
gen price5y=price5yy*(dy240max-dy240min)/20
! y% B- [8 v# I v6 T/ @; O % Y3 ]4 E+ g& z; i9 x% v
*price5y &price5d! Y r0 z+ C( p+ ?$ n" r
0 W4 ^/ W0 l" J- Q9 ]5 j$ U gen priceny=price5y in 1
) C8 |& Q: e" ?% C' a8 x
" T) v: ]2 W3 s$ D gen pricen=v5 in 1. k2 I; N2 z% n' u
- W: y V. R7 D8 `9 ^ 5 w2 \2 F; s6 M, x2 q
*priceny &pricen( |1 v% M8 P/ a/ r1 q; Y5 Y
# S% y8 a4 v$ ^: v3 \4 _
3 i( I Z1 ~( G" Q+ M6 k' z
*-------------------------graph------------------
v) \4 H$ K: t
& y8 W# Z& t) ]: X6 d9 Y( E 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)3 h, W* s9 z' k0 B: X
8 {% g& o& J$ ?9 ~4 e, l. S, a
* ---------可选项目----------------------7 w. L# p& U8 d4 X3 P8 S( C: a
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))6 [1 X/ Z" y# F' Q: m$ c5 N" p' H
}& n: q1 B. {4 M( N6 E
end
2 i6 L5 f3 B/ I8 h |
|