|
|
maodeng 发表于 2013-1-28 13:13 8 o$ _& k5 {/ C3 J) V/ }: y) Q: U
. hello 3002360 S, @- H+ ]+ Q! d+ b5 ]" L
statement out of context; m# g0 J/ `1 }9 w d% n8 P
r(119); 5 w) ?( t; H8 y: ^6 z
抱歉,最近太忙了. K l& o' W, R3 J; [( W3 J7 P* G
+ }4 F4 R- U' g) \! |
300236 我用下面的程序试过,没问题1 ^( ]! A; V, P! t2 C1 h
" k9 t+ ?/ V! r
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
4 z" w# Y( B! f
; h* \7 ?3 N: `/ B2 u8 Y6 Vcapture program drop hello
5 t4 v c4 G$ X0 @4 ~. U7 s8 I" ~ M) Z$ A" @) [4 w
program hello
- k6 Q+ {8 u7 L
; Q# X1 F8 S* s* r quietly {
/ X& s( {" f+ K2 b$ ?" J
6 V( @- A1 \# Pclear' I- N" T* T& x3 E( J; n/ G8 n* ^
; `6 |' ^4 k7 A# t7 G) [3 I$ p
cd D:\stock\test\source
7 O$ N1 R ~3 j
% N- y% U8 ?% m. Q' p" J6 Vinsheet using `1'.txt q, L% e. _/ N; a6 i/ J$ K* t
% D4 b1 F+ l2 o( c/ D6 B5 I: H
keep if v5>0
! l$ o' {0 Z' S" v# k9 \ , A! k" _. q' P. Y8 u+ {: d" ]* a
gen vt=_n7 Y- `" `3 K, V' \0 M: Q+ V, H
! j* d9 O$ D' M$ e0 P4 M3 U tsset vt
: n9 j' n8 a8 J' a1 G, l
3 K1 E7 }% q! }& y6 l# M9 o9 v gen zf=D1.v5
3 U6 T- s! E7 s) q) `9 ]# O+ d
6 z4 Z6 _1 M3 [; M1 w gsort -v1
5 w8 ~+ f" V0 g
/ ^- j4 \) s% J# M- R6 E: A gen avol=v7/v50 P1 B% J6 }# f L- a% M/ R
: `6 b4 V- i- S$ E) ^ keep if avol>06 ?% A n% X, G6 |$ q$ G% D3 z$ o
0 U$ a, b9 o/ B. | drop vt
- T$ R# Z: j2 y! X6 c7 L
7 R, Q% {; G' ]+ P5 B6 d8 ^2 U5 m gen vt=_n7 P9 Y& x4 M8 s( D; z* j
( `# d: L$ r% m# ]: R) h
tsset vt
7 y( l3 b$ \3 U! z' o , {7 D8 E4 o3 j8 ~3 D i; H$ ?
sum v5 [aw =avol]
, J2 x. @+ l6 v. Y5 {: v: H2 \" Q7 ~: i Q/ Q S
gen amean=r(mean) in 1
) T: V. a* x7 p ( b' K* v5 N6 l0 @
* 总加权平均值 amean
+ U$ X* C& A7 e$ Z! [
7 V2 N* B* d- e! `) k
7 @/ }) @8 z& [$ S4 N keep in 1/240& T6 V4 j" `; H' D3 ~( b
; U# d. a' S. Q
sum v5 [aw =avol]
. Y E8 o% o) t
$ ?$ R; R4 i6 H7 ?- z; u gen mean240=r(mean) in 12 S( F; ?' t% r5 {. i8 F7 f
: ^- [1 \7 Y3 F! d0 | *240加权平均值 mean240& h$ O; a+ h5 ~! k8 l. |
' e' m5 O2 S+ e. r; ^6 W+ E1 q
set obs 500 & _$ h1 I% x# h+ J
# P1 B2 C* q& Y5 j- C kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph/ o: {, n+ F2 t' p' y4 C
$ [" j: j% K, G4 N
*240 kdensity(dx240 dy240)* C$ Q1 Z3 a6 W3 o
- l$ ?% m( M. K6 {4 C4 u8 ^4 }# { sum dy240* }0 O1 E' q6 @3 ?
. u4 B3 f! X0 y4 ~4 I: \
gen yxis=r(max) in 1
3 Y) R/ G/ H3 l9 X4 n3 s; J( s
[3 g9 h( V8 B% H& K gen yxis2=yxis/2
1 c/ y6 J$ F& W1 ^
* A& w0 S9 u9 o8 g; J *yxis
, N: q/ m K) }
5 c+ ~$ P' a' ~8 Q$ g gen dy240max=r(max); F# m2 ]- ?5 b
) n* l M" g. u1 R- W ~* F
gen dy240minp=r(min)
/ H0 W! Y* u" S V z- x & q" \2 r; ]" G _9 n0 O
gen vtt=_n
9 Y, e# }& d# T$ l' I( ?, ~. G
; e9 L% S. `: R0 g" B8 x; J tsset vtt
6 ~/ R+ m# n2 Q. e! A8 C9 o7 q- b4 ?
gen ddy240=D1.dy240/D1.dx240
5 a5 } \5 c: g
! Y. i1 o, K8 C% S6 j9 o# w sum ddy240
& f2 |% u0 ]- c
" O s: n3 X* F+ a gen ddy240max=r(max)( i$ h" l% j) ?" ^, @) t4 H
" `0 q; T& y& `/ n
gen ddy240min=r(min)
6 N# \/ a, M$ H4 X+ Q+ k, Z; X , |4 R9 {2 w2 E
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)& s9 G$ C3 v! R4 y5 K
2 q9 O; K: A3 z' [
sum ddy240g, x1 @( q1 k% O' C. V/ I
k7 \( g* q0 c1 |/ d3 L1 G0 A- k2 Y
gen yxis3=r(min) in 1
5 ?# o0 f6 S$ c! Y7 Z# m# L$ k* M . ?% _ i- a. E
gen yxis4=0 in 1 }) _# Q z9 h2 P i. Q
4 Z8 {0 v7 U4 g
*ddy240g
. f2 B! x7 O* v4 Y 0 O& L6 y9 F* Y0 z* \) M( x# |5 _
# h. k! G! @ B9 Q5 V
preserve + H) k9 X* s" L- t; s1 D5 \
0 @, @0 o5 k: A2 b1 V8 x) r sum v5 [aw =avol]0 A4 Y& j# m5 R6 d9 b5 c+ n) S$ n( u
9 ^/ T* _0 i1 z keep if dx240<r(mean)7 V( f7 e k2 ~, M( p5 p
5 m7 G Q3 e, l6 a2 A3 I3 s
sum ddy2409 B' Z' n: f7 t7 d' O$ o
+ @9 j4 ` t: w/ D5 q1 E if r(min)<0 {$ G) A6 _) `# E- }( @& @+ U% }
. {/ l2 K- N' Y# i$ }- M7 S
keep if ddy240<=0
# h: J& S% K* b/ ?* q
% U- d0 t0 I) r, F count
* x1 R5 i+ P! J1 k3 n& C% E% y 9 h! b: J1 |. ~' j2 g
if r(N)>2 {9 {: \$ z3 A1 v* d( {
4 [8 c! @7 F5 M# N" q pkexamine dx240 dy240
$ |8 ^. [; p3 e- y# A0 S! O5 j
3 V9 s- z7 ~ |/ X1 f5 Y! O local tempminp=r(tomc)
4 M @! A7 L* O: A _2 @- t restore
f2 O' y+ @2 A1 c% S5 p- ^ }
# l( F5 [* M, k7 B( b 2 f2 a# u' n H( |: c
else {
# \) ~! I5 U n7 t: }$ _. [6 \
( k! @% t9 I6 ^% Z4 f" S7 D( L" k* q di "cannot find minp"
5 J( C% K) i1 X# q* ]% q
: l* k( l* q9 w3 e1 i- e# C9 n restore
/ \5 D+ J5 C; e- w+ l sum dx240& I! \ k; N0 S( N& D
local tempminp=r(mean)+ t/ o# g8 z6 \& Q' H& x) U
7 k7 d; n8 p" B# L N7 S% |+ t
}
' f1 Q8 j( m2 a/ s7 u t* Z, Y, F4 ~3 y } T: h, M. f1 J/ s! C9 W$ w
else {
% Z. P& \) H+ Y7 u9 g9 _& F
: {, o/ z" s3 }8 Z keep if ddy240<=r(min)
0 F2 c/ L* E; ^
" j- K+ J9 N9 i# |% O/ _ sum dx240
: L+ X) V, k U8 I. Z H
T9 G: r! H" e! i( o local tempminp=r(min)* F0 q) L; s, q' T
restore 2 s1 x- K! D3 N% w- B! T0 \
}3 r4 P) s: v- c$ q3 H' ~
0 P% }( `: h) h: f
& F9 t3 g2 Q/ [0 q& y% @% W% i* ?; k
gen minp=`tempminp' in 1
. G: G% f3 P$ y/ R9 i3 y! u *240 minp
0 H/ i6 S! a; w0 z
. t0 }' L! P/ q! `$ e& {9 @4 Y t! F0 L' ~( w8 V* D3 J/ i
1 L: Q! Z H5 |8 I preserve # _/ c5 W$ `2 `4 D) H7 s) l
6 X: F8 @9 b7 b1 p sum v5 [aw =avol]
; u. v9 D, a g4 j; y
' h5 ~9 s; e: r \2 v keep if dx240>r(mean)1 t; b3 J4 P3 l
4 O& y5 ?- y' a, X' R sum ddy240' S* r5 ?* j" H! H: E- r, n
$ A8 c" h8 w5 {2 \ if r(max)>0 {
0 c+ q* b1 @2 E/ f) _; s5 j- c' N
+ t6 {4 L% p, s: `( _ W keep if ddy240>=0
, i9 J6 k4 L9 W3 R- U
: Z5 D7 t/ @9 }: e% n count2 E5 h. f9 ?) \
7 t" F9 u- u, S: {+ E, }* t9 } if r(N)>2 {
0 r! \0 T: o, V2 U4 v- O' y8 r
7 c! V& \+ E" l5 G pkexamine dx240 dy240
( f ?* y) P, Z% H 9 x' \8 p2 G" |; {, H/ L
local tempmaxp=r(tomc) . e& X3 N( t. I0 H; q: b
restore 7 I J% g8 j/ y) {
}% d& o! Z3 T' f0 `% [/ r6 L
4 b& B r P* d 7 A: k2 }9 Z* P; `
else {
. b& _4 F7 W& w3 R, c restore
+ n- E+ F, N3 X. _ di "cannot find maxp"6 Y+ k6 m3 x# C8 G0 h/ ~7 m: H# B
4 Z' n. [8 R) m6 P5 [( J& U
6 w9 A! u. {! | o sum dx2405 N3 ^% A. [9 Q/ T
local tempmaxp=r(mean)! \5 b. `+ m: A5 v% g# w% U
4 `0 C. o4 m: C9 F% a: T }
# d- \* ^( B' |0 I1 t m 2 c4 w. H6 C. p
}& z' o! V# ~4 e8 z+ s9 V
3 u+ \' ~0 q+ C5 \# G& q else {
7 l, E7 i- M7 G: I) b y 4 }' b" K8 v/ w( u1 j8 R
keep if ddy240>=r(max)
8 |( ?6 `( c8 X* F8 ~ / G. o l7 O! u
sum dx240
/ z6 t0 X6 J+ X/ ~$ H8 {
& j5 Y3 M* c; z z% n. z/ Q) k local tempmaxp=r(max)
7 z# }% r% t0 s restore
1 e' w. s+ Q! u }' o2 T8 |; Q8 r
0 G6 b, B- ~6 |
( _9 ^# H# `/ z- k1 @6 L; z & g8 ?( r! y7 T6 _
' N6 E/ v$ J, _1 n f- j
gen maxp=`tempmaxp' in 1# d% F) O/ {1 N" H
; t* h; \" W& Z6 x0 I8 N9 ~ *240maxp
$ o+ r# v5 `# l2 {8 F
% ^/ Z% _7 n0 \
$ b' {8 z" p' [9 `' x *-------------ddy240pminp左侧高峰值-----1 _/ n N- D1 m2 r$ b9 h- K5 ?2 L& l
5 Q K6 P$ c' b: H1 O6 u. `
preserve ' r# Z0 ^# O" c( T/ g
- r" v+ m2 W5 j% X ~7 j K
keep if dx240<`tempminp'
( j: R+ g; Q( ]* F$ R8 N
+ D1 s* C) A0 }1 m( ~, r t* N keep if ddy240>03 j6 O) X$ u5 W& P& f7 [* ?3 g
* y% K$ I- F- v% [, V- ^ count4 u' H! V0 `, H$ h. j6 v
4 ?. J- H+ t- Y) f if r(N)>2 {
" o3 g R+ f) L5 q6 c. d
" j# Z# ?- V% v pkexamine dx240 ddy240
! W( L) ~& M/ w5 G' V }
- o4 k8 m6 i- ~/ ^! z% G7 T local tempminphddy240=r(tomc)
: |8 _7 O% Y2 q4 j. b restore$ q0 A, t5 d }. d7 o; `; h; {" I
}
7 f# S* ~" c: D9 Y 0 E0 }' \8 g1 f1 H
else {( S5 ^& l6 {! a) y# C& x- \
restore ( S" j/ w( G* B/ X( s+ s
di "cannot find pminphddy240"7 Q) n4 F) f9 B3 ]
& j. L% n+ j' ?3 H ' n- ?5 M* K0 q& [3 z5 V4 N( W& l
sum dx2407 ]8 E: v0 `& z. m/ {) r, j7 w8 ~& K' c
local tempminphddy240=r(mean) ! |' L7 Y, q- D. I8 @
& N# [8 p( G- D1 Y( A2 v
' J$ |3 p6 d& D7 Y7 b2 j4 J }- T: P- I8 ]) f) k9 P6 h2 v
I9 `; [9 H% P9 j' M
" J( C1 X# V$ [
- N5 B# A/ F( |- M
, s+ T4 n; Z" ~" ` x 3 `! {$ `0 c1 f0 x3 d+ b2 M# u
9 P1 W* e. C/ K8 ?0 q
gen pminphddy240=`tempminphddy240' in 1
( @8 k) R7 S' }( A: \ * t+ X5 Z0 k5 ?( P1 {
6 R' \( s+ O. m0 f
*-------------ddy240pminp右侧低峰值 -----------------; }1 T! j' Z+ I* j: u {
preserve & a6 c; D3 g; x% T: w% w) L
3 a) I# T) b+ r) @
keep if dx240>`tempminp'( G, j' S# o- u
6 Z6 X2 l- r( v* X I: X8 J
keep if dx240<`tempmaxp'; u5 q# e, |! I
1 _, Z; j; s' z
keep if ddy240<0. F. W) q3 K v; J, B* Q2 o$ |: `
; ?. d# n8 O# U; e& ` gen temddy240=-ddy240- j! v* N D, o, V8 I
, Q& S2 o' g% G6 T
count
& Q. x* x5 j+ S7 p
# m) ]7 T8 K2 v if r(N)>2 {
% D% s0 d! O( m
$ I) I0 U; T- F& q+ o pkexamine dx240 temddy2407 a8 x+ B8 ^# A' C
3 R5 D$ i1 ?9 S3 ]' \: T0 h local tempminplddy240=r(tomc)8 v3 R- O+ s( k6 {# d
restore7 c8 m6 c5 ~8 Q8 d
}
1 Z! d# B% ]8 r 9 l E) | z2 D; ~
else {
# J. L7 y: w' [/ o/ j9 Q' Y4 \" _9 ]
" ~( c: U2 g0 o- b$ v7 D; c di "cannot find pminplddy240"
1 R8 V5 d6 U1 Q/ A+ p9 O% w restore
: f4 B9 y, V7 c2 M
8 k! H( q r4 r5 _& K5 x; ] u sum dx240) A: w+ j) J/ y" D6 |" d
local tempminplddy240=r(mean)
( n! y2 F7 n9 y- t* U, g
. q$ K: y# t. P# k& c
- x& W: Q/ u q1 V; E }/ y; B) Y3 h g; v. o$ C3 f
q7 g+ n2 }9 K
& C. z; u1 w( N! I, ~; [# J7 H
& O4 Q9 q: {& S+ `6 o, ], |5 p
/ k% W# U$ K/ O3 x- ~
' i$ j/ }' ]6 i% Z1 B5 K$ g gen pminplddy240=`tempminplddy240' in 1
. O( h4 [$ R5 T. W" z" y6 ^ + J3 c1 z- [$ H' X; n$ `6 A/ W* D9 E4 f
*-------------ddy240pmaxp左侧高峰值 -------------------
7 d4 l8 B& d& S4 i
2 T5 _+ c: ~# y6 {8 o preserve 1 w8 D/ N- F1 T9 z* U
) P5 z0 F! v4 A" h& s/ j# ` d keep if dx240>`tempminp'7 Y4 S$ h9 l" z- [' ?% ]; S; O" B) o
5 d9 l* _2 _# ]% v3 j' }
keep if dx240<`tempmaxp'5 ]5 P4 u9 r' B* k, x
7 t3 l8 w/ V& C4 a+ s; H8 g7 Q
keep if ddy240>0
7 n0 e( b' \( @8 d O" n2 x count
9 l- U( `. |: u! g3 n0 G 2 h5 X3 b+ O' R a, y% G5 _0 b: M, a
if r(N)>2 {' o4 o9 }: C7 u% c' I9 H
* R `2 [3 N2 z% o& s) f& R2 M) `
pkexamine dx240 ddy240; s8 [5 l$ X; g* q
* P* X! C0 H& u* F Q3 P$ r local tempmaxphddy240=r(tomc)
9 h& W/ m9 U% G9 {6 P [
$ F. O3 h# \* Z$ T( [ restore
5 M9 f. Y* N. e }
$ K9 f( T( U* a# s; u( L 7 ?. K. |7 S! I9 i/ c' T
else {
% Q% z3 l8 b& S- ? T4 R
' t V/ x5 n# C3 m( B9 {; j di "cannot find pmaxphddy240") } p6 v4 `0 U# O& B) w, g: W: _
restore/ l0 c/ X. h' ?, c" i: q+ p
. @* {5 B4 n0 E+ l# Q7 _ \4 e( K sum dx240
) R0 r" @5 T' k( C+ i3 M% E local tempmaxphddy240=r(mean)
3 b2 k2 X1 T" m5 o0 f9 K
4 W; i. t" F; d2 b8 N 1 @8 U2 y* O1 i+ Z- D
}
: ~; t8 `$ d! p6 `: r - l0 U% t4 ^ s* ]
0 F* F" R2 m) S- S% x
* `6 {6 E, V+ v. E) l. a& X
% u# e0 b% }: G" m5 L5 Z - q! C, @. v. w2 O# T' W6 e* K
5 ]# @: b. s* A2 \# W- y gen pmaxphddy240=`tempmaxphddy240' in 1
( Q e6 r, c0 |5 G1 \2 j% W
+ O* M" ~. [" g* } 2 G9 q1 D# E. C8 i( r! N1 l
*-------------ddy240pmaxp右侧低峰值 -------------------. {# D/ G/ k- |& u0 O/ a
- Q1 S- e0 { g4 U% v+ y& L- q3 I
preserve ) p" v( m: y9 l& w5 Z. V7 U. y
6 x+ ` F9 s8 h
keep if dx240>`tempmaxp'
: C9 p5 R3 a) m/ V! p0 r9 e 3 n. k1 K4 J+ N& y& U/ P+ d/ m
gen temddy240=-ddy240
" t, z0 M; R' ^- r
G) b* N, r% V, s9 y0 Z; Q keep if temddy240>0
. r i$ E1 G7 h
5 t" [5 J, r6 |2 { count
4 x: V% @# l, x5 s9 b% q q8 F% z
# }" @4 C) ^5 a8 c& j if r(N)>2 {5 E7 P- A: C" [ W( E" ]8 q
+ o' ?% l# ?; Y" ?8 C
pkexamine dx240 temddy2400 Z1 i' |. g( _! {# c; D% [% a$ y: E
0 d, d' Y( C0 H7 f5 c( j# y2 {8 S: d local tempmaxplddy240=r(tomc)
% [$ C0 Z2 l) _. c restore
1 Z; ?' F8 p" A) @. c1 y }( A! p+ G0 h- d9 u
% t% M! b8 H% m* I+ ^ else {
1 U" T- y' Z7 i4 f; t& B restore
# d P+ W. d |# Z# j$ W di "cannot find pmaxlhddy240"6 A. n _* Z! e1 V9 G
" S) D1 I) _+ r4 ?
9 l& D- V1 q4 \ sum dx2404 J+ \4 f$ N1 u5 ~: F
local tempmaxplddy240=r(mean) in 1
7 ]' a) |% [: q6 \5 Y# _7 h
0 a# C9 |' a+ x! E& x1 Q & k9 p" O# U x: T' \4 {+ ~
}7 Z4 w4 G0 b. Y! @! m
" I8 L/ c1 }; {) i* `8 }
9 _% S6 W5 C8 e, x7 m
2 ?* b6 X) k- L, o: Y( y
) W0 F/ F* m3 d& O
% [/ C9 r2 k3 c. T, ?/ b7 E% c
7 Z8 c" |2 q0 }6 @ gen pmaxplddy240=`tempmaxphddy240' in 12 P3 g. b+ A" m* p: K6 L
$ ^ C; ~& d7 ~( n
*-------------------------------------& o( _7 Y ]* P0 `& ^
1 ~1 @; q9 M, S' ~1 z2 V gen price5d=v5 in 1/20
4 A7 q! j% z3 I8 p+ g
+ _* s6 S) B: X, B+ p% ` gen price5yy=_n in 1/20
2 W/ d( |6 H" G* t( t8 B/ k 3 H0 F+ O! @$ O( S
gen price5y=price5yy*(dy240max-dy240min)/20/ |. }# n! }! `: Z0 n: Q
6 a3 _$ Z$ N8 [; I9 Y; B *price5y &price5d
: V3 h: Q7 z6 d 5 u! X" R! n5 I1 r8 k
gen priceny=price5y in 1: ^1 K. ~ {$ U/ F$ s% d+ o$ ?- N
' n; Z2 u# W2 r7 P' N5 @: C gen pricen=v5 in 1
1 _, y% ^: d8 ~4 a4 }
. v8 c0 j: V) r2 E" M2 v* O, Q2 U8 G 6 P8 g. ?+ s- M, \
*priceny &pricen2 g5 m# f1 ?* V5 Q
3 b$ ^2 ~4 L/ e, L 4 |1 R, P: h" H, ?7 |
*-------------------------graph------------------
# j9 q# P0 G4 P: o* ^9 F) e 4 E; g% `) M9 k2 h: y% _
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)
2 Z& q, d4 h1 N& O6 M3 h
% b( u/ X) Y& _1 N+ `. U* ---------可选项目----------------------
8 r# v$ y- C- q8 s& e! e*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
- Y- m d+ n* ~- G8 q& e5 n}2 D0 @8 d8 w0 W$ y. V+ x9 H
end
z( l: _( a# O: Q |
|