|
|
maodeng 发表于 2013-1-28 13:13 . P/ `" `' \9 G; K% [, u5 `
. hello 300236
, |; b9 k" N z0 [' D! Y% d7 y* h- Istatement out of context
0 U1 ]9 [1 t( \: h0 Q1 }+ H. dr(119); , `0 d3 e' g, Q" A- y( S
抱歉,最近太忙了2 g$ u. v& N( H/ R) y
3 [: h" G3 Q0 H' _2 G. R300236 我用下面的程序试过,没问题
# I: F, ` X, b$ A3 E* K+ `/ ?' |
$ P3 q- H: i# S/ Z你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
9 @) G0 L/ {9 O( z! o* b- ^7 h* `/ ~
capture program drop hello/ ?/ k3 p6 j g- A
8 L1 n4 w m, l% Fprogram hello
, X! x, _" U1 `2 }, w* |4 E5 F9 i
; Q, _8 v( f/ z& \ quietly {
, i* H1 P% r( T: A# ?" Y
& a; f) q. {) j! L9 a2 dclear {$ ?2 y, o( Z$ n0 h* O! r
0 _5 S. a7 L3 d* V1 h
cd D:\stock\test\source( ?9 `) k% v: N2 {* Y( _
7 @% K7 i$ x. M& i( winsheet using `1'.txt
! i6 l+ O. g! d+ u) P' b% D# m- a) ?) Y
keep if v5>0
! g+ J. E. w# u' N5 x# p( D % T* o- J/ @- p; r# ~8 L
gen vt=_n
3 W& g4 ]* ]$ [6 t9 B
7 V) L9 k4 l6 b tsset vt7 i& x4 _: P* h/ I
. n' H# l$ e& P V- G
gen zf=D1.v5
- q2 ~- y& D; p: `/ Y9 Y
1 J e# ~7 q& s5 k( O" x gsort -v1
" _- R! Y0 h1 e, r! _3 [5 Q8 Y" L4 _% k, n$ t& e0 g7 z. e! B
gen avol=v7/v5
8 _. e" U( \ J4 \2 n / x0 @) t8 p" e+ _, Y
keep if avol>0
' ~2 }( }1 \$ @ e. A M9 P 1 B) G1 M( W1 N, P4 D
drop vt2 ~9 E' U7 i: e2 t& `0 Z0 k
+ e3 E v( U) G/ N3 ~8 F7 N
gen vt=_n
: X* d6 y, c+ {0 r " j4 B' I4 ^5 j4 N3 ^
tsset vt9 B; ?" D- o: r. F
8 {- p$ Q" p! G; b' I! `, `2 @1 P' p3 e! U sum v5 [aw =avol]7 J' Q5 }+ ^ J% p2 o2 ?8 N
$ H u/ s7 X+ ~: _/ D3 l gen amean=r(mean) in 1* x& N1 f4 s# V5 J
' D! o1 a/ [+ o8 r% L * 总加权平均值 amean1 N! @; x5 T$ Q; M9 S& `
" r& ^( d; ~- z9 F6 D
Z8 D4 b& p: ~/ q: o keep in 1/2400 ]2 S8 a1 P5 k
8 H: r3 [) A) ?4 q& B' n sum v5 [aw =avol]' @* l4 e; v! H, L2 m) N
0 x% o9 Z7 S4 C2 R gen mean240=r(mean) in 1
" B1 N1 j# o4 b: t
% |) Y8 n- q+ s0 T2 I& D7 r# m *240加权平均值 mean240
: e& c2 |' f: v% T0 O
* E9 q/ D0 y; ~ set obs 500
5 }( n y% v1 | h( g9 J$ Q/ o+ a
1 M' h3 B5 H: S5 e W kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph4 d( @6 ~4 R+ l2 H4 L" _
+ m3 C0 ]$ N$ o' t4 s" a
*240 kdensity(dx240 dy240)
& t T" I$ F- z$ I+ J& v 1 e1 }" w7 G& g3 j4 y
sum dy240
$ i! a# v" v! E$ w 7 k8 R4 d8 ]5 k
gen yxis=r(max) in 1
5 q( D5 O' P8 w+ W0 X
0 p' z: Y" `: ^7 C5 c* Z gen yxis2=yxis/2& w5 d. _5 |4 Y2 |
: B2 V, _% G2 h" S" T
*yxis
* a& C! s, Z* ]% R/ _
2 f' b7 T' ^3 w1 G gen dy240max=r(max)
; S6 Y3 f- D6 [6 O# p' m. _2 j# D {7 N7 a4 b$ P- c1 S
gen dy240minp=r(min)
! X( N8 D" M0 ~$ x4 f ( ?+ ^7 ^5 y5 k
gen vtt=_n( n$ z! s5 X3 _# \& I" Y
% b- P$ v# z; ?7 r& o3 M0 t tsset vtt
( q8 _) ~% U- r, U& W$ G# b% U) O/ S/ H0 _! F$ g2 ]/ k
gen ddy240=D1.dy240/D1.dx240
: o& W! c2 o. D" l ! D8 W( D! ~1 S0 V, q. ~
sum ddy240
3 V, C# g. w7 D* Z. c + W2 ?( Y" t/ y: C9 Q1 V: R
gen ddy240max=r(max). M- D7 S2 W R0 i) p
8 A; d* S9 x+ U/ q H# V& b4 s gen ddy240min=r(min)
" w; S, [7 g! A
6 h! F, Z# t. D! B4 G3 X8 C gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
- g3 E/ C s3 Z( G3 c# N, i2 }& E/ Y % a; B( ~! B; M4 }( [
sum ddy240g' M3 l7 \0 x" L: s# [$ r
2 y3 {3 s- ]+ X, R6 b
gen yxis3=r(min) in 1
5 c. s3 c1 P* @* g' ]6 ?; y ) ]; @2 }! J' x2 F; |$ h
gen yxis4=0 in 19 Y3 q' Z. L! m7 h' Z
1 S4 D7 |( T# i: E4 ?1 F) w- J *ddy240g
$ C3 j6 B$ Y5 m0 S 3 B$ L2 r% w+ O5 W# s: q5 u
2 k+ d+ k7 w: k preserve
- x" {$ u. l9 k- s w
" p) p" ]- R% W+ ] [, d, k% U7 L8 b sum v5 [aw =avol]; N# v4 {0 m" l; C) a
8 e' t0 s# N' S9 f keep if dx240<r(mean)
" U' a2 X( B. k/ ^: d: ~/ w
8 \- C, h' J. k sum ddy240' R* V( U( M* N
9 G$ a$ C2 f/ m6 \ B; R* [
if r(min)<0 {
+ z) t4 X9 v, c) ^
' J3 G8 x3 |! U& M! M e keep if ddy240<=0
( H' B# ~/ A% E A- |6 q( d5 a
/ B1 @" Z6 _( N, N: l Y8 J9 t count
* J/ f, y4 f, { % t% n1 N" m+ p
if r(N)>2 {5 B3 X$ q1 U5 I( l2 i! u
2 A; J# M8 z" L8 y; F ^' a
pkexamine dx240 dy240
9 o7 @3 ~1 _$ A- D7 g
# _' _( W& D* n, U+ G3 c+ @ local tempminp=r(tomc)
, D z+ U0 w, A* S3 @6 F2 h restore + s5 n# u. n( h$ Z) t5 s
}
6 v0 { y# j& N7 l1 T; q+ ~
2 x" P; f1 H- R. s else {
0 h) ~5 E7 k# T8 L; t* G6 X: O $ z" Y6 F' d; z" N0 n8 y; U
di "cannot find minp"
/ _. B1 F4 \# _0 j+ W2 r
. u* O- H, N3 y+ q% u1 { restore
, J0 X c- S, Z( W' ? sum dx240
8 b3 k7 Z4 K0 G2 ^7 l; w- Y/ V! ^: i local tempminp=r(mean)
1 j- {* Q) T2 s( j' @
* Y. U* C# C! E2 O( {" J# ^ }
+ c4 A0 f" k b; x8 X }) n& E4 e7 f$ R- \5 ?" Z& y4 `
else {
9 ], j9 ~0 W2 Q" F$ s ; D N5 }% x2 X* D
keep if ddy240<=r(min)
3 t# P+ n; a7 D i
7 E) j; B1 r. E, q- g9 d; Z sum dx240' s8 s% v" D* ^+ u8 W
) x" B* v m; G, ]; C) T* x1 L
local tempminp=r(min)* F: f5 f n$ n. l, C# ~
restore $ z$ q7 S: r+ u8 Z
}7 z" D" l4 I( A
, s% d1 _3 T0 |4 y6 u5 l# F2 W3 s- A
) _% [+ v0 l- j9 b. O( U( H gen minp=`tempminp' in 18 N. j j. }) v9 O$ c
*240 minp1 a' n' a, ~! ^5 T. F, r! U0 n
% O9 V" G. I3 C5 \
2 a7 f- f. o5 M6 `8 i2 [8 J
3 }# {8 f2 B& f2 v3 X2 W2 b: c preserve k) r4 _2 R* R& O \7 h
$ v4 g# w0 h+ p* c
sum v5 [aw =avol]
, W: D6 N1 p3 w# `" M. @
3 U& y: ?7 B' w( S% j$ u keep if dx240>r(mean)
7 n5 x; }& h8 Q" d+ C6 V 7 |* q+ l+ ?$ C
sum ddy240
7 c9 W% _7 ^: J! _, [ L( u4 N 5 f G! ]: o% D" B$ T7 |
if r(max)>0 {
. o0 L/ U0 G: V
+ |% o! L& j# o/ A( C' _ keep if ddy240>=0
! f+ _3 t5 D3 K- i 9 ?% o; g* [* N1 s
count& v) ?2 H' i. y
; G# _; Y: V) b if r(N)>2 { L) T+ L4 Z5 ^6 p/ h5 ?8 E
( j* t0 v, D0 h$ o; F+ D
pkexamine dx240 dy240
# a, @7 t# Q) p * \6 A3 o# b$ D6 z2 `/ u
local tempmaxp=r(tomc)
8 h2 Q; Q) S- [6 g restore
, p; `8 `- d! W2 l# J" r }% p) }% ^& F4 P# y0 n! d/ o1 I
0 L3 y- N' o2 D+ _3 j, T
( [6 A5 A8 i( p9 |
else {
7 G9 X" [: u+ e restore 9 _# h- t L/ z* W2 R
di "cannot find maxp"
' W6 x5 j& g9 y/ w" {
9 q- {1 c2 S& P P" n0 D
- g% `9 o9 b8 f sum dx240
8 O8 v/ X4 i% ]$ x3 H: P+ } local tempmaxp=r(mean)
& e2 v( B( g% k' S1 ]
, V: h" c& _" B. l0 Z }! E7 s/ ~; [ }3 e
: v) o# I+ I% N! C: H% {
}( ]& w, v6 z5 v
0 f7 e% l% s7 o) F4 ]8 B3 O" g
else {9 j- ?/ a8 E V
, w9 L0 S' [" T
keep if ddy240>=r(max)* t& J4 p' A7 O5 k% T9 ^8 A
, X) P3 d: X/ s. C/ S
sum dx240
, i9 U! C: \8 a ' r( B1 w F7 ^7 r
local tempmaxp=r(max) * A- Z! y$ M+ y- t: ~
restore ' Y6 R1 ]' `2 Q" L3 q5 U" x: U
}7 K' J% c* P- g6 d0 a) @
3 C) R7 R" n5 H' V7 A; u4 @2 L* A" v
- \+ P8 R8 x9 x9 r
7 ?7 u8 r' s4 V6 c- K: T. Q gen maxp=`tempmaxp' in 1
" \. C( I! b3 @- O* b
3 n1 Z4 \( P% K& f E *240maxp% `6 x: A! O i: {+ A/ ?# H: J
& p) [- f( m+ E, z , i8 Q9 K1 b6 b: e( _9 L
*-------------ddy240pminp左侧高峰值-----% o2 E& Y" o* q ]: w) y0 ]4 j
! v( L. x3 h# Y6 \1 e preserve
( k) ^$ X0 Z5 s7 }* I
6 v& q9 {5 J4 w5 q7 a6 L7 \, Z keep if dx240<`tempminp'3 X% d' u+ n5 ~; y/ }* I$ v
3 ]/ p: g) C" Q# {& O2 s: ]+ y
keep if ddy240>0$ f B, x" N# s( C" R+ s
2 ^" G# r5 {+ l) N: U) f- { count* K7 ?& v/ h; M7 Y/ o
" X9 y% [) l2 [ g# ]* _7 m if r(N)>2 {3 m; a6 s8 m4 y1 l; W
0 R: w7 W( ^% l, a pkexamine dx240 ddy2404 ]( [" Y* L0 M. I @7 z7 D
- O4 @: I, y6 G* S7 `4 z
local tempminphddy240=r(tomc)
. l% `* A9 d9 T% l4 h" i restore
& [: ^: Y. U: F3 U f% b! E' N$ ~ }
& j2 {2 S4 i. e2 G0 K- c
$ \1 f0 @7 n% p& V. D else {
3 w7 ~2 V$ B% C$ s' T3 N3 P. G2 P restore
' A, L/ H% i3 \2 N% F di "cannot find pminphddy240"
- ]4 g6 ~1 S. z3 ? * `3 F5 D& v* @- O, \1 l
$ s* c% s2 K& w2 C; `& t
sum dx240
" I% m5 A' E, P* B% Z/ E7 v local tempminphddy240=r(mean)
, q: c7 H; [" ~9 @4 @ 3 V! v4 c* O' ~+ {- y+ V( ?% N+ ^
% m9 ~0 J" t7 c0 s2 N
}
& y+ ?+ @0 y1 `1 S4 `2 j - l O- @, l1 r( m5 f' k2 c! \; h
; K$ ?% y$ T7 Y* t. T4 s3 B
K" X8 ]! @2 G7 _$ K
4 v; j! R; N" N. y$ Y5 o9 }
7 U! \" }$ D' y # H0 L2 S, A6 q; e2 @6 ]$ }$ k9 v
gen pminphddy240=`tempminphddy240' in 1& P5 N! ^# \/ M
$ {" T( H9 [- I+ q7 X7 L
y$ x9 K9 j7 } *-------------ddy240pminp右侧低峰值 -----------------: h1 C- l0 b' f; o; `
preserve : [4 r; M. u; B, O: d. d& _4 c
9 ]" Z0 b" Q% D d! Z keep if dx240>`tempminp'" \( E9 x. q# C Z& g* z
1 b f4 Y5 ?4 G+ l
keep if dx240<`tempmaxp'
( d8 v; [$ O+ l- U* Y5 ^ 3 e3 M% t3 _8 o2 R
keep if ddy240<0
. g# E! k* E; S7 {8 N . T' d, S* p; O
gen temddy240=-ddy240& v, S1 y. W/ ^8 g+ I4 n
6 n g. @; D0 ^" y! C' d count! B% U8 @. P9 P! q, W; v9 n
p& U2 Q: m/ U* X( D" B if r(N)>2 {
9 R* [8 \* V( V7 X U / D( _9 O$ h' D6 o6 g% B w
pkexamine dx240 temddy240
( i4 z6 p! `1 f8 S0 i& P9 L ! k2 \. g. k- Y
local tempminplddy240=r(tomc)
' r0 B' W/ d& M restore9 M- v! Y" s g3 ], \8 _
}
5 ~* l& v! K+ ^) `- w& ]
) w& y4 z0 x1 Z9 P else {3 w$ G" ~' q: t! \1 O/ c7 W% A% s# ~
. m! T: {2 _' R0 Q" _( _8 R. L3 ^ di "cannot find pminplddy240"
% f" C( M) k& M' \ restore
9 v" E5 p: C+ g2 o
4 [5 J% z. j6 o7 V! `2 w sum dx240
t$ w T5 C- t: ~1 ^ local tempminplddy240=r(mean), Y4 W+ h0 Z: I7 g5 e
9 V0 F, y" \- F- U- f2 l& p
. C# {8 n/ M% a, w% _+ F; c }
: }$ c% w7 k8 U" U: P4 d 0 O# M$ G5 v' F6 v9 k$ l/ Q1 ^0 @
' a0 K9 W- k& g' b " L& T; u( G2 D$ t1 a
" x/ m2 _2 `* e
. X8 l) L2 I) ~+ F% z% _2 `! [# c8 Z gen pminplddy240=`tempminplddy240' in 1- }+ F0 s$ x( T0 t$ U, P% I
% }+ G2 M: W2 i
*-------------ddy240pmaxp左侧高峰值 -------------------0 Q4 l8 F+ R7 p, u' i: @( j
) W1 A8 P7 T! ]( F* v: c0 t
preserve 7 F; ~ W4 n+ R/ F1 f
$ J7 o# G/ W; H: j! y m
keep if dx240>`tempminp'( A; d9 w* W. \
% `7 _( M. E# J0 V7 G; b keep if dx240<`tempmaxp'0 P5 K2 P+ }) ?; b8 Y3 V7 z8 P
9 p) U1 Q( _0 ]+ o# F: c8 w; R
keep if ddy240>01 F0 a' F# Q" Y- \
count' Z6 |+ S9 T7 w
) m; |% v, Q5 \. l9 }9 s! c" ?- C: _
if r(N)>2 {
' h9 T. E9 Q+ S' ?& A$ f K0 e# T) J7 \8 I- O. Z/ K
pkexamine dx240 ddy2409 c2 y! o! `9 u+ v
0 v) r- p% O5 G; l4 b/ d1 U
local tempmaxphddy240=r(tomc)
; Q; _0 N, S4 O j/ O6 I8 B8 Q1 E8 b; N
restore
0 D& D$ L6 K4 n }6 Z& O8 W, f" z% E2 ?8 d \
7 z5 M2 f, B( S
else {
5 n( f/ @" ^% d0 }9 Z3 n" a
$ J$ _+ {6 \) R+ R I di "cannot find pmaxphddy240"
' H) G2 Z, P) w I( Z- Q$ M restore
4 u0 d0 c4 F# q+ a" P( w4 q + j. k! p/ u, E7 U
sum dx240
' H9 p; T2 q6 v. y local tempmaxphddy240=r(mean)
7 f; k6 R3 } l. d- L, y# K
7 w2 y' O1 W. f' I) v( R% m
' P- o! i% W3 i& N' F$ q }
# q/ ?+ H/ z# T! g' `6 d $ p; Z! |- _- r# i
+ D5 O( r! Q: A* D & i. G6 K6 V' k5 m; ^
6 E2 F( U, z! F' j/ G7 K7 W! K! T
0 z0 K4 K& A8 Y
" B* n7 H: @6 i' ^6 X' ] gen pmaxphddy240=`tempmaxphddy240' in 1
) [: l% D' @% ]1 q' y A 5 ?* U, {; u! z$ U6 |. ^9 w
7 A9 n0 h: b) m4 S9 e" A! K# D
*-------------ddy240pmaxp右侧低峰值 ------------------- O: \4 T' l* P' z- Q- f
0 O, b, ?6 z3 O) {' C# P
preserve
- [/ ]+ ~; b0 p' e* B
9 n7 O' b7 j! P' \0 j keep if dx240>`tempmaxp'
; {- z, q0 ?+ l8 a7 o7 o- i . R* |" e5 W$ u3 e% E, ~$ T! U J
gen temddy240=-ddy240
4 `" q: ~/ i0 e- n- X
* F+ Q$ ?. t& j$ W, {; Y) Y% h keep if temddy240>0
, `# ?9 C& R+ n- S0 K1 o. b$ p/ x & H9 U/ y( W u" M) t/ ]; Z
count" c; k# H1 u) \, ~) \( q
b) l+ ~) I) J; z1 l
if r(N)>2 {* I( y/ V, B) f1 W% p& w
. [$ f4 |/ e" v) E
pkexamine dx240 temddy2401 f" ?8 k; b4 {
" r* U6 S; V* q O& a+ h* M6 D local tempmaxplddy240=r(tomc)
6 \& P" ?( L" X; t+ D/ G3 | restore
( D/ u6 H. o! H& E: r: m8 z+ G/ M" B }
2 M( |& J ^% V4 Y A0 |. f ' ?* |/ e4 S0 |" p. F$ a7 I
else {4 L) ]* ~1 E: H" \$ ^
restore
1 V3 U; `( p- {1 b di "cannot find pmaxlhddy240"$ `# t0 b) @! W7 `3 ^; [, I
6 V! [/ P+ j% A3 h
. e# E% {/ D- d3 J, n. k sum dx240
8 ]& `- f3 @' w3 N6 } local tempmaxplddy240=r(mean) in 1
0 r/ R$ n* ~' { 0 N' X1 `, O0 x; v
: Z! M5 q t" b. b) t& q* P& x9 G
}0 R+ W# q0 B: ?, A1 |) H( p( m1 z
' S" E9 s+ s+ ^) w' x2 c6 e
1 F9 c& X7 ], M1 M7 {( [! v6 |
( `/ D0 l5 b% o: q h# X! w! w/ z9 _; X
" {& A+ r: f1 Y1 a2 R& H: {
5 a) {& n6 i7 y9 Y gen pmaxplddy240=`tempmaxphddy240' in 1
. n+ M% l6 \& G( r, G& a$ L5 U . v: @+ n8 f& }! V4 S
*-------------------------------------8 A5 t. p0 O; T* e2 o
, ?0 v" `+ A) m8 d
gen price5d=v5 in 1/20; s% k; p w; w) J8 M! D
, ~0 ?8 Q% C v/ m7 ]3 V3 T gen price5yy=_n in 1/20 c, \' m0 U9 ?. Y4 {* G
- P5 u& V4 s0 W" W3 C gen price5y=price5yy*(dy240max-dy240min)/20& ^! u+ k2 f9 M+ | u1 x$ h$ Z
3 _4 ^3 M" c/ q" i( [0 u *price5y &price5d* d+ ?; T2 g9 `0 p8 |3 D8 h
6 V% A( y: C( N0 @6 P/ g/ m gen priceny=price5y in 1
/ \2 l u0 W! S! j$ `4 g7 ` ' R* j) S" S% G9 e% L% E# G
gen pricen=v5 in 19 S& _; y: h$ V3 W# M
9 U8 N: Z2 {' V: o" z: J
* D& `; l9 N: _. ] *priceny &pricen
' B6 D/ F% R( l 4 B3 D$ A1 u* B+ B
, k0 t, U8 Z6 @$ G# v( f4 P *-------------------------graph------------------4 v: H, _1 s& ?- _2 V
" \* ]4 P' A0 y' B/ G7 F
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)
& b7 h0 ~. l; d; S- H8 q0 c5 m* F) Z/ @; p7 A2 }3 e7 H
* ---------可选项目----------------------
& }3 R# K: X2 E*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
# m! ^: V; K6 B6 |1 X}4 E# s, u2 F# v5 ?2 @# K
end
5 y- W' Z5 J' e4 k6 ^ |
|