|
maodeng 发表于 2013-1-28 13:13 ![]()
0 f( U% H8 L& m: B5 T4 ?6 K. hello 300236) ?4 @' X6 B* b" u% D/ d& A
statement out of context' _! O- t3 ?4 @. ]0 E8 d
r(119); x5 ?0 L4 t; ]; |- L# P+ r
抱歉,最近太忙了
( z& y( H0 c8 C7 p7 S1 E7 ]8 B {2 r" c2 A' ^4 k
300236 我用下面的程序试过,没问题( O! Z& Q# r8 r* B* K
6 P5 c7 E5 y" A! N* I
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
7 j* k k0 Y, ^! Z% t. Y4 ` t3 F& d
* j- u, C" a/ n; J$ Ycapture program drop hello
% Y6 |/ C* t7 L, _7 q A! K" p' x: ~, b" e
program hello
. t1 B Y* g2 s7 j0 n: G$ f& @$ l, m* s$ i
quietly {
/ @1 \# O/ E( M4 I. l2 T1 K" n8 |, b" Z0 Q4 f
clear
: r. i6 o1 @/ e9 c/ m5 k7 h/ a2 j" B8 s0 b
cd D:\stock\test\source+ Z$ \' Z5 w% P# _2 U( H/ }
+ k0 L4 h0 ^$ ?insheet using `1'.txt5 |* N* t* h6 m5 p! n% m
; L0 e& W4 f# H$ @5 r& d0 S/ P
keep if v5>0
& i3 }8 ~% U) x8 a ) q: [) f: |" T
gen vt=_n2 K7 c, b. g+ r K% m( [
/ S0 F1 _ M e tsset vt
: z$ \" H7 |5 |* C" ` R% _% E# U1 S. l+ `7 O- L( S6 D) Q, R
gen zf=D1.v5+ M7 H$ B D& g* x
" G& J# m& M9 T5 a0 O% a K& W gsort -v1
- h2 F# ]* F% X" z' V6 T; V* p3 Y1 q
" m* j9 R) `6 b" K, m; E gen avol=v7/v5, w( @! g( ]7 B. v. F
$ i+ j8 G: n9 Q% v keep if avol>0
8 j# ^, g {! c: G) ]3 G$ e# S6 B
; h) V" @" C: R8 ?' V3 ^ drop vt3 B( H! P2 V: h$ x+ f* }
9 H; ?8 L5 o) I( X gen vt=_n9 Z& d; {% U$ D+ o$ J; q1 s
' F& Z; S$ c. k- l* D, \$ m5 |
tsset vt8 N: G `. G+ h
4 p, j' O0 X" [& a& J- X: _2 a sum v5 [aw =avol]
2 f$ D: ^- s0 V# c" W- G6 P w. c/ v- ?0 r* a
gen amean=r(mean) in 1! r4 K5 T5 y3 N5 M7 U( Q& o
1 N x% k# h: T; c& h0 A
* 总加权平均值 amean
9 A& K& C# S/ Q( d; T
! l |$ Z% ^1 m% z2 Y( W & Z1 s* Y" p8 \* @* |# J; f4 E
keep in 1/240
/ d( f; _4 W) h5 O' G2 @% k, I0 ~( z; Q u! b0 y5 w+ |
sum v5 [aw =avol]
) j! A, S3 u" A- c- d0 @: @" j" U8 d. M8 H
gen mean240=r(mean) in 1
8 C# x5 ?# f* O* W, Q/ O- V' j
" F7 t t6 y- Y+ M! r *240加权平均值 mean240# n4 {0 x# ?: t: d* @4 \9 A
3 U) F' \5 a" F; m; P set obs 500
5 e) {5 H$ h' c8 F. g, }' D
. M1 l, y/ B- F& E" P5 n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph& p4 K" F. h5 K+ Y+ n l6 V
/ A/ z- @1 i- l/ x
*240 kdensity(dx240 dy240)5 j4 H. H( |% F U9 |$ g
5 x$ o$ { f% S) X: O7 R% |! p sum dy240
3 I$ R( ~+ ?6 ]! P/ u 0 n4 r, q1 `+ R9 W
gen yxis=r(max) in 1
9 V) n; T5 c) { X - R9 W4 @: e0 ?) S4 d
gen yxis2=yxis/2
8 s* z+ \) I J, L1 W
0 J2 b! N; Z; m, w7 r/ r0 G/ t *yxis2 H$ y: Z: @; k# r
9 A" Q- q$ Y/ {7 y$ q gen dy240max=r(max)
' h2 o: U+ m/ g+ q/ i) [4 x
1 e3 l8 R2 }* b1 X# ^2 _' m$ ~ gen dy240minp=r(min) \! D8 M& w( F) @1 @
7 | ^ R/ p3 g! N* n gen vtt=_n
6 `! z# d# q( p# E5 Q
# }* x W$ a( S6 y9 Q tsset vtt. k" @; S7 b, o; J0 X. T6 ?
4 U E4 I" x, p% T/ K' b8 U5 D( X
gen ddy240=D1.dy240/D1.dx240) X& i! A+ s' \
. Q( Z6 \0 ?' m2 W$ h
sum ddy240( i* Y2 }5 k" C3 f3 Y. B6 D
0 }# p; Q( T3 c2 E, g% H4 u" ] gen ddy240max=r(max)' Q) M: R$ F4 ]+ r5 f* D
. D( x( R' `/ [" s8 s* J9 g gen ddy240min=r(min)
; V( U# u' u/ M9 i1 O
7 T! F; l# N, g4 C8 c2 X gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
`- J8 d% i' H , L6 K" z- h. l
sum ddy240g
3 b1 y6 F+ h; I5 b' G. s n
5 d6 ?2 ~; ]0 p4 W% q/ I9 @) n: _/ s gen yxis3=r(min) in 11 T# R+ _0 r- }4 j) e8 ]. i* C
% }$ K1 z( x( G n, }) S# h gen yxis4=0 in 1
# r; b [9 f* G; C0 O1 f
' y/ ]- c/ a. E4 U" A$ l *ddy240g
2 R9 v3 Q1 N% P1 L5 K( ?0 O1 \5 g
U. Q' O5 }# W! t& y2 |3 F 1 S* g; p! x h# X" ^6 t* `
preserve
' _& R5 `# p1 G% }9 ]5 K+ K- A
( G8 T5 w G8 J8 Z sum v5 [aw =avol]* D) c. E! ~0 Z$ J1 @" f
0 f4 d! t+ C2 X
keep if dx240<r(mean)
# R9 o e, z+ c+ T* V; {
! q1 j4 k9 u- G2 z sum ddy240
9 h, Y3 [/ T- a9 p! P$ { . I Z5 f, X5 U7 w$ \/ U
if r(min)<0 {
1 e1 c( E6 h1 p; G / N) R& ?0 N" }2 r ]' O
keep if ddy240<=0
. c: W8 d9 f% e+ q* h 6 ` o8 T; u6 L) T" w2 f7 n1 b
count# k; d; U& x0 l6 z' V
* h6 e5 S* L0 m, W) c if r(N)>2 {+ q' z, B% l/ g: |. \
. O2 w' I( s) _$ ]* Y: k' J' R# p pkexamine dx240 dy240
5 k/ [/ e2 l/ i! Q0 A5 w
0 f7 @2 f8 G3 I+ ~$ _! u local tempminp=r(tomc)( V6 s# k* r7 v6 @$ e: M
restore 3 F+ o* G9 Q) p+ c( V
}
. X& r6 R% ?5 m6 }
, B; u9 c7 f) t. W/ Q else {. V! \: O# A7 b) e2 U
0 x2 T5 T, a( @: x& h, U
di "cannot find minp"
; |/ {0 l: K- r, d5 S
" E/ S* r `2 i. Q9 F7 c restore - d" _) U" H- k% S( f E
sum dx2404 I- \& s5 o1 K" W9 c& n
local tempminp=r(mean), Q; [9 v: d% u6 i6 O9 T9 w" B
2 _! P( K3 R' O+ x% [+ S
}
6 D& K3 w" |; J }
) ^* b/ r! {: H. s else {' @6 F+ i! Q) p' e. V
+ w! k8 }9 |8 I keep if ddy240<=r(min)7 [7 k5 j( K* b1 _
! o F; d& f4 U8 _0 q, o. C sum dx240. R& ~+ j/ l' h( N7 X a7 A! ]& [1 Y U
0 E$ v# Q2 p( F: D1 s% b local tempminp=r(min)% O5 s! u! d y. C' b% q+ N
restore
! c* @5 Q7 A" J" q2 j7 B$ u }% g2 R- x6 n7 g7 |! o. o
. f7 B" b4 W2 J2 X( _5 `
9 ^2 B) r9 L1 Z8 I
' q6 o/ B- l' H gen minp=`tempminp' in 19 M4 X* y" b/ H
*240 minp
4 g V6 p2 t2 A! A! f
8 x2 i9 I: B9 l2 B& }, E S9 k$ Z; J: F9 F" V1 u
. q6 O) |5 e2 I
preserve
( o* r2 w& U$ L3 M
* h [" f) ?$ m9 R! V' f/ e4 q/ u sum v5 [aw =avol]0 a& z+ e* Z( B# ^4 t4 [! N
# ?" q+ Z5 S' H) s' [ keep if dx240>r(mean)) Q2 \7 }& A; ^& z
+ L+ I t4 q8 h6 ] sum ddy240) e3 W: j, `; {& _. }
0 Z }, T& w, s3 j' E if r(max)>0 {
7 R+ O# _5 n8 Y
( c; H% t4 A9 `# q: S& E keep if ddy240>=0/ O9 ?' Q! Q/ |# _- J0 O9 E
/ q. x& M; C1 j4 P2 ?3 s
count( M' w! J$ g! C' n
; h# l/ \7 v; R7 |# U" s if r(N)>2 {+ e2 |- d2 E6 M- V( V( k
9 i/ z5 g, g/ P pkexamine dx240 dy240
3 \ F6 J' H. x; h+ L * O/ Y9 h7 M" N o. a7 h
local tempmaxp=r(tomc)
/ Q) A6 K7 J, f6 J B restore
/ v0 ^1 o2 H4 t1 w* S" x! D3 w. C }5 I+ n1 @0 D, F! i8 Q$ l2 e9 ?2 `
" Z9 c, U: X" B
! O, s1 b% k$ r' L# o. c else {
& L3 X3 B2 t; o3 @ restore 8 k+ V# q" {5 k/ g+ ^+ w+ M
di "cannot find maxp"8 B$ O: g. q$ o8 G# }8 y
9 Q- Y' T) d* T* F* [- G- c) i7 M
7 o6 F( h; V% H1 d6 a
sum dx240! Q0 i* @& j3 ?$ f# U" l
local tempmaxp=r(mean)
8 q5 C3 y9 x- \" g) s1 _ ' |& X- v' D2 s- U' I' H7 T
}8 o$ F: B* n8 k' o- ~1 x
- V/ n7 w0 {. V: o
}
6 `2 `2 c" T/ t9 \3 A1 d8 y% e 9 i$ \5 A. |0 E/ N+ d* g
else {" K7 k, J+ t3 z$ B1 @
+ J7 o* k9 j( U0 N; o0 } keep if ddy240>=r(max)7 p1 C1 ~* B5 x5 [
! k7 V# X0 I, [5 Z" L sum dx240
! u) @! n# F; c1 h5 U4 L
- P& z6 c3 T5 q, Y1 z' \ local tempmaxp=r(max) : Q% R7 I7 Y* @# ?2 R. v, D8 Y" d
restore 0 T- E% e# B0 A) [. U: _
}
# ^6 s% }& h d6 v: v" v
/ Y2 M4 G7 ^; b0 P; K! g7 G( f7 g% G- B2 [
5 Q5 G) G$ J# I; j& d
1 M5 }. ~' E5 n- H
gen maxp=`tempmaxp' in 16 V: U' v1 f+ J# s
, u- a" m. `( B9 t/ t *240maxp$ J$ _8 a# R2 G/ v* Y( }5 S$ E- u
3 L/ O4 F2 ?. Y) g9 U) V
' g& B0 y: H" m0 y2 h) A, w! D5 g% { *-------------ddy240pminp左侧高峰值-----
, d: @5 V4 u9 M! Q2 E% J
+ W, f- R7 h4 o3 W- [& h X preserve
) _' F& ^) K/ g. s5 U1 A E3 | + m! v. x+ Q }: d: A4 W# B
keep if dx240<`tempminp'0 }3 r+ r0 p G* z4 e
& v1 O* p( k/ Z# i% i
keep if ddy240>0* @$ T' b, u$ l3 V
3 r" R& ~9 h$ P count& T3 _! p1 R' o$ K
8 A4 c1 F; A! L! K if r(N)>2 {: ^( H- v; ]# I8 y' c
}( h5 q( b" E+ [) r6 a pkexamine dx240 ddy240- k5 A. H) ^7 p$ p3 W& y5 Y. T
3 f/ U# M l, }7 b0 s9 P: X, G' v
local tempminphddy240=r(tomc) 9 r s. C7 U6 ?( V8 H
restore
/ f4 x" x: m9 A6 H }9 j) J" F$ d2 |+ `# u
0 s( T' _1 ]/ y. C1 V else {
0 W0 T) y8 Q5 |' x1 g# w' w restore
9 v7 X3 N8 @9 @0 A) ^3 ~2 u di "cannot find pminphddy240"
8 U# i! O% s4 C H- O. T3 |
8 x1 ~6 v! w- l+ }7 w5 e* Q' N, r
/ K0 b' Y1 Q! g/ p sum dx240& r3 i) V4 _/ N
local tempminphddy240=r(mean)
3 a6 U- G* ]& }+ W4 X$ ]; O7 J* T ; w7 K P- g% g/ I7 L' F) }
. j7 N$ i3 Z$ w }1 _6 R5 X3 r) B
7 }; D$ G: K- G# P
" T$ F8 ]8 u# r6 {4 R
* E4 H+ H# a# m. D, \
. J' o& {. I' P- U+ ]
/ v: p. H$ I* T: ^7 R : _/ s! H7 y2 _2 W
gen pminphddy240=`tempminphddy240' in 1( ?$ i: p' n i
( v( l% l% l1 a+ U& H; ?
& r( Z. Z3 S0 q7 N" `7 j
*-------------ddy240pminp右侧低峰值 -----------------) @. A) t8 E% t7 ?9 _5 C
preserve
) `* h. w6 _( { }2 A4 S9 k2 S ) X5 r4 [- K! r* Z- v
keep if dx240>`tempminp' l: t4 ?6 u/ \" ~/ P6 X& i$ j
! E# ]8 L T* W. L" n) a1 \
keep if dx240<`tempmaxp'
E9 @0 @4 t% s$ D: P; o# o / N% @ \8 K! [: z3 A& c* t
keep if ddy240<0
" V7 c! G8 Z: C) y- e7 @) h " S3 S% t, h4 J1 ?4 P
gen temddy240=-ddy240: J+ {4 H$ V' A3 }5 r2 g8 p0 O7 l2 x
, F$ N1 T3 G, S2 o ]9 r count3 C) ?; ~( {0 s$ B9 k# \2 K
0 T+ N1 ]$ a6 D3 G6 @9 X
if r(N)>2 {
B) X2 L3 g5 }" j8 x& N
+ `8 W/ x8 k0 K- }0 R: t pkexamine dx240 temddy240! Q, P0 @# c: y$ E- i" ]0 ?& C
4 ?# o: a; g+ o; H( N6 j' D
local tempminplddy240=r(tomc)
# S+ f' C" j3 [+ [% k& |- ~3 X' o restore
& N x+ g% J1 E }
4 k" K) L0 x5 Q8 h l
% }8 N, E4 S* D# S9 ~ else {
1 Q! S" K, s( g) l5 z t
( d1 J- F d# \ di "cannot find pminplddy240"
7 C1 B j) E2 |$ G/ U2 c restore% L: I( L# [3 T& z3 z
, o8 U: l a: Y/ l5 D sum dx240* b5 h6 ~# t1 F- ~, u
local tempminplddy240=r(mean)* W5 N4 U$ e4 c9 g& y, n" p. V
9 N( s( w6 @ v' H
6 n6 T/ T, u( v0 C- N! \ }7 W. L* I8 f# Y, ?: h' [' ~
# T% ^5 J7 @) I; O+ ^
# S+ V% k: W: {/ G. ?. S& q# t
- [+ B( F& E V7 l
& c0 @; j! D+ Z) d& n9 V
! ~, l2 |$ A. S" g% C gen pminplddy240=`tempminplddy240' in 1* R, O6 Z) X `* h5 \5 l9 L
$ B; t+ O W/ g9 x* a
*-------------ddy240pmaxp左侧高峰值 -------------------* Z S8 Z/ d* B. N" C5 P9 G; A
2 |$ F( u9 z( `, O; ]7 h4 {7 y preserve 9 g7 M( ^ K5 }$ T+ V+ h7 ^9 k
8 a, _+ w8 c1 \4 ]
keep if dx240>`tempminp'
# l' p4 M1 n; ? 9 p& ]5 k2 ]( n2 u$ n7 U
keep if dx240<`tempmaxp'
! x( B( E0 x( K" n! G
0 u5 W' \' R9 \, I8 Y keep if ddy240>0
' e( o' O, K7 e" l count
9 b4 x& ^% S$ p
7 `) _& R1 q& j5 F H; I6 n if r(N)>2 {5 \7 M1 {* \" J" U7 z
+ p6 P" p4 K$ Q2 b' C- M/ O
pkexamine dx240 ddy2403 f8 S& {. f0 M$ V' t
2 s- ]) c3 b3 }* M1 Q0 f1 W' v
local tempmaxphddy240=r(tomc)
5 y l- u! a- y @2 h5 i
" F& R- j. ], C# w restore" m1 Q: f$ f/ T' |/ y
}+ s1 ^) A" ?# D4 A+ w3 E! Y
( C, n2 u/ n1 _% t else {
4 A; e3 j' @( _+ ?0 E. I! G2 W
: K; W: B# [, z' j0 h+ l3 v/ X+ g di "cannot find pmaxphddy240"" o8 n( N+ `. m3 z k
restore
( A& Q# c" Z0 l: X7 I4 K" d" P/ _) i % V* S) m% ]6 B1 Q7 @8 l
sum dx2404 r' E7 F( F1 g0 q. A9 T
local tempmaxphddy240=r(mean)
B4 J* [$ a0 e* F3 z$ ~ " W2 x- Y2 V1 v! Z, V$ j
5 o/ p- _+ C# z. h/ ? }. U3 ]$ V0 }. H; n ~ G3 }( Q
) x% q- s6 Z9 q, K: |5 E. p ! S8 K+ g6 U( I) e
5 N) i, H" D6 h& z7 T/ b- N" F/ v
! @' f" T5 D2 H: R 2 p* |$ ?. R4 |5 G
. p6 @9 W$ O* g gen pmaxphddy240=`tempmaxphddy240' in 1
2 C# ~" ?- w+ r- }4 Z 2 o5 z1 `$ C( A+ N" [9 B+ c
; [: I8 Z N- v2 C
*-------------ddy240pmaxp右侧低峰值 -------------------" ~2 d! Q' f9 w' A
/ b( h! K% I0 ?) I' f/ _
preserve
7 ?+ ?" d" w2 S5 P% H! e, d
6 ], i- E/ }2 u2 H5 a keep if dx240>`tempmaxp'
9 n9 W4 f- E6 S9 O5 a
/ U( I7 l/ {% Z5 w3 _' K6 [$ t gen temddy240=-ddy240
; c! r0 v# o& I3 I& c2 C ' M7 Q% m" q3 s( e+ B
keep if temddy240>0
+ [9 q! ~+ E9 p( ~
! M2 j) ^% {1 x: d8 N* P" {& n2 n0 U count
) F; j) E" \& t6 y9 l* A | 9 q3 W, M6 y+ `! _6 T7 `$ y
if r(N)>2 {
; w- Q0 A/ v8 |: a3 j6 M9 g2 L . H2 A- U2 v4 t$ m
pkexamine dx240 temddy240" \8 Q: }( z' }5 s. n; b& f
+ F; b+ l6 {. @- E local tempmaxplddy240=r(tomc) 6 s1 o, v6 A. @* [0 f- V
restore9 |/ ?$ `9 S4 ]) m- i, H' J& ^
}
% L, V& B( s2 c ' ]. v' u) C- W3 W+ p( N; O* l
else {
! }: e- i8 l3 u, u) L restore5 i. M/ x; S" K
di "cannot find pmaxlhddy240"
5 ^: Z5 p$ h w! z3 T- p
/ g1 Z& p' p# f2 m / E8 u, N4 F7 R# y* g
sum dx240% {/ t+ ^5 F/ H7 w1 h( q; ^- l
local tempmaxplddy240=r(mean) in 1
5 s8 E# h' p2 j9 u" z) n
' j* T, k$ u$ {$ n; W" F
) a5 r! ~, O: S: u w# S8 ? }
2 C4 ? p* f! ^' J- k
7 I7 v! k8 n- r7 J/ F+ {
7 E ^% Y; a8 H# y! d) d" x) c) d9 I 1 h# N& s& E2 M9 B% Z( ?% }
2 {+ d$ H% ? e. G C" Y, r" T2 q
4 E5 _ H: N7 L 1 d# o' t. i E; B
gen pmaxplddy240=`tempmaxphddy240' in 1% N; t& o F! ^( Q3 _1 K- h
3 x/ s m1 S2 B, O2 i
*-------------------------------------5 h( [6 Q: U* T) e# Z" E6 a2 p+ S% V
" \( T6 m/ D7 l' K% K6 B ? gen price5d=v5 in 1/20& N, R) Y$ u4 G. x9 L$ C
+ C, [: c1 {; F* }! I+ Q- Y gen price5yy=_n in 1/20: \9 r& P+ e* f* r4 A% h
" L" V/ b! H# T8 L' s gen price5y=price5yy*(dy240max-dy240min)/20
# F$ D( h1 Z' M
" J5 e; Y. |# u/ C& @$ n' ^ *price5y &price5d
6 W6 z2 j" N) F R / {& A" t' m/ b: S' J% {
gen priceny=price5y in 1
: I- o3 A& B1 j
( |( [" S( a1 X- J% ~4 |3 R: f: r6 k gen pricen=v5 in 1( I2 {* p% ^1 |- x( j; L1 a
& z B/ X: R* q% y4 n % z% Z1 O7 L u$ v. [- b! ]& q# y
*priceny &pricen
/ q2 P/ W; R+ K2 Y S$ h' t8 \* ]* V/ u
1 ?- U. P% y# l) R' l4 g
6 V) K# }8 M( n; ` *-------------------------graph------------------7 v! n t3 t, x: V) U1 H
H5 |% F9 }- ^* |3 x6 \# n
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)
6 x. L5 @9 \. s- T: e
1 k F$ T6 P! [( Y* ---------可选项目----------------------
: B2 V& Y# d, {" F) @3 l3 [*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
* x! l% d n1 T$ x: J/ ~; T/ K8 N}/ x9 P) S _- V9 Y' K; l0 `2 b( U
end {8 O7 n& B( T1 J2 _
|
|