|
maodeng 发表于 2013-1-28 13:13 ![]()
; A1 H' G* i% A: E. hello 300236
4 u- q" @3 n Q2 P1 t5 m% {0 Zstatement out of context
5 h9 r- `" P0 l A3 \: r1 C' gr(119); ; V; k& d& z5 I, D, C$ o$ D
抱歉,最近太忙了7 t, K, J* U( k6 g: s; ?' Y3 n
+ |+ D/ ?. b& T3 }
300236 我用下面的程序试过,没问题9 ~9 X& m0 Q0 P
# F; K3 S( X7 a3 L% g3 Y6 I2 E/ a你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试# e/ L, E* d- k( Q$ c
* G6 L, F" p5 G8 V
capture program drop hello0 _ D2 c( `* Z$ d8 A5 t, k
8 @# I Y H, {5 cprogram hello
8 I9 z( x1 `3 O
+ G/ k. r5 k! n- G! Y0 T' [, U0 }( G quietly {. u: D6 k9 |( n9 L% c2 n
. l$ \" z- O+ q. S( h7 g. S8 Qclear
4 e( `; h' D" R# {" i+ t" y
( p% M2 ~# G( O8 s4 [cd D:\stock\test\source
) ]$ ]1 f# a. B3 v! n W' K. d; N1 r f! `5 p% A
insheet using `1'.txt
9 z7 d% h5 @0 B' |: @
% P3 J( @/ ], M7 X) m7 s keep if v5>0
* {8 P9 N6 c" F, V
, z1 { N& i; c V5 w7 b, c gen vt=_n
: a0 [! L. @+ x5 } . f/ w" b" J- b* f$ b: V
tsset vt: V. Q. K( ]) W; a1 B1 K7 e
& L" O- q! X* n' J) C9 x
gen zf=D1.v51 D/ s" @1 J4 V" d9 o4 b, F* [
, S8 U9 d2 g% g+ S0 @ gsort -v12 z# V" Q- p+ S* ~
5 C6 i8 C" u: a! X) j) P- Q1 G gen avol=v7/v5
' x. M4 H8 i8 E1 Y: Z8 ^3 O1 B v 9 X, I6 U; f, F- T% E$ ?' |
keep if avol>0! \; B0 r: X6 R9 ]
9 B! w) J% R8 y& h t$ C3 } drop vt6 G+ O# H: O: O' y2 J0 f
" p, c9 }6 i; d$ J gen vt=_n( |) h* q( G- Y+ K% e
/ L! y# B( H. ~9 l$ G tsset vt
: D: W5 J, U1 X% u $ M1 c; e. O; n7 d0 }% `: `* j8 ~
sum v5 [aw =avol]
, Y) Z* B* Z6 n$ o+ X# N8 s8 m5 O# _- e* t* H- f
gen amean=r(mean) in 10 i1 B" l5 S; V" W' n' [
% A! b) i4 q+ s6 e. P
* 总加权平均值 amean
, \ K. v; X+ H0 ]
/ R* z' S+ k6 b- r k " W) U: m7 G; ~6 n9 k; [5 J
keep in 1/240# p2 q- |7 {! H! S5 o# w' X- K
! L8 j" }; Y4 k/ O X# W sum v5 [aw =avol]6 S. R$ s: Q, r5 Z n- ~
* Q M, c2 H, p# X gen mean240=r(mean) in 1$ ]3 q( J, |0 r6 t
6 o/ C2 Q2 u/ v
*240加权平均值 mean2402 o% V/ H+ W- G3 d5 [8 f& x( V
2 q& c8 v7 l, d! C2 S set obs 500
# d. K$ Q4 `& ^7 A& P8 u0 M ) K4 c1 f" i# B
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph2 O+ c) v8 H v7 l9 X. a' r
" a4 e5 x2 W. A' o8 P
*240 kdensity(dx240 dy240)# p; F4 z5 q) J p; w
0 G+ y6 P) e4 F! U sum dy240) X9 b% ^6 I3 j9 Y0 M7 o
1 F9 a3 \5 ~4 W gen yxis=r(max) in 1
- ~& s. J+ r2 D! {& ^( p
( Y! B4 a( v a( L gen yxis2=yxis/2
# k. \) o3 [9 E
+ W3 q2 g( K0 G- [4 x6 { *yxis
' v9 u; Z, f% X
* z, J# T" [5 F4 g: T2 ` gen dy240max=r(max)) M$ D* }& V. M5 L/ Y
4 {: Y) t# ]/ W- h, M5 o
gen dy240minp=r(min)
: R; j2 b- \) f* I& ]# c ( R0 o1 |$ x, u4 t$ M* B; u! A
gen vtt=_n# a7 z# m. n3 x( y
4 O B, B1 \3 r" A tsset vtt, k+ @ J6 a; X5 A' P/ ^
0 V) N3 n! Z0 z- _ gen ddy240=D1.dy240/D1.dx240
$ U% T+ }) J8 w, N- x, p' f3 K& h
$ Z; h$ h( V; c' @& y3 c sum ddy240, k- V3 m7 F+ }& [
' \8 y* h; d' a+ A7 Y* j2 Z gen ddy240max=r(max)
8 j6 R0 }6 _8 P: f4 k- r 2 ^5 m) e4 ^, X! m7 C. J
gen ddy240min=r(min). s! J1 w4 K8 |& D' b7 @6 }& ~
9 g0 C9 S, h1 I) ~$ }; K gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
% ~1 q' ^! _2 @: h % W6 L% Y$ Y% u! b7 k1 p4 C# V
sum ddy240g
+ M" Z9 q. P1 Y) s
/ [! ^$ L- g2 h- Q+ ~; R7 g gen yxis3=r(min) in 1$ q; P0 _& X, Q) g- P- ]- D" a
1 s( w/ @1 e- C0 {7 i k2 j gen yxis4=0 in 19 N0 H/ I3 I9 h& [8 t' O
) ~8 l% I) N% s; @% n *ddy240g 7 g; \/ f3 O, N
$ Y! G( E# y$ }. H M9 r$ r" w3 j& x
, P7 f! P8 d' a1 \' T preserve ' G) m) l/ o: y- q! l
( ~1 h( u* A, W' q; m, K sum v5 [aw =avol]
! d8 l# @. c. l- _" ~; C $ K- h1 Z& v6 {) i K1 N
keep if dx240<r(mean)
3 d: P9 ]0 X m9 _8 A 6 ^/ {% K9 v- C% r& T
sum ddy240# g$ e/ }7 @2 [. G7 _1 |" o
$ H# l, ?6 B$ F0 R; a* E if r(min)<0 {* h5 s5 q1 N( Z- e z
. \( V) R* t4 I* L( K' u
keep if ddy240<=0
! F9 b* L% x6 n2 u! k& { 3 D2 ]; Z' n+ `8 L
count, ?5 C6 Y$ d- e' s1 D: B
* l) U/ ]' S1 o$ Z1 R b
if r(N)>2 { S' V6 @! k* @9 @6 j3 c; G
/ ^1 u. n) W* a% [ pkexamine dx240 dy240
5 R2 v8 M, z; z1 D( L$ Z0 z % r5 U7 F( o9 W) }4 W6 k
local tempminp=r(tomc)
3 w, J6 p1 b0 I3 [" B3 g+ m0 u restore : t; R: X6 c4 X' `0 Q) U
}9 G0 }' T* d) ^! w+ b6 N
" _- U$ y# g+ i% @ else {
W2 R1 ~2 d, ~) H5 m* l 9 | X) r. ?+ h
di "cannot find minp"
! f+ i# _( {: k7 V
/ |; w+ n; ?& D- M# ~& W0 r restore $ d0 m. X* D( E0 V: O1 Q( y- c$ c
sum dx240
1 ?# Z* Q- w+ Y% ]5 m% t local tempminp=r(mean)
% p! X9 _# T" F/ l( c7 \$ Y : k* y$ e$ V2 Q3 `( l' m3 u Y
}% j9 o ~9 \ v* h" C3 {7 }
}
2 B; `6 z$ x2 P( I# h% d8 N$ I else {
& g) |9 K" @% q2 O; o
b$ e; N4 b3 o2 J keep if ddy240<=r(min)
( B4 K2 i1 F( P3 ^5 D$ h7 m W 0 G0 }% q* [9 c% Z2 ~% g( Q: m
sum dx240
q* R/ \! T1 ]0 m4 O
6 i* M7 d* w6 g local tempminp=r(min)
* p, J" @. }4 h9 Y5 g* U- ^/ ?8 B% Z restore 8 ~! y2 j+ Z2 d& D' u7 _# i
}
0 X& g5 C8 l" {8 p/ p
& W2 A2 t0 S& n' V1 v' W; \% w7 \2 k: @8 M! F
0 G4 v" P" r- R* S0 l
gen minp=`tempminp' in 1* B0 x2 a" j- w0 U5 D0 p2 U
*240 minp Y( x- p! v2 [, S$ o
* _4 \0 y& [0 ?5 Q! {* n2 s
" c7 V7 G* E" P6 J
; O6 m& k" U; C. l7 [- o( b
preserve
, r! e5 n( R, ^1 ^$ u4 k6 [ / U: V3 T. {- T
sum v5 [aw =avol]( ^8 g6 z8 a& J
' j H6 o2 v% Q keep if dx240>r(mean)
. ^% A) x9 D. k8 \- ?/ {0 ~
$ l8 [7 t8 j& o8 u sum ddy240
8 `$ }. B& ~: L
( @: [! {' j) S7 X; w& p if r(max)>0 {
( r' g1 h% c' M' e3 w8 D) `, l
# Z, [* x! c7 ^" o0 X keep if ddy240>=0% }. L& [0 Y( ~- x3 T2 b4 z
2 s. X7 i+ T$ t* A3 T: Q! a
count0 L% L$ W; I8 |6 t7 _+ i. Z
; u: m3 c" W- R7 s, d
if r(N)>2 {4 m! y$ I& z' Q5 `; @" a
% I9 ^ f3 l# Y( r* M- [
pkexamine dx240 dy240
: c& X. z' m+ R0 O5 u/ G8 _
- H* _3 _/ Z- d" y local tempmaxp=r(tomc) 9 s: W& A$ l `. _* D( O
restore
$ l6 M: y+ k; u$ W. c: W" P& Z }
0 x: [( c) p0 ~+ } 9 x d0 @: g7 e1 |
# p7 @7 e2 Y5 d, h- T
else {5 K6 o# U1 d& Z! m& K- M
restore
) L' i* Y2 e9 S9 G0 v2 j" W di "cannot find maxp"
& i) F ~ |4 P. `7 G5 E ? 0 ^8 |+ b7 ?0 j. l! p
8 }4 Q& Z/ s4 j2 V- N; f; v8 @ sum dx240
. I1 A8 |, m: U5 j local tempmaxp=r(mean)
! Z/ f, C3 Y4 Y" i B9 {
( N' [, B1 {' X* |( G4 g4 l }
, m* U0 C/ M# y- m( ?
[, b' |# o, z6 S# @6 v. d }
; ]+ ~' b3 W3 d, m4 D, E
+ y1 `6 V- D* I else {
4 m7 i& u. _) Y, k - b0 V2 Q2 x: a, W# G
keep if ddy240>=r(max)
& ^, q' r- T' W2 Y/ W# _
! F7 B; {' U9 D+ ?0 S; ^! V sum dx240
% ^' Q* X, b. R: g3 A& V+ f. Y
+ t# u* S0 b: ] local tempmaxp=r(max) - n6 x2 y/ B9 q/ q
restore
: p1 ]+ |4 z6 e9 P. c# }, l } x) ^3 O7 y1 C% d
* C( U% l# k5 Z/ O3 w; r v, j1 V
+ n$ f/ N0 h x & Y- g3 L% e% F
/ R: V2 R) e! h
gen maxp=`tempmaxp' in 18 v' A- k5 W. g1 V! s# k
, ^6 @9 i5 Y+ X3 W- l *240maxp4 t! X. B0 v( j
( q, L4 T) J, R
3 }! @+ c5 f+ N9 ^& k
*-------------ddy240pminp左侧高峰值-----/ Z3 e4 M Q: `9 p
! j0 ~/ _& A6 I preserve ) ~. q. h" q. N, t7 U
" M7 [8 @" k4 m. J4 k
keep if dx240<`tempminp'. [4 s9 L) F* n1 P
" b' S( b4 S. I; O+ c$ o. D( x. n
keep if ddy240>0( u$ y& E0 K& O1 T: K; I0 Y9 W
& o' _4 x% a, N% v! j4 H
count$ c" Q b& O! B- |7 w' o" V2 L
s! Z3 j, ]3 b2 J* t8 g9 W2 l1 | if r(N)>2 {
+ ]& Q: O% g4 E- L , J5 K( n$ S8 C) _/ L! [! O
pkexamine dx240 ddy240' Q5 W1 d% c9 N, a; I
) e( p$ W+ v+ E f$ K5 P, e
local tempminphddy240=r(tomc) * m' d+ k, n' y4 u. E( v3 W
restore3 |( |+ R6 t/ K& Q/ A1 R
}
: X% K6 Z4 ^' ]8 ?
; @& t- Q; R/ U3 }) j else {9 l. Y7 v, [3 r. z* l1 M! o+ t
restore ' H. N4 ?5 b5 g6 m
di "cannot find pminphddy240"
; w/ N- O& _/ r _# q4 I # R) _. v/ S. F& z6 j
* E1 z( L9 G* D4 F1 e1 [. t& } sum dx240) V9 P2 @# u6 J2 j2 ~: n6 Q. J( o
local tempminphddy240=r(mean) 0 A3 O. \. G0 H' u# z4 n, Y
+ K3 q1 z! Y/ T2 ^! G
5 @- q' r L( a, f* X }- E& y' L9 r( Z4 z' P
1 ^+ N6 i2 p* k
& F- O3 s! E4 y4 E( _* I8 |
3 h. l! J7 G$ w* f- ^4 a' M( f. K
+ l0 b" ~5 N2 } 2 e. }9 X+ a: ]: a8 X- ~6 Q
5 T9 G5 P( _0 `+ G8 o! v$ z gen pminphddy240=`tempminphddy240' in 1
3 a; L! w: ~3 {! m3 ]6 e, N0 q 0 Y' R0 Q. Y. j/ k+ f/ u# X
8 ?' S! \5 V/ T& S3 Y' Z, g; P: q
*-------------ddy240pminp右侧低峰值 -----------------
7 {" Q% O9 m$ d9 L: C preserve
7 w' ^6 u: \ g 7 ~) B1 e: s9 f k4 h
keep if dx240>`tempminp'
: S+ ? O6 D$ f. x t1 y8 K2 F
/ `" Y5 B3 Y* N! f- Y keep if dx240<`tempmaxp'9 A, _' m, A* ? h) m& t7 j
3 t- h2 d8 k# Y0 @
keep if ddy240<0
7 ]; O' m$ j+ E2 l `; M ( E/ o* [4 B3 I: D4 m( R) ~6 q
gen temddy240=-ddy240
9 a4 F7 B; |9 _% b8 X+ ]2 _
8 z. x4 ]8 J5 q% a& q count5 [* j$ _* \3 V7 b! S+ Q2 z
* E6 p+ p$ b' B
if r(N)>2 {
2 J( z0 a9 I# v. Y; }5 H( ] $ U; H% l& q. e+ Z% w# z5 m
pkexamine dx240 temddy240) b+ n) x% R' d" i6 k' W% G" c, r
: h. P. { \+ n2 F# I0 d local tempminplddy240=r(tomc): _) |6 s+ F0 d5 V! r, J
restore8 O1 n# X' j; ?- i- k
}
; e6 l5 B2 {. k( C5 W
, U% A: D7 I |# P- F$ n, ?+ x else {$ Y2 C o# M( z$ V8 z8 p! P" p
) i3 H+ l b5 M a1 m4 i
di "cannot find pminplddy240"( o. a8 W! u [& u6 |2 |
restore
( s( L+ l% d! D9 y8 j
! Z5 C- T# D. @, H sum dx240% F4 Z. H! Q0 ]$ q
local tempminplddy240=r(mean)) F9 L% X$ q+ R, c$ D
! x* ~1 n2 O4 y+ W
* n+ A2 {/ C2 h- M }
2 S% v- v0 y! s, b! E
1 n: A5 {. M" Q: u. A + b+ A$ _0 P4 Q( d1 X
5 F) x( D/ x' t# ^! G1 x 3 m x% l* C9 \- p$ z5 Q! W. m
7 e% L! N$ |' T
gen pminplddy240=`tempminplddy240' in 14 X: A, b$ c1 \
3 n' ?9 Q8 ~7 n$ n, o: H9 |3 N
*-------------ddy240pmaxp左侧高峰值 -------------------& {# c6 C, [- Z4 T
8 L1 R0 b3 J: W preserve
, S h5 I) x( X$ @5 r0 j8 N d/ A" A/ j: `. G$ w
keep if dx240>`tempminp'8 \8 k5 P7 { {9 t! c. u$ D4 j1 q
7 Y8 j% G z1 N. ^3 P K3 { keep if dx240<`tempmaxp'$ @2 w* m" J& t+ N6 _
* W: d" J7 {& ^: L# D1 ?- o
keep if ddy240>0) D, R1 a: ^) a$ A5 B
count7 t+ D3 k- H$ H; K3 C& x |: _! B
4 _+ P6 m! X/ k# B8 w: t0 G8 Z if r(N)>2 {
) V" F& Y1 J+ O. N4 T. S
6 M! ?( B. q* w& l" b, t% c; t0 E( V2 j! F5 c pkexamine dx240 ddy2405 k' @$ b2 O3 n; @
( a3 u B. L2 [) f( y$ z
local tempmaxphddy240=r(tomc) & H2 N' c2 w$ {8 |( j- F
/ y. N T: m. F9 T# Z( C; X: y
restore
5 _" N# B G$ O0 I }
" r9 `8 ?) ]0 [: J* u" q: R
K7 o. I% G3 l" O8 V0 V' z else {
' D! \# j* O: E. e' Z$ F ( W$ H* k5 x' o; d6 L
di "cannot find pmaxphddy240") K7 g+ ]6 c/ ~( ~; Q5 {. e
restore
& M+ R8 s! m4 W * t2 V+ k. F* I' o: N
sum dx240
! e+ X2 Y$ H3 p: w" s0 ? local tempmaxphddy240=r(mean) : r) ?( k- b9 ]
I/ ~6 B! |( Y
0 k: ?& g: P5 D- w5 J* j
}
' D* ]. L( q$ E: }' I- [5 @. v$ I 0 d% G0 x% V* b: ~# C, h
! B' R+ S; M/ D. b% |8 D" D
, r0 e8 X$ S, j, Y" F
' e, Y3 C, z5 O# u8 ]1 x
& ~# m" j! A9 l5 Z& y 3 w3 v5 s: u6 [ Y7 p; W
gen pmaxphddy240=`tempmaxphddy240' in 19 o- R$ r; N5 y) G
6 @3 l) [$ s- ^1 N1 ]; {
5 [/ h7 d* P) i- L# [# C *-------------ddy240pmaxp右侧低峰值 -------------------
" z$ @7 E; P( E
) [, {; v0 v% X# G preserve |3 G/ y1 f/ y$ p1 x: K
}% g6 f. B2 I, M" l* d8 G
keep if dx240>`tempmaxp'
$ g* b- o, g$ z, e' J' C$ h: A$ m - {$ v4 X6 t8 z/ y5 `6 w
gen temddy240=-ddy240% z3 e7 T& l( z" K! n/ t
, ]$ N% [( M/ ?2 B4 a keep if temddy240>0
3 O& m9 f9 O& E& j! S, y; `* H
; E/ C# q9 I9 \. w count; f. w; l4 I2 Y4 j2 n: B- H
! [4 i$ X5 L7 a if r(N)>2 {) L T2 @5 Z1 G7 f- ?' G
Q2 H" R$ j3 v! Z( {9 T3 ? pkexamine dx240 temddy240
- r* s; G' d! k# ]+ P: y , v- _6 Y* L- |5 {" W6 `+ z
local tempmaxplddy240=r(tomc) 2 e. Y5 Y1 K8 J& l1 ^
restore
! Z5 Y7 N$ S/ D9 @2 n* H1 Z, {8 d }
# s9 H5 Y1 ~4 W$ D; S7 s# G ! p8 K8 M5 w Q; ?4 \
else {' r u( f3 d+ d C+ }
restore. D3 r+ d$ [# e8 P+ D8 Z
di "cannot find pmaxlhddy240"
" _. @1 \" H8 t! U+ Z0 B6 K
, {0 N0 L3 {6 w( b
& X' I1 P8 A9 {4 | sum dx240
8 I" H! H/ \0 y6 S# a2 @ local tempmaxplddy240=r(mean) in 1
; T6 B/ L$ ~( S0 L, A
' b* ]# k y8 l0 E j 1 }; o$ x3 ^9 t6 C8 l3 y" w* X; R
}
6 `& ]5 H' y v0 t1 x
" r; a, m! p* [/ G/ Z 8 R" I. r0 K) M
6 x5 f. X/ q: h+ I2 F6 m2 Q1 Y- Y - {8 Q: E, s! j& H0 I B7 z
% _1 F; n. U- p- _% f
4 D8 {0 ^' [, V. s gen pmaxplddy240=`tempmaxphddy240' in 1 g1 s. {: n, h2 A2 D2 q
: j m0 @( C! L* o: B9 W/ H
*-------------------------------------
$ {% `1 Y; l" {5 ], l ) a: s3 Y8 O- ]1 Z5 D* Q3 S, n, R
gen price5d=v5 in 1/20 l/ v; U% W" A" q( X. F
# U' A; \7 H# D9 \ gen price5yy=_n in 1/20
: [$ s# b4 s# h" L1 w/ N 0 O( ?; H/ m! _9 I$ _
gen price5y=price5yy*(dy240max-dy240min)/20
* H( N+ r7 f& ~" f1 m1 z; Y 1 Y$ O; J/ x' L& O! C. N0 X! g
*price5y &price5d# S# b* s, c- s% G0 S: ?
/ N- z; q% W x gen priceny=price5y in 1
' m* o% M: d$ q! |: I7 x
$ g9 f2 y; N4 B( F; c% m5 [5 w gen pricen=v5 in 1" k2 Q5 T/ [- J( C/ l* _
+ E5 o! S) i, r4 i1 I/ l* W/ O) y
# f2 g" V+ C# G5 Q# R3 o# q1 t
*priceny &pricen
/ ~8 s# i$ @& n
0 A$ ^4 J, n+ | L2 C
* i/ l- F1 A$ Q9 t7 X *-------------------------graph------------------
+ O; B n# T+ f9 N$ v+ f, V3 Z 1 G/ @9 r" l0 Y i }1 t/ R$ ]
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): l- h; A6 @3 s V( x
7 U7 `. C2 O2 J2 `/ m$ }8 H) |: {4 C* ---------可选项目----------------------
6 A& Q z- U5 v! z$ g*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))& D. x6 k. I- l: p; E. R
}
8 `; i' A/ P) x: f7 u: G7 d& [4 zend
' E) C q! s' Q& s/ | |
|