|
|
maodeng 发表于 2013-1-28 13:13 ' ?0 y/ `1 ~( j
. hello 300236
* N( z. n( a! gstatement out of context5 c$ R: j- M1 |2 c
r(119);
7 y+ u* X6 L0 r7 I抱歉,最近太忙了
9 Z9 _' \% c' s" z# u: J* W) u+ Z/ H4 ]- }: x; s3 I
300236 我用下面的程序试过,没问题3 B3 y! F& q+ s9 c: _. Z
. v9 a6 T% U( P) A' X) [
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
0 P% y. o9 m, o% U* T9 E. [4 E$ S& |4 D' F! ] r A" x
capture program drop hello1 l& @1 X# O) X6 G) e' S. {
8 k; I& I( n) f+ J: Z: i
program hello
" H- T/ Q2 W" C1 v y
6 ~$ Y/ t9 @" v, v7 [7 D" j quietly {6 _+ n( q+ f& W4 b+ Y$ C5 k
- U y. I0 {7 X0 i- t [; fclear
0 K7 z( [ m' x% X
8 G; l, B5 `0 `. N$ @/ kcd D:\stock\test\source* `2 j5 P' C" Y. U
" k+ [7 ^2 T2 Z* j, g0 k
insheet using `1'.txt
1 ^1 X5 g; o, R* P/ g. r& C7 Y* ?, N% O) Q( i c6 w1 y7 H4 c- I
keep if v5>0
9 [6 f3 {$ n* X! y8 W : M! ]* {0 M$ P+ i
gen vt=_n9 @1 w2 Y6 o+ P" i. q
) V2 I6 `4 B: o3 \. R) k8 L/ y tsset vt( M* Y" J1 E) C$ Q
. G. b' I! ?0 r0 G% Y7 C gen zf=D1.v5
; y, G: B' l0 j$ F9 H6 M
5 z; L) K) s# _ gsort -v1
$ \) J( Y2 X, J: ?$ W1 {/ b: w/ O1 y8 K4 \$ g
gen avol=v7/v56 l( @1 q6 T) K$ A
K" T, e2 M1 P3 J0 E5 F keep if avol>0) E7 {3 A2 y' f
% I) @4 a9 A" T+ y; m) l drop vt" S4 E4 Y' P" c8 R. p
+ x$ a. b/ w) L. s- S9 A0 G
gen vt=_n5 K1 a+ c8 h. |0 \
9 o9 U. n' C! `6 t. d8 ^ tsset vt( K8 W `: R& K( _" ^: S* Q, Z
& ]- A. B$ l+ ~. G f0 N3 p sum v5 [aw =avol]
( C2 p, \9 p) V
4 y, v8 O0 W8 K8 P3 e$ l gen amean=r(mean) in 1' J( p/ D* N% _5 J/ F% Y" v
7 O. Y; a6 o, `& o/ d/ M2 \, ^
* 总加权平均值 amean
' ?# \5 T4 K( N# f
' l: g/ C" K! Q2 X8 H : O0 D/ W9 h9 N; t" b1 n' K
keep in 1/240
3 f3 _( ], i1 v+ P3 l' t
5 f/ n: H: ?, @, f% K7 W sum v5 [aw =avol]
& k- K2 D1 j( q* l( H- ]% u6 j/ `- j+ {& E" g2 [9 \/ z0 I1 R
gen mean240=r(mean) in 1 y+ k6 a$ @9 c7 a/ z8 `8 Y* w2 ]
' Y a) k% L6 o/ H1 D
*240加权平均值 mean240
. Z8 F* \: O# _' D0 A+ F
O [# x8 v0 k% C set obs 500 & P4 Q/ n2 t0 M5 ^ p8 ^
" B _ f6 c P) Y3 ]
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
5 H+ X0 G% E2 \. j B' y4 ]( W: t0 M' M9 A4 X$ t- }3 Q
*240 kdensity(dx240 dy240)& @7 Q! Z+ s& j3 x
+ @0 }4 d1 t. L% n
sum dy240" r( k% B) a0 a' T; k$ Z
; v3 Q, i5 i. x7 u1 O o
gen yxis=r(max) in 1
; Y; d5 D# M# K" |+ N 9 M6 K: d* S, f; R% T
gen yxis2=yxis/2
" a$ r2 G* }2 A. Y' D$ v
: C n2 I" [1 ^& i% @( Q0 T *yxis
% b( n1 G P1 g; x) U* o: }7 G
# X$ t. a: J, @) b5 {: i* A gen dy240max=r(max)0 s- V( c$ g- U/ b+ ~4 l& v
& _, z- T* a/ Q* N- G2 F( w6 x7 U( X
gen dy240minp=r(min)$ u" x/ }- n% n" e/ [, q, c! a" }
1 {! l8 S" i% q# P+ R9 }- y gen vtt=_n7 a2 a* D" y, h0 X$ t4 w/ H2 h
! f: N; Z' t0 @ q tsset vtt) `- O; M0 Q1 u( d. d9 F4 D. R
: F- n) C' \4 ~- e" b q
gen ddy240=D1.dy240/D1.dx240* ^ Q4 T4 A$ f( k1 P1 H
- |; z5 r; d. I( n. C: w/ Y sum ddy240% n3 H2 ^3 X! f
' P# }- B9 |# |. X" E% z4 l
gen ddy240max=r(max); C" @- a. N: T5 E7 G: Y' Q% q( h- ?
5 e' g4 O7 B& o5 L! _- q" G- g1 x& t. E
gen ddy240min=r(min)/ B# ~* f$ Y% u4 r
+ ^8 P7 i0 t4 E9 [5 l$ \
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- c5 x. g" m9 m
- x, k! g. Y- X. `) P% w sum ddy240g9 L8 }. p' T9 A, I1 {7 X# @3 s
* H N& u' a! G! W" o! a$ i1 X
gen yxis3=r(min) in 16 [# E- \/ Y$ ?0 A v+ O
. O' w2 T6 K! H5 ~* R+ D) B/ p, y
gen yxis4=0 in 16 B, M s" q3 m3 S
# v) B9 z9 B9 D3 ] *ddy240g
$ ~7 I5 N" m5 Y! g; ~ 9 z* V k7 r6 ~
" g1 F" U. X2 Y) M8 v% V( |
preserve * I% T* e8 q+ U( a, I5 e( u
& n3 ^0 h. C1 ]$ l/ e sum v5 [aw =avol]! Y, f4 a, n7 n) f6 ^. T
$ R. n5 g# P5 k3 d, ^& O2 ?. C, A keep if dx240<r(mean)
7 t. x0 ?; C+ l7 j# H
2 p4 O* Q j1 h5 S7 k; m& E) _ sum ddy240+ [1 x' ?/ G8 Q1 g9 j" ]0 R
6 D0 v5 l" K3 U if r(min)<0 {; i' d9 A% _' k
) U0 f/ _5 T8 g2 K" F( a W
keep if ddy240<=0
( a: G5 `3 G# d1 M
# K/ x: }; y& d( O9 E+ ~8 j4 K% f count
; m$ s" E- _4 Q+ h
8 P" m/ }$ T' H- D9 w4 U4 C if r(N)>2 {
0 O$ k9 S c3 h' N- A , {0 K) W6 b5 y9 T
pkexamine dx240 dy240) K( ^& C1 u" O
# i! q1 z' u n' y5 a v local tempminp=r(tomc)
1 O3 |% n: K7 l3 C7 @ n restore
. F6 U9 g1 w3 _- N1 f. T }$ d9 d; r4 v. O) h& b& ]5 w% [
7 {# W, z4 C& G a
else {
6 H" a) I+ ^3 D$ H $ M( ]" n* k/ \+ i. B9 C
di "cannot find minp"+ J3 n* g+ X7 y3 g4 {: }
" h5 J5 z) W& L2 t I8 U6 H$ z! K restore
8 O, X, x/ h+ \ ?( R9 ~) n sum dx240- @4 v3 ?( R* W. Q. i6 S( k
local tempminp=r(mean)
& f, W. s% G: N/ d
+ @" l7 r4 x u }; A3 h x2 o" [: W8 K3 L
}# i1 \+ H) H0 Z8 c2 C
else {+ H" H3 x- c& I% M3 J
7 @( p6 J7 z/ x/ W1 f
keep if ddy240<=r(min)% \4 O7 e C6 K/ g
' @5 h/ Q' R) j* o* {# @ sum dx240
* P- ~/ M7 Y2 H# Z" r9 x/ r; L ! W1 R5 s, |* d% T" f
local tempminp=r(min)8 q* F0 |; M; T q. i, c o) w
restore ( A7 ^( f, }5 F {" n$ [3 n: e8 Y4 w
}
* U8 h& M$ A+ R; u0 w# J: j, A1 P4 I( `6 _4 N
4 F! s2 i2 {& X. m% K2 O
$ F1 Y+ E" ]5 I' @
gen minp=`tempminp' in 1
8 ^/ s9 g, K; O3 _; t7 I *240 minp
2 P+ ~( G# e4 W. o( o
. u1 a Q4 X6 c* U! G7 Y) ]8 a% _3 B, P' X u9 v
1 h- y2 H/ S& o( s7 ^ preserve
% s% M. j$ ^2 r* r/ B, _* \( E - Q- K7 X% a: @- @0 p
sum v5 [aw =avol]
U/ W! j2 _9 ?: C/ x
% j2 \0 R5 W) ?* ]! g/ \ keep if dx240>r(mean): N/ T' \" C5 R
7 e/ }9 j K# ?5 r$ N6 u+ @$ ?
sum ddy240
) g7 h) @* E7 b) ]7 y8 Z $ i# S( W4 U! F* P$ C/ J' c
if r(max)>0 {
# m* p1 e/ S$ N/ ~1 p' w- R* Q . h" W) V+ C5 d
keep if ddy240>=0$ V# Z0 |1 j9 S; ?# c$ t
8 S k& V0 C2 e9 c4 Y x count0 V' u' S# {: s5 Y% b
- ^6 S% B% k1 I% c# c g if r(N)>2 {4 i& |) q. A. N
4 G, B1 K- X2 S1 w O
pkexamine dx240 dy240; b4 y" v8 M1 h& E2 @( ]/ F, E
- H8 a N5 B( d' D0 \
local tempmaxp=r(tomc) 5 |% P3 _- C" Z7 O: d0 o
restore ' C' P6 I% V: ~5 ]/ U
}$ n' H: u. N0 `; \! y
% X& g# h" J* B- `; A
6 E8 C" v, N. _% m else {& i0 ~. f: a0 c3 Z3 j/ R1 ]
restore ) d5 \; T' P+ d2 f8 Z
di "cannot find maxp"$ f2 x3 r# ~: R* ~+ a: p% d) ~3 k. g; N+ S
- h: E3 s5 c3 t; R! e
4 Z+ Y; P @1 |$ e/ d& z9 L sum dx240( E; a+ M( p O" {
local tempmaxp=r(mean)
8 P" ^& x( [& V6 ?- A Z% V8 A $ e7 [: u0 F9 ~( ^6 ]& K7 e
}
* ]; r% ?5 v# Z E; F- o ( J9 g2 T. ~$ G3 l7 W, b. c: P
}; _' c: \) A a# O. p& W+ o ^: v
U& q* e8 v. b1 X) I
else {- u% h- R2 M6 V
/ z. W$ S v+ b6 i ]+ y, B/ c
keep if ddy240>=r(max)* L5 s- P1 t% O. N9 Y2 U
& |5 Z7 \; W7 Y6 d; b5 Q sum dx240
8 J0 c+ Z$ c* [4 f$ H+ g + c+ v$ Y5 e* E3 L+ n o/ S. s; g
local tempmaxp=r(max)
4 c. k7 o/ f5 ?7 q restore 6 a0 @! W4 g X7 y) w/ R( _1 @8 A w) P
}) ~( g1 w; `7 x# x( I; Q. c+ v f
) S* y! e" ^9 v# j1 |! ?
! k" v( ^; O: J) }. H8 J
6 j y5 I. W1 ]& w+ e, t5 X& i
- |' d! ]4 u9 j y gen maxp=`tempmaxp' in 1
$ g7 f8 G+ R) R! k
; x0 {0 _/ \+ V5 K- j *240maxp
) s `2 p% N1 w1 j9 C5 V
- r) a% N* v, p8 U G( D0 y $ S3 [6 S# P0 M+ c* z" y1 l- N
*-------------ddy240pminp左侧高峰值-----8 M" j. B, w+ H ]" u% Q
# ^( h! L2 o& X" I
preserve 6 k ^+ \ ]) c# t
5 N" ^# m$ ^8 ?% h E
keep if dx240<`tempminp'
^; R: U# S5 y r: p' p : S* A) W& u5 G, o8 E/ R" Q8 `
keep if ddy240>0) h# f1 t- a& `
. F& z0 \- y/ X$ `2 f* u
count, v* P0 y1 t" V/ l( b
: W# r8 F9 x6 A# E0 u0 L3 o( [
if r(N)>2 {
* A7 }& w- }8 A# M% G6 @3 ~6 p
( }( d6 O8 ~0 q pkexamine dx240 ddy2406 [6 i$ F- Y6 u
3 V1 N d5 ?& W) G h8 r! a local tempminphddy240=r(tomc) ; b) Y3 t' W# H9 r, [
restore/ a$ @. g$ P9 Z4 D+ D
}
: M" E0 l x9 S2 ^% U8 @, y ! h6 O8 O& B! ~1 s
else {
0 }2 m! O" }5 W! \; x restore
1 C& |8 Y, D9 U) s" W di "cannot find pminphddy240"& K) Z' K3 k' f+ S4 y) F" W% S
) |% _3 C1 D$ k& g4 a4 r
% D. @3 }7 t$ f4 K& N% Y sum dx240) O4 Q: m& l- j
local tempminphddy240=r(mean)
* r4 F& p2 j% e; U8 p) c / o" J- R) A7 r
- Q4 j: s8 F' X! t4 X) _, @! t, v }7 I& X' d4 o! j( Q! I& o2 |
9 T& [& X8 P3 |/ ~+ M
$ _; P9 w9 ?5 t& a
" A; X/ i* i4 M0 v- Z0 u8 O . t4 b3 U, y8 S( o# m/ e( m5 k
( V. H# r6 Q) i. ^, `3 L0 K
# \* h4 H7 d9 n+ W gen pminphddy240=`tempminphddy240' in 18 U/ S3 n. ^( G( h( v
/ W* x$ X# ~; z; I - |! e& n ~" |+ A$ p4 M. A8 e3 H
*-------------ddy240pminp右侧低峰值 -----------------
: q7 M& W$ S& Y: _: `5 o preserve - Z+ u6 G q( z, F- z* y4 T
9 E/ B4 v8 Z3 X/ l6 B- C
keep if dx240>`tempminp') C1 d) B) ^. F. Q8 k/ i6 V
1 K* m, { H/ ]! v# P* F0 O
keep if dx240<`tempmaxp'
6 q/ b. W) o n : ?5 f5 k4 p3 |6 {! L+ B* ~
keep if ddy240<06 z5 G, d5 p$ ^% c
4 _" d g. e' O9 F$ i! j1 ^
gen temddy240=-ddy240
3 T3 X# a# f( d! T) R, [
6 H% I2 t. q; O K& H4 I) c count7 ] x. }2 K9 `# Z: Q! [: \. H
* O# \1 T# x9 ?6 U
if r(N)>2 {
: M$ i& E2 O& |4 y$ ]
) X d: t, i$ S* J8 {& d( s pkexamine dx240 temddy240
% @( Z0 X+ ?' y) P% N& u
) C( Y# Z' O8 Y. ~" S( w local tempminplddy240=r(tomc); Y8 [8 ^8 q& v6 [# b) p. Z
restore7 @9 o0 F7 _* {" C, H( a' Z4 _' W
}
& c+ a4 J5 K# F4 _. P$ j8 B
H Q. R1 c$ J, {7 {" R else {5 T8 ^2 u- Y, f8 o3 E
% a8 b" _2 f- u2 U) l, V+ [ di "cannot find pminplddy240"" [6 j6 F1 q [, ~
restore
$ @( ?* X# N& L% n
* F0 U, ]/ T9 d+ W3 h sum dx240- Q) B# e9 Q8 v" _4 V, ?) T1 v4 `
local tempminplddy240=r(mean)7 c/ O/ l4 k& }% L N8 K/ z& ?
: I. B; w/ l/ K- J- ^$ L2 G
9 _: i/ g" X9 H( g/ t/ g
}
3 V. n+ Z9 i( { T2 x
3 ^4 M' ]* c( L; z# r' `: q. R: F * `/ W" ^: v- G) n8 _. E
( |/ e9 t6 W3 z # X1 X1 m& u* v! J+ q, t& J
9 _4 E5 w; K6 O8 w Q3 ]
gen pminplddy240=`tempminplddy240' in 1/ Q% T* Q, }4 `7 H7 i7 {
; W/ s' I( q8 t! Y9 W [1 w
*-------------ddy240pmaxp左侧高峰值 -------------------7 E7 j( x. r5 D2 x
* p+ g1 b1 _" x+ h7 |) ^( Q: F: C
preserve
4 p& ?- y/ I! J. C3 v+ T) W. b 0 ?" H( Y" W: j$ p6 j- H6 R
keep if dx240>`tempminp'5 \) M7 A& T* l" [1 E9 i
, M! `$ X& r5 J$ ~
keep if dx240<`tempmaxp'
* N+ T3 R8 d5 b0 l% r; _" H
+ @1 |$ j0 z. F9 U! N4 K keep if ddy240>0
$ e- w% L! s( ~" M count) ?+ Y8 O" w1 ~" w! E
/ @2 v: {# f3 E) v( b& K
if r(N)>2 {
" ^2 R Q0 L, E2 m , J7 O4 K. I9 Q- ^! c% T
pkexamine dx240 ddy240
- ~0 `. o! g' t. H! {
, ~: r" L8 E% ]$ ~* r7 b+ g- V local tempmaxphddy240=r(tomc)
1 e% @, u2 `! o
1 n2 J* b3 h; f7 ~7 ? restore: w4 ]9 ~4 l! e5 { P' [
}
?8 s8 ~& G9 P+ c 5 w( x$ l$ W! p
else {
9 L+ S7 }+ H0 m1 z8 W4 e- z 8 C- J6 x# h4 i' {
di "cannot find pmaxphddy240"- G( t2 B: g/ [, ?( {; D
restore
% }2 v3 Q( _9 ^" S, s 5 x* J* V( r) ^5 u. S1 x& |
sum dx240% ]1 b* h2 D# ?) R" Y: b0 B1 K4 X! Q- ?
local tempmaxphddy240=r(mean) / R( k; t7 C1 U/ ?0 j3 A8 G
) V% I, L/ p7 ^) q 9 Q2 \- B, l3 Z6 g' S g: X: ^
}
/ M" F1 I& K D2 W# X0 G5 I
9 L J# @# n7 P. B( m; t I0 m A
( U! G/ G( j! s: J . b. Z0 V; h: \6 @/ i
: q8 p N4 C8 e/ y' A
' l& {- Y; n! a# [4 s5 L8 U) Y
9 Y8 b# ]8 R0 \1 B& r gen pmaxphddy240=`tempmaxphddy240' in 1
/ s) u' a' R' z4 r/ N6 u 2 x) D: [" d9 u( d1 P
- U! ]3 ], D# B# E; w& B *-------------ddy240pmaxp右侧低峰值 -------------------) s+ Y+ T% R3 o8 V' P. _
( B; Q0 z" o" } preserve ' E" \1 r* {7 ]+ s
+ b# Q' T" t' T; S/ R' t* ` keep if dx240>`tempmaxp'' a3 |! S+ @( x+ M: x# M; h
+ a$ }7 }, Y- m gen temddy240=-ddy240
, f1 G- _7 V1 V% \; z
* { ~$ J+ I z. ]# X. T keep if temddy240>0
6 |5 m( l+ }! d. E( F ( ?+ \& [- E" S2 j' R; E
count
6 o* [ v1 i) T4 `. y" A
5 ?4 R9 `6 D8 J1 {4 p if r(N)>2 {( r* i& E: |' t9 j: G$ v
" O2 T/ m( z' ~9 ]5 l% R0 N pkexamine dx240 temddy240
/ y+ z: \" b+ ^. y& t7 L+ z
- u! j" O A" y7 z' f local tempmaxplddy240=r(tomc)
1 q! w8 a$ {. w0 C restore
9 Y, k" k" h9 G( s; r }$ \0 |6 b2 Y1 v
+ R0 _8 c/ @4 n
else {
# S5 A5 r% |+ [' S/ V6 j% K restore+ j6 e Q1 E/ `
di "cannot find pmaxlhddy240"
, t; v0 f9 }! x* M6 c7 C9 x& q! W ; F4 I U+ L+ w# Y
/ [! N. a. `1 s* {2 l" m8 W$ V sum dx2401 t: s/ r) L# \ T; k
local tempmaxplddy240=r(mean) in 1( R9 I* g2 _ z0 _
, `2 T3 @3 p. F6 ^; b0 j
/ G* ?9 x/ J4 r: k, g9 r: R }' ]: I9 d- Z; D
0 Y+ y, T0 b/ P- { W% I$ R/ U8 T3 _ u: w. P9 |7 e2 N( }9 n% }
: ?; u7 I9 W' L: b& e/ r* D ; d& L5 P, o/ v& V% z
) s# B* \0 u7 b; z q( d
+ i; b8 o- g( V5 J' L8 _$ l& N9 @
gen pmaxplddy240=`tempmaxphddy240' in 1/ \3 c8 j% j, C/ B
2 V6 `9 w6 m0 U& T
*-------------------------------------
& L9 ^3 Q5 r5 m( y+ d/ n6 D ) {: Z* \% ^! v" q# H7 A4 w
gen price5d=v5 in 1/20
' E8 p2 Q7 `, p
8 ^) x/ Z0 }" J7 f gen price5yy=_n in 1/20
. ~* ~: ^) G( g+ D( h' j
0 ^( H" P9 [/ _* t gen price5y=price5yy*(dy240max-dy240min)/20
& c/ g/ b- y7 C3 F( u) ^ 2 h0 }% A3 L$ [; J& G5 `# d9 U' W
*price5y &price5d0 n4 Y2 }& k. n, s8 s! z2 ^# Q7 i. h* |
8 y6 u+ G5 Q, [+ T% i3 G
gen priceny=price5y in 1
+ c% @/ s6 L* R2 a+ M! C $ W0 t5 Y6 {% [! f) B
gen pricen=v5 in 19 X! u( B4 E* t4 b3 c3 Q
, H# s, J+ x* l6 X
# n' L( ~7 l; U& {( y# k *priceny &pricen0 U t) T- d9 Y, T
: n/ d5 Y& e* w) K; t6 q
: n4 r! ?) w' o2 \ *-------------------------graph------------------
1 q; f4 {3 P2 b
) G: m1 A2 K9 u5 w, \ 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)
0 j9 P+ {' p0 t4 C- ]. h7 x8 E2 S% W) a, O: M
* ---------可选项目----------------------% k r, \- G0 {# V+ L
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
: X. W x2 E5 d; x/ G}
' {/ E- U* V c" H2 _end
& Z$ ?' A1 B4 y" J) @: F |
|