|
|
maodeng 发表于 2013-1-28 13:13 8 r0 J% {# [1 ]' B4 Q
. hello 300236$ N1 B! x! c) i$ b& {
statement out of context* s' N& H0 e4 m; w
r(119); # o, i% o% c# h+ C5 n) G; N9 V
抱歉,最近太忙了
+ N* N1 ^3 Q7 y+ x6 \
4 _! j2 y# ?# L3 {8 ~7 u300236 我用下面的程序试过,没问题2 u2 N' `' A+ r R
2 `! j0 B4 o6 H
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
% V- v0 @- v/ k" e# T' O0 f$ r. A2 t* ]7 }: f* D
capture program drop hello
. S8 b# R: _, C& Y
! G6 O! Q& Z, e1 |program hello0 T+ c5 f% p: A$ v( ?4 _ M
2 j' n1 \$ Q4 L& @4 Y6 X$ o quietly {
( ~0 p- D/ l3 Y) N! Z B/ Z8 G* N2 W. ^( p& z* d1 b
clear$ |- K& n) \8 J( M5 q$ X
( t5 D. F" L# I" I6 [1 l3 c
cd D:\stock\test\source% D6 m( b6 e6 S2 `3 ?4 Q3 C5 s8 f
% v K. f2 R7 ~ ~, c2 E$ j* Jinsheet using `1'.txt9 X' M* @* s8 W' F! m
/ `1 t4 R; V9 _9 Y: { keep if v5>0& o" v: i3 `6 k5 a
! ~ e2 p3 e u9 r1 N gen vt=_n
; H/ z% Y( y# X3 |& K6 q( M; _
& T2 A1 ]) R" e% }8 i. D tsset vt
( E9 R% L8 p1 ?/ f; o4 i
' c0 o% j# d7 F5 l, x* R' H3 f gen zf=D1.v5
- G5 Y) M7 D' h: D( g+ w8 l ~! Q/ n) |) ~: O
gsort -v1
+ W+ O+ K4 z: Z3 c' U, E, G9 _& E
& @( x8 T! g6 ?0 p# \! \- F gen avol=v7/v59 ~$ G u6 Y) ]0 @ e% Y8 Z
; t5 s4 Z$ ^* K/ b! q! B# G keep if avol>0 _5 E) x$ \3 n6 y8 `
+ m+ Z- U5 c+ x5 F
drop vt
4 r) Y1 s5 i5 f3 f3 e ; v$ ]1 S u5 ~- ^5 R- B+ `
gen vt=_n/ n0 z. `6 _0 Z* i. b; U9 ]! f
. j4 W" b$ d7 P3 v A: o6 K& q9 P0 y
tsset vt! x# ~* m, y6 t' q8 W4 y' t9 S! t
: Y9 [3 |9 A- L; O6 Y! T8 b7 x( ^& z
sum v5 [aw =avol]
( ^3 W3 N* L" `6 ~
! _# Q) X% j" v8 e1 S3 ` gen amean=r(mean) in 1 Q6 U7 E- u5 Q, m& b7 \% X
G( I: ]" i4 F * 总加权平均值 amean
" [+ [/ v5 h+ K
: l- W5 u7 S, ~4 ~8 w
$ l, u1 y* d( d6 r keep in 1/2405 S' J2 H+ Y$ C
3 h7 p- ~3 Y( y! l" G& u! }; p
sum v5 [aw =avol]% c3 D" l7 A5 n! L5 W
) x) M- w* w7 `( t) E; O
gen mean240=r(mean) in 1
7 L* m; }2 x* I# }& i" d4 L, ?8 x2 G
" h' Q3 |& g7 }2 @1 Y *240加权平均值 mean240
& T& o# Z( w6 _9 U. \9 h* O% n. _
( M7 T7 Y% L A0 z7 A2 ~, H set obs 500
( \4 s& M9 Q, P2 K3 B/ I
6 O2 W2 v& S/ |% \/ a( N kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
( ~ A4 J% V/ N. } L & b/ F3 w" M; R6 O( u
*240 kdensity(dx240 dy240)$ }: o* H% C/ b( C- N
3 |; e: S+ ~8 s$ g+ W' W+ F4 P5 J sum dy2400 `2 K) A5 Q/ A. I
+ \# ?5 d$ u1 r2 F0 K gen yxis=r(max) in 13 S- h8 B5 G5 ?2 ^4 E; ]* {
1 E: G" N/ w1 v; o, e$ y$ p, F gen yxis2=yxis/2, A# I0 ^; J! y* g- \ W
, N4 v, \ S5 A+ p( F9 Z *yxis! [( |. C8 K5 f0 Z, U9 [2 r% e; W' a# u/ K
! e7 B. u1 G. e( r4 C
gen dy240max=r(max)
/ b9 `- _' k+ t. B
- T: m2 \5 s) M gen dy240minp=r(min)
/ E- f! }; K5 {9 X& P5 K , G; F1 U# W) {# m; ]4 t5 o
gen vtt=_n
8 v' I* Z- C$ {6 q" D/ W4 V% y! d9 L' m( E; l
tsset vtt; T; n0 E5 s2 y
" e: Z3 v" g. k6 S gen ddy240=D1.dy240/D1.dx240
# ~: T. m ?8 j$ t$ H* M
' S5 g! V' b+ M3 B7 y sum ddy240
u% T1 q A& c* d. R: D
U3 c0 F: P6 B5 U8 F7 q( N# A, { gen ddy240max=r(max)
1 q7 z( N" m8 }, i. x1 g
/ Z, z: F* F' E+ d gen ddy240min=r(min)4 d) ~$ u% {- O8 C' O v0 K# l
" O8 x; i+ A+ g# w gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
! ?/ f; @2 h0 g2 J
5 a( J3 ^$ p" Y* x sum ddy240g' x6 b# _, S6 I1 z
6 |2 N0 n) ^* p! p, e
gen yxis3=r(min) in 1
/ P- w. }" A* _' S' N; O4 w* {
6 Q* m1 R8 j$ o gen yxis4=0 in 1- _* {) V7 f2 I( P; f
: V L% }! e$ w8 T0 _0 R r
*ddy240g
, f3 t1 K5 X0 k% q1 g( \5 j1 ^ 4 }, [" X3 _$ d3 @( f/ l
# B ?2 G' ^ ^% J$ c0 D* j7 \ preserve ; X3 P* M; i+ Y8 {$ F
B- G0 e' x: g- Y* }7 e/ x- k sum v5 [aw =avol]+ ^$ @, d1 O& b3 ?) t2 }- j
- P: n% D+ W& d# C5 _$ r8 h; |, g7 H keep if dx240<r(mean)
# Q9 Q5 V" S; \ M* Y8 r" Y ) |; G% S8 l- X: @6 V
sum ddy240
& H7 ]3 t; T+ N) e$ q, y
! ?; X! C& j9 v e+ u0 V if r(min)<0 {
& P9 q5 Z5 w' w) F, z 2 i/ y8 d& z* m, o, Q4 x+ H
keep if ddy240<=0
4 q* c% w$ q- C9 W
) f: E/ ^+ a4 p& y count
8 I+ h6 \: k% ~$ X/ F. e" g) ` / f. a" o+ F+ o+ a& B- s# s
if r(N)>2 {
! x7 k/ |/ h; Y$ }6 \
# y* s9 @. G, M) d1 i/ P pkexamine dx240 dy240! ?: _6 R7 q- a: p+ @
& O+ d7 c% I; T. \5 t2 G local tempminp=r(tomc)8 o1 C, R G" a
restore
. g, I2 q5 Y9 v, c& Z. _ }! L# k8 _# O& M
/ U4 L' I6 ?' j+ j& n! U$ B2 W
else {# a" ~, z$ C+ d4 u5 E, E
' ]8 y6 \: ~) ?5 s- x4 c. P di "cannot find minp"
1 f% e- u, o' ~ w# L% W/ G- T. K2 o$ d
" k, |/ Y# S; B1 J& V/ ^+ ? restore 5 e2 Q1 \& C: |/ p% D8 X! p4 O
sum dx240
+ @( e& [4 Q- U$ v/ t/ d local tempminp=r(mean)$ j2 q( G4 j/ D+ T3 F7 K
- |/ j% M% C6 T* Y7 z; Q
}% w& v( s# F `/ C3 U: Z' N3 d
}
( J- O. ?$ l( A3 B3 q f4 g else {
1 h( R2 m/ N" q9 c % H$ r; r3 W# g: L, ?
keep if ddy240<=r(min)
+ u# P' O {. z, Y/ T + C1 K* \$ z9 N7 X- ^0 U; g
sum dx2408 B1 U) B5 [/ j* S# L7 h) ]
) z( R% {' ~& _# k: M
local tempminp=r(min)
: G9 M9 k: }4 ^/ Z7 m restore
3 @* |3 @9 g9 C" W% q }
6 [3 y5 ]" ?1 L
* K6 C# e$ V2 a; W4 z9 G
% b. {6 {# |4 k" |6 Z V
3 R! B( o( \0 w/ X gen minp=`tempminp' in 1' h$ z! D1 G: H( `2 e" m4 e
*240 minp
! q0 K% C! P3 E }8 c" c. h0 L4 Q6 O$ o; L2 D2 b! Q: m7 P* X
6 c4 h' g! P3 w7 X3 v : G% ?) |! d6 P+ e1 v# P
preserve
- h' x- e; q2 q$ I! w5 s) y5 E7 ] ) N5 ~4 b" a2 y
sum v5 [aw =avol]
% a! A% {9 B# U5 F0 f, F: Y$ z4 R% B4 ?# o / \6 X+ P8 P* `6 U& A0 l# n
keep if dx240>r(mean); ^! T* X2 n* u3 B
: F# I$ O4 P$ A* r sum ddy240
) P' ^5 \) q* }6 E # [7 [, F2 h/ H$ M" T
if r(max)>0 {7 o/ |3 A& s8 Q0 Y+ O0 O$ G( s
: s( k1 ~; e5 m
keep if ddy240>=06 l E& o0 P9 D# A
4 L$ |* h T$ ]- g8 \, b! |* o count) ?! L$ X8 i- n" ?, E5 H) @6 d
) W2 a7 y w* h8 D2 @& ?: e" _+ i
if r(N)>2 {( J, R- q3 y, ^% ^8 h, p+ e
, J" z' ~# I+ R: p pkexamine dx240 dy240
6 C/ J; A, ^( E2 s5 `" r " _- c; ]; f7 e* H; c6 p
local tempmaxp=r(tomc) ' D& ?: q1 @4 W( P9 n4 u
restore
) z h8 B9 I4 ?4 q" S" w7 h }
+ m' p' }. \5 ?$ ^5 j: V
4 m% ] g) R$ z7 G2 @ + l% E% v2 ], f2 b1 x( X
else {
9 j$ ^% @8 ~8 J5 H0 x! @ u. y restore
: X/ n& `% z+ s2 I di "cannot find maxp"
8 K3 i( ]3 T) _
, s( @: b* y. W9 n. ~
' A# X' R# b4 ?6 Z% m2 x sum dx240
( v2 u$ F+ O. T5 r4 O! [ local tempmaxp=r(mean)
7 ^7 Q5 U2 o2 g! d. z' t( D& K
2 i8 o. C8 a2 P0 j" g }5 q: b+ z* x- c& r9 y8 L
6 D- h$ a! r9 p$ F
}
: E) l7 I! ^; W4 n* Z2 t% _- @2 K / O( v7 y2 S0 B( n" Z
else {& ?% t# _; R, \ T j
6 w8 O5 L' u6 c5 ~# B keep if ddy240>=r(max) q" S5 x2 @! f c
: u# H: N4 q* B' y+ K* F& P! r: Z sum dx240
6 u7 f3 \4 Q1 V+ L+ V 8 q/ n9 b+ } T1 @
local tempmaxp=r(max)
$ H ~, H* n$ S, z7 P restore
( P& X* s( O ^1 h }: s* B; p" h. m1 C5 j
* ?5 L# ]! L0 N, _6 q# A$ t8 c7 o7 { Z2 k A5 C% t) }" h
% L$ j U" H( _+ C, ?
% Z/ X/ i: Q3 {% M5 V. h9 K gen maxp=`tempmaxp' in 1
2 v' w6 x: R) c, D9 O
; B1 b+ h$ _+ H& T+ T% v' S7 B! ~ *240maxp
5 h& v& Q. K: _6 [5 k2 i% j) t: h. N2 ^ 4 w/ U& X8 x, \3 ~3 b
. Q; u. r, y$ r7 i. P
*-------------ddy240pminp左侧高峰值-----! A( f( P; V: M0 N' _9 m
; c( W4 [% R2 [7 U preserve
- u% x9 V* b* v " t; L& Z0 Y$ K4 t
keep if dx240<`tempminp'
( |- s! x6 ~, }. s1 n! n2 G: S$ Z$ A
# i m7 M+ c' Z9 J keep if ddy240>0
: N) ~8 x0 ]( c- L' d1 M
* @: j$ Z. m8 Y: X1 q# d count
. w: g1 d# u1 s- c
) i8 E+ ~& ]6 L# M% }8 u# @; X if r(N)>2 {4 ~+ Z& j5 B! s; h
/ N: {. M* y+ v4 t% g2 B% ^2 K
pkexamine dx240 ddy240
9 w1 ~' L3 [9 E# ]* k
& m% g- c- Y; D# H" t local tempminphddy240=r(tomc) 3 E, z( l. o6 A- [
restore
7 h R8 E. x. e4 } }
1 A# o t( X! l& M, F9 z% b+ h: y9 \
/ t! L: P3 p( Q. v. M8 } else {( h0 Q" W6 t+ ~- F; ~0 \, o# ?
restore " x3 i, b5 K" Q) P8 |9 p1 b
di "cannot find pminphddy240"
* U' R1 a. Y, t9 d5 J1 a
; E1 @& m4 |) ?3 Q; C6 V
9 \6 ^6 P( _; }- T7 e% L sum dx240
_0 f; ?1 ]; U/ B0 R local tempminphddy240=r(mean) + Y( V' L/ G! I
/ Q8 N1 T- r' q* z
" |7 q6 |8 M" @2 |
}
. A/ q0 X( a5 y% v2 c 3 @( S3 v4 i% X: I
% a* `- H& `$ ~( q/ e4 |
1 c+ v$ x& W+ u# z/ m6 I5 J
2 I& d* l k& x { % i+ L! x" j& c; }# [
+ t2 E# C. O0 K2 H& j3 n gen pminphddy240=`tempminphddy240' in 15 q' S1 o5 N- F/ w8 @- {
3 }" D8 E/ v( x; u6 e
# d: V# G6 e: h0 |5 O* j *-------------ddy240pminp右侧低峰值 -----------------* ~. ]2 D) `( I' a( q
preserve ( [7 X4 {/ E. B) Y+ ]( h
+ x/ W- D$ @. F. f keep if dx240>`tempminp'& A, D |" _% y4 {# K9 ?, u" ?1 {
# f- f4 ^9 M& y" c2 s- Y! d keep if dx240<`tempmaxp'9 d/ c5 L& R$ o* A2 F
6 @- C U. h8 B
keep if ddy240<08 [: Q7 R: {& i9 O) N( E) a& D
3 ]# x# ~0 p4 ?1 b% G% ^, U gen temddy240=-ddy240
q8 n2 }( E2 E2 W, P- ?* |
' N9 _# Y2 J3 a2 U$ H0 E4 H- o% J count/ |7 v) y& G7 L6 q
1 z( U6 ^2 `: Q# J if r(N)>2 {) d& B( L0 k0 T* B0 t' I# j
& U% R( n. R) P; ]2 O' l
pkexamine dx240 temddy240
. J3 I2 Q* a7 o 6 h5 V9 T0 a+ _3 \; Q/ T
local tempminplddy240=r(tomc)+ F! x, }- Z* m5 Z% i* M
restore
: M( x. g6 P; Q8 O# D* B }
0 k6 X. o1 k% D8 X
; Z$ C4 i9 G+ I6 G; o- H else {
$ Y3 K2 r/ h/ X- \' C
$ G) C* |6 c5 C& a4 L# ^! ^ di "cannot find pminplddy240"
@) ~, ~ |0 ]& _0 l restore
. _) ]6 A4 U( H4 R. w# Z 9 T$ s7 k+ S2 ~5 p2 Y3 g7 V# n+ p
sum dx240
/ F! N$ N( c, H local tempminplddy240=r(mean)
) z) J4 x% j; G7 Y7 r$ c" l1 ?
, E& F7 z1 a3 a6 ~/ I! n' [3 q" ] ' d% Y. [, I: X G9 I9 k: ?
}% J9 u8 `3 Q0 e5 S' j# f
- n2 Y8 c( l& v5 O
) z& R- w: {0 H4 l. e: [" `
0 i3 R7 [# }8 e+ H, a( b3 _
0 R1 } K/ R- n! J. q/ A" O , U; c5 h8 h9 b; O5 M' e! |
gen pminplddy240=`tempminplddy240' in 1
7 q& r% q( B: w % u, H; @ C' |1 {4 `3 i0 N
*-------------ddy240pmaxp左侧高峰值 -------------------" ?3 _, t7 }& Q+ o# m
! |: u* J- ?/ J$ o4 X% k! }1 i2 ^' p3 d
preserve + v2 }" w3 C/ W" E$ L
1 L# ~6 b8 a. a4 M keep if dx240>`tempminp'4 i: Y% `: E3 s8 q: F* e
6 n0 K1 F/ `% ~9 h0 f8 S
keep if dx240<`tempmaxp'
$ x' ?8 q) Y! g& ~3 f 1 w+ {+ L' M( z+ q
keep if ddy240>0+ J' p8 z: P( n$ L2 b6 x( W
count
' d" k" w; r5 m4 g# e % E+ r/ n' m. S3 j
if r(N)>2 {
6 Z4 w, j5 ?. O8 M2 I5 i2 E
* g4 C9 b, `9 _ pkexamine dx240 ddy240
! d$ [. {! k6 `4 e3 C! C; e
3 U n9 ?* K' n0 G" L$ Z! Z local tempmaxphddy240=r(tomc)
/ y4 m! a9 g0 H$ Q0 e% I8 e 2 X5 m. O3 A9 G7 e0 N3 S
restore
: O/ e* ]/ g2 h, y% O }
. w, c- t$ F0 L+ _) z1 e; q4 v1 q . Q8 a6 J; g* |- p* J
else {
( H) H6 S" a& L * w. w# z" j% f, n0 m0 O
di "cannot find pmaxphddy240"! G, n% }0 i$ a$ [9 I
restore
/ e3 E3 Y- K M" d1 w & i9 E- ^5 x3 Q1 n* s
sum dx240- {; J% s3 a" s9 C# X6 I
local tempmaxphddy240=r(mean)
. [, F( Y9 D5 R. y8 H( r
" Y( Y1 `7 P* i0 w/ K$ Y f: q% c V0 [: j7 i: f+ b0 C
}
; n1 a: u+ |( j, b- L
i* l; e, s# `" U& w8 a+ O5 ^# l ' q) C7 P7 `$ n9 ~$ o3 T
/ o. Y- z$ b/ i. C
7 E0 \+ k9 o `8 V* S- M6 G
: ~8 ] V8 H1 Q" l' z6 a5 p - _9 X# E* A: p x& P" f1 n
gen pmaxphddy240=`tempmaxphddy240' in 1
+ _% Q. j0 X: `* u* q. i2 l7 [
7 ]' ?2 T- j. j5 U1 a k
; q; j2 Q q# N' \ *-------------ddy240pmaxp右侧低峰值 -------------------
1 U- ]! P& `5 N+ c
5 e. X* Q5 e4 j preserve - W7 M# E# g0 Y
: Y2 y1 e! q% T
keep if dx240>`tempmaxp'
" }4 r/ A, S5 Z& m" Q# A) n
8 m( \# N7 T: Y: t& ] gen temddy240=-ddy240/ N& L" L. ^" S$ G" f6 i* x
1 j" ^) z) @7 \" N3 I- X keep if temddy240>0) A% }' u( i) H
1 [& }4 h# J7 l6 V# ~) W8 ^2 U4 T
count
6 f$ @" c. k0 {1 _) G % y* ~9 T$ x7 d( X
if r(N)>2 {
5 x' a8 O8 @: n v+ x! t | J' [# s6 P: R) C/ S
pkexamine dx240 temddy240
9 h) F; _1 L4 M& h* x* F4 d! F
. Z9 G$ `# |- { local tempmaxplddy240=r(tomc)
+ B6 ]( r Y9 T# p& L restore
@ q I0 ?- \; v/ \, x) A+ Z }& K k' s6 Q) W6 s& Y
* S: n. ^$ Z2 X else {4 K5 l0 Z' E+ B" }2 j
restore
& \. `: }1 a& m; |: X di "cannot find pmaxlhddy240"' S& k5 z# X/ a7 _& t
6 K# G& p4 t- e0 v n1 b
% O# `9 R. }) Y sum dx240
3 L$ w! J) Y! b* B0 d local tempmaxplddy240=r(mean) in 1
" Z N. |% v7 G+ R" y d
8 O0 w" s' F7 I* f! a4 K) z5 Z# A
, n+ B; K% `1 x1 U% { }+ T+ d- {; j% l
' S7 W$ ?8 f1 N' l2 m4 o- I& I n
, b3 H- g- h: h! i
+ H7 d# i1 @3 v( Z. D# X7 m3 j
, @( s8 n( e1 ?+ g' ` 9 \' Z0 a# f3 j; j+ T- {2 ~
6 l# n) y- k+ j, B& t/ V' k) ?# B gen pmaxplddy240=`tempmaxphddy240' in 1 H8 E4 M. I5 P
6 M% U: Q+ v( I6 E: t y
*-------------------------------------
8 b9 b' Y0 K& {1 j ( u) F3 J5 i; B+ W
gen price5d=v5 in 1/20
; J8 V5 T; p6 x; e 5 ~1 _3 n) o0 J/ _ s& _/ K
gen price5yy=_n in 1/20: P5 }( U' h7 S! l @) Q( Z, l
9 n4 K6 [) G/ {6 E2 j$ J% Y gen price5y=price5yy*(dy240max-dy240min)/20# q: E% W8 \8 t; H% q) C7 {2 r
9 l$ a8 l/ H" d0 x7 [
*price5y &price5d: c6 E- A7 S" v# N. r2 \
F) M* Q, t s4 Y F4 @, y
gen priceny=price5y in 1
! t/ B* Q |+ k5 r. |2 K& _- v# u
& @' @% h- B; p gen pricen=v5 in 1& R0 b9 W Q7 g' \" q
3 a3 L# Y9 e/ e; q
9 X2 X! w, E; W" w *priceny &pricen, a8 e" o/ `/ U- `4 _
/ O0 L; E: y4 Q7 K2 P
/ ~; @" _7 {0 e/ Y *-------------------------graph------------------
" B! i. v" P. W' x) E3 @ 1 j. Y5 j4 @ _' n) ~4 r8 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)
- b, @, w* }3 o4 l9 J% I4 r3 v: p' w4 t3 R
* ---------可选项目----------------------
! i4 { }4 K# y4 E# C*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
0 J% |+ u* `/ b% h}
) Q, |6 R. `4 ]( X) {end2 u4 K& I+ u) T0 P. h8 y. m4 ^8 X" H
|
|