|
maodeng 发表于 2013-1-28 13:13 * W- ]6 B* x, o' w. u
. hello 300236
8 o8 Z7 @6 `2 q+ G7 _; |' Rstatement out of context
9 e" X2 B. Q& n! ^% l, Jr(119); . z; `9 s/ O; Z1 q3 [! b4 o
抱歉,最近太忙了
$ k6 M# r1 V6 P( {' s/ a1 M
' y2 V6 k* m# v# Q300236 我用下面的程序试过,没问题* w. h& r$ ^ K7 Z* m8 h3 B
1 ]; G7 @$ _, @8 k; U* j t9 z# Q1 K
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
/ |+ k& E4 H0 a! a8 A8 Z9 _ ~+ ?4 @( N2 y
capture program drop hello. N# R; C' n) l+ z: W1 L
- y- n) N% L3 k4 k4 G/ C! a0 K) u
program hello; h% e. J/ v' P! U& H8 V
+ V: o; E. s+ e' l4 e- D5 T
quietly {9 e$ U' L- ?1 g/ D8 K
2 _0 B7 C" f$ w5 w& ]
clear
2 a: s' ]5 N( ~3 |1 P, f. [/ U, ^; H8 K
cd D:\stock\test\source4 k0 i) M3 Q' @0 w0 H1 a! M4 T
$ U) T) K& {6 v9 ]' p
insheet using `1'.txt
, D& p6 b/ R" p3 ?' Y9 i
6 ~5 H y. a) l7 j& W) S& Q keep if v5>0
/ N* n/ T# T8 {' `& |# n
- Y& n, ]/ ~- e gen vt=_n7 l% l6 p& Z2 h) v. Q, E
+ E* T) t% F4 {/ C( n f tsset vt
% N1 U! O& M: T6 D7 d: G! M$ [9 A* ^* `* x- A6 w
gen zf=D1.v5
5 y+ Z: q$ H: C0 S$ N/ ^. M W
: y( H& F1 m" u0 w gsort -v1$ a) z& \& i% J' S) u
& T3 w9 A2 s, [6 @3 Y! N/ U* F
gen avol=v7/v50 M; T3 E. X4 j4 F: L
' e$ l) H% c Y keep if avol>03 V* b% J1 x' H# \! `$ _
* q; C. o# O- P' p4 X
drop vt+ P& l- r* F% ^# m
2 [, }! Q3 O7 i5 q/ s5 @ gen vt=_n, z0 g) o, j: O; ? i
* q! b) v" |+ n2 ?5 Q tsset vt+ P0 d! N. C% a* _' ]3 [+ x
P) U& U+ I7 l7 o- {! l0 C
sum v5 [aw =avol]
, b& G) W, n" w2 h" |( s1 S H( w
/ Y1 J* D- V. {! @6 |$ }7 M' ? gen amean=r(mean) in 1: a6 O) @' _- S, v0 a
- u% |7 V8 F1 V& ?4 r * 总加权平均值 amean
* G7 C( [, [+ Q 5 `! B9 }1 {6 L4 C- M0 L# { o
8 [8 R, w. k, V$ `5 |1 `! X1 S4 ]" d
keep in 1/240
' f/ [7 P+ N7 k
9 Z2 \7 f; J i sum v5 [aw =avol]0 F/ H7 y$ B! b( E: ~* S4 l& u' Y
& G2 e; ~. V4 n# T+ \) z gen mean240=r(mean) in 14 X# f- g$ X, F& k4 r4 g! t$ g
# y* Y- r$ F' r! C
*240加权平均值 mean2409 B, [4 L% [- O- m5 j) n# X
& y' z' Q$ d0 W* h set obs 500 5 K2 T z) }" ?8 h- T7 Y
! C3 R% B( H2 ]/ F" }( d& V' V/ G kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
1 ^# ^& j/ ?) d3 [6 u. { % E( r; b9 E( A. }) N. U
*240 kdensity(dx240 dy240)
! B# K0 g0 C, g+ J6 t6 B & C" h) Y3 C$ _5 z( [% V
sum dy240* f& `5 Y! i, V; N1 c) w* U
* a2 J# U' M2 [: d: Z gen yxis=r(max) in 13 k$ i- X. k4 [, j
6 [) M* g* {6 E) I
gen yxis2=yxis/2
1 _% Z1 K# n" _4 s: h* H! n x& l9 X# [4 F+ p7 E" d6 n9 U
*yxis
. F z7 V/ K" B' H- `0 X' D( ] 5 D( E2 m1 c. @
gen dy240max=r(max)3 T3 |9 n, { @. I! d0 e
( ?. ?5 A S u7 V, i& S gen dy240minp=r(min)4 J9 i2 p* }$ I
" x, \1 s5 K* _ l' v
gen vtt=_n* \ A9 H. f' w l1 I; t Z
L" y3 M) z2 K
tsset vtt
3 I: I* x. y+ t. B0 E
5 r0 V1 P0 `. y gen ddy240=D1.dy240/D1.dx240
( Z' M' k$ d6 K; K' p / r0 r7 l, O% M9 c( @5 H! o
sum ddy2400 Y! E# u+ Z) j, s9 }' g% F$ x) H
, ?# I, ^& M( h4 b+ e: Q gen ddy240max=r(max)0 Z$ n* a/ _' k. z& _
- d! l) d: x1 G
gen ddy240min=r(min)) r1 J0 H. q# I: D! }5 Y+ w8 L9 B6 D
/ J1 O) f6 \/ j
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( w8 F* y; X. n- q4 \$ s: ?' ?7 \( t7 ^
: Q9 d3 H% x$ @2 O" A sum ddy240g5 G; L+ T/ V$ v! D- f. Q
/ M" @4 N) ?7 N
gen yxis3=r(min) in 1# d6 [( X- U9 j
+ d/ I9 j" c, X gen yxis4=0 in 1
1 Z- O/ B8 S7 n5 I9 m
5 e% {& ?8 u" A; q2 W4 y2 Q5 } *ddy240g , E+ k& E* E/ ^3 v, U
; f5 _0 ]2 k& L& ]. j% f% ~- U2 }
M+ C: N! ^9 z+ p# ?# B8 a
preserve
. V" z5 H. S( n9 [( Z
7 B0 V9 U7 a2 @4 t) G6 A) q sum v5 [aw =avol]
6 _9 j! |* A4 C6 q( A, Y9 {" d' A8 [9 G 0 \( e3 x8 n" f; ?
keep if dx240<r(mean)
7 M6 v# n1 a: Q ^& x ( d: ], @7 [( i! ~% m
sum ddy240. K. x/ a0 @: u: F/ z; s
) S+ b' n4 |& ~* V if r(min)<0 {
9 F- Q" J4 u/ {6 ?* H7 X " G/ [; B4 L6 ^. x- [
keep if ddy240<=0; e5 B; c" a+ ]- i7 V
3 E" D. L2 Z3 m5 G
count
& [2 [- Z- l! c0 v. P+ v/ v
( G) c, Q8 g- I& O: ?1 |: S; | if r(N)>2 {
+ C4 f5 a" `+ M4 y. w2 a2 U
. f( G) i7 J0 b1 |+ l0 r6 l pkexamine dx240 dy240
+ M# X+ k' `6 H% e( w
. h0 S7 }& g/ C% D3 d7 ^5 ^ local tempminp=r(tomc). W7 }, G1 s3 K
restore " X) t5 \7 N" V: c2 Z7 A b
}
* ^2 _1 g8 Q4 N4 l
8 A# r7 m9 A7 f }4 Y V& E% ~ else {* Y3 {' Z' L9 Y3 m, Y- f" u/ F
3 R7 o# s1 N8 C! Y; i0 l) t: c. m di "cannot find minp"
' }; J2 P, R+ F1 T- N# p- t" ^
- k- P0 N) M) o4 Z3 s2 D s9 e' }9 x restore 6 n8 H) B6 q, m: R2 U/ Q5 R
sum dx2403 a8 i, F; [# n
local tempminp=r(mean)2 F3 J5 ^3 N/ {- |+ s
+ s0 k7 E: M: t( U& p }
; M0 Y; F! M4 y4 t! [! ] }2 e3 K! K J0 N# g+ O: B
else {
; J' S) o1 L3 R C. j( j6 z/ {+ g
$ `. N' D& }$ A* j+ X* G! X# @9 _ keep if ddy240<=r(min)
B: K0 J9 u7 R" @ / d& c- d, t$ q, S, S/ z7 Y3 _
sum dx240; z; ~8 b" n1 T0 L& T
. \0 A8 m* g/ X5 Z
local tempminp=r(min)( e$ ]% B$ {: o" K' f
restore
y3 r4 A, O1 Y }
5 b+ l' r( m- {5 j: r3 ]7 c& G. M4 @
2 a% C" b8 A) D+ ^7 u
3 F) B/ l0 c, e$ P3 ?4 _ gen minp=`tempminp' in 11 t1 _! M8 U) ~
*240 minp( Q# ~" E1 M: G
! U p |; M6 q* s" W
1 J6 e- \5 E/ x7 d7 F, y/ x
3 f3 g2 n" D u, T3 O m preserve
6 u' S2 J' O( y& A - [* B7 H- m4 l! L# t) u
sum v5 [aw =avol]
3 L2 _& v% S# s+ J' L9 E
) B# S' O! ~) Z' m3 } keep if dx240>r(mean)
; O" U/ G3 ~. m# F v% N + g7 I4 T2 L0 h! Z8 X" g
sum ddy2401 \0 i% Y4 N* W. d$ b9 m- T
; ]4 M0 D7 @. n# H' d9 S* ~) [
if r(max)>0 {
. w" H c, W' T% |
2 }) U5 q+ F% T; N U' f- ^$ Q+ y R5 z keep if ddy240>=0; Q' N$ G8 C; N- j( w0 V; I# v
( h8 Y4 D' v. J, k' P
count3 b5 A) Y/ @6 } e e& o+ e$ k
/ ?6 T" T3 t/ ~ if r(N)>2 {
& J f' S9 j- L( ^ % \, Y) e2 z# b5 p6 d4 A
pkexamine dx240 dy2406 v3 q5 K9 S$ Z% p
/ H/ ^* ^4 ^8 F! A7 k7 ^
local tempmaxp=r(tomc) 6 L; @' v3 k! z( ~& M7 b) D: ^4 R
restore
; u$ F: z5 D; k, G }9 j, }$ W0 K1 j5 x
% t# d. u4 b# S9 ^" t
r; B* `, t' A0 T else {
; o: c9 r$ `$ k) [! p1 I restore
: x- o% v% R9 V. J- h3 W; d, t1 M& \ di "cannot find maxp"
9 h( i6 q! P! b8 c9 J4 f5 D
9 h) `! P& n' u: @% j. Y# k/ r
) R$ B# b# B0 b- R/ C sum dx2404 b! f, E! Q! w
local tempmaxp=r(mean)
. H* G2 r. y3 i T. C' {2 X2 h" H. p$ A
}
e! `% u+ c2 ]6 u* Z7 C
8 ~: R5 X e1 D! S- b4 I }
/ W/ d8 `. i8 Z: P$ i6 D \$ H5 Y
! i+ h3 u9 h- B% _& I else {9 x! C, A7 d3 q1 ]* ^
$ H1 I$ {3 Y( u" d, N2 a- {* H keep if ddy240>=r(max)! ~ u! U# ^; t; ~$ ?0 c3 w
8 y! M" k7 i. u% m1 U
sum dx240) o/ |0 E/ ~/ R7 M1 J
# u g4 r: q+ l' i+ C' x* l local tempmaxp=r(max)
& \- e5 {; e" u/ [: R7 `1 E restore ' U% C$ w' t6 _
}
: d8 j# F$ R V0 f" G
( f, x; \! z0 H. K2 w) V2 I% u3 Q" }; q7 g! H5 y
% E. b( m {2 j/ b8 u
7 e% @ ~4 r+ r+ n. j* b5 v7 N
gen maxp=`tempmaxp' in 1
+ k+ _- E& C* L
- d( q% ?5 H& ~+ ~( R' }3 ^( H: r *240maxp
4 v6 u, B5 b) @
/ G: f$ U+ A1 G. l& K5 t / ^* A& ~9 h5 v
*-------------ddy240pminp左侧高峰值-----8 w. c( N5 i- ?
; r3 G; @9 \& Q: Q5 J
preserve
0 d8 F( n- }( l& A1 \ 5 U3 k9 K2 P( u! B* E. S3 m s
keep if dx240<`tempminp'6 I0 l7 P6 w# G* `8 s* O2 M+ U8 U
! M/ z3 Y+ g4 f, Q4 H& O
keep if ddy240>0
" L! j* ?$ C" g9 x; A) U) Y2 r
9 F. Y( r2 ?' K count8 Q7 p% \9 @$ A: q4 u' M/ E: }
( H9 O; U" [1 a if r(N)>2 {
8 p1 a% Q0 h- N+ _8 ^ 6 S/ v3 k- E/ _( S- [( ~
pkexamine dx240 ddy2402 ^( L( a+ h# _# F4 ~
& N5 p) u: `2 _# R local tempminphddy240=r(tomc)
9 u' q* r% E, i/ {# p9 p restore
3 Y5 ^, p+ e i: e- C$ M3 n }
! e! _5 B$ T6 i- q
0 Y2 @4 j3 b, l0 _ else {
7 ?( b l0 p5 N restore % A4 ^2 S' n* d. [& u
di "cannot find pminphddy240"5 c- q; w6 ?8 J
0 N0 ?' M6 E' h
( \' c, N& ]9 Y$ j% ~+ y- }' T% i sum dx240
0 n# h+ g9 b- L% t3 m4 G' _ local tempminphddy240=r(mean)
& G, j- T) C2 ]8 t+ j. L0 w % G+ l. Q7 ]. V! l: a6 m- m1 V9 e0 C
: ~" Z _( f7 A: X" z }
1 r! i! ?* H, C * R! E4 T- V/ _/ R5 f) S
1 a6 M/ E+ }- g! T* ]
, x5 d' }$ T8 X* `8 \
8 n& a E4 a( D8 S! I6 `0 x 9 T0 P @- \' r3 H
' R3 H% ]/ k' y# Y6 t1 |* M2 U5 B gen pminphddy240=`tempminphddy240' in 1
! c3 w& [5 ?; h$ `* a- T6 L, { / X8 _( l; G8 [/ c' O
3 j0 f) [$ Z' C6 j3 u *-------------ddy240pminp右侧低峰值 -----------------
; ?5 Q0 a( T' h6 M preserve , R1 \: ]8 c: r, s/ i
@2 A- {3 N! \% z% H
keep if dx240>`tempminp'
8 B6 Q; u+ f) D$ ~
- J6 U/ s" x, e# c4 O$ ` keep if dx240<`tempmaxp'
" A6 J m; l( }2 z9 w! W& J - a' f7 _- f4 E* W+ i
keep if ddy240<0
! G/ q$ y! Y9 j 1 Z; S: t! {. \9 f& w* w8 A9 ?
gen temddy240=-ddy240
8 ^$ g% o6 S& G: c
, M, I4 ]* U! G' G6 R count
4 N& d% Y; Y) }1 P5 a B- Y! k9 u" N2 ^) q( S- s
if r(N)>2 {& U' i5 J+ \# |% F
" q& {! G4 ~ Y* S6 i
pkexamine dx240 temddy2408 l9 ?9 }; {+ o
|$ l* A% x' U" l) h local tempminplddy240=r(tomc), q& i3 _# z2 ^9 r. V9 j: W2 z6 m* r
restore6 j0 S% \8 J& G" h2 f3 k/ u4 d1 w% }6 e
}1 ?8 w/ m" d$ F) x. p
& c2 P" K) a9 X% x else {
: }; A) }7 Z5 E! ?+ y* z V7 L1 E* ~$ h
di "cannot find pminplddy240"+ l% T. S) A4 M# b* ?3 l# T
restore+ S6 v/ x4 s [! U: a& E" ?+ d; g
9 y+ P8 |) b% H4 Q+ c
sum dx240) H: V$ ]& Z) y4 G1 u/ |7 k C
local tempminplddy240=r(mean)- x4 @9 C! t ?
) o# S6 N/ a. }3 g0 T
5 g% l9 Q+ ]" q: E }2 x2 d1 b' p" P5 `7 `
: X2 y% d5 ^$ d& x* ]9 G+ r4 _# b ( _$ p& I! j/ C( \# a. ^
5 q6 ?. m4 g/ B r* }. x6 `
( Q+ _& f% @9 k& p) }
" a! w! J2 T4 r9 D2 g gen pminplddy240=`tempminplddy240' in 1
% v$ t2 l6 B4 A } ( K$ {7 @2 L" F0 m; C. Z
*-------------ddy240pmaxp左侧高峰值 -------------------
. b# T7 }0 o/ q- I+ Q
/ u- @2 t% J J# U7 O( u preserve 7 i8 Z6 j" ?$ u& V% m! o
[5 N, Y4 V M6 x keep if dx240>`tempminp'. A, J5 P' c' |# C
& }6 d: D5 @0 [) n, f
keep if dx240<`tempmaxp'
2 s5 a2 e+ W4 q+ f % W" P% }! u1 J6 V$ z
keep if ddy240>04 l8 s4 `, q0 F, S/ P
count: a0 o$ j* O$ B ~
8 z o0 A! q# i/ ^4 Q' N
if r(N)>2 {
2 k/ [+ \9 z8 N- z" y* E! ]1 _
0 R9 E# y: U, l; ~3 T3 W pkexamine dx240 ddy240
- y7 z( ~ ^ F4 I 7 a* d9 g: p/ v% K! V
local tempmaxphddy240=r(tomc)
9 S( i, j4 r+ W& k* {$ W
' }& v9 a3 z/ G- L4 Q" L2 W. S F restore
, @1 D( ~/ c! `1 g }1 H9 U* s$ A. P r% s
3 [9 m; U( X2 m# B' I' T else {
9 T' t1 F+ n' u0 U) j
+ U$ \) u, M! _5 w di "cannot find pmaxphddy240"3 t; V) W4 E' F+ N4 s: u
restore
7 \3 j/ D2 x3 l" V) g
7 q; ?9 r. ~, Z sum dx2402 ]& R( i* A3 e7 D0 u; v
local tempmaxphddy240=r(mean) 1 l1 n P+ F2 t7 w
5 s( A# ~3 X: h4 F0 }6 T7 {4 x
2 X9 v2 `7 M. ]$ z7 ]9 r }8 r3 W2 K0 h1 o" [8 {. z) W- u
4 ]7 E' n( Y; e l% [5 ]' R* J
. _# x( d& I( E' P3 V1 Q
/ v$ O% J I% H) |0 a4 e
( u* @; L" D* C1 u : h4 f* U1 C5 P
$ w2 I/ K, z' u' D' Z* U
gen pmaxphddy240=`tempmaxphddy240' in 10 ]5 p1 Z3 c( u# I% e! O
/ O# x( G+ d- Q) F% P- {5 n' z% X
% c6 \# m9 p W$ T }' K9 Y& p *-------------ddy240pmaxp右侧低峰值 -------------------
0 K6 n! N: S( @4 K+ r" D
5 F' o, E( h2 P5 ^- u+ j9 K8 @ preserve 7 @& w9 N( B, M" ?
e5 }8 N8 d- h/ f keep if dx240>`tempmaxp'
* O) K) G3 a) p3 A% p |* t ; ^2 {' r) b k6 @3 v# p6 m! K' Y
gen temddy240=-ddy240
. g* a: d ]$ h. i- n9 s
; c) J$ n' Z4 {6 a9 W keep if temddy240>05 g( U& i! m7 i; T
3 R# ]8 @8 c$ v) u/ {
count/ v; Z/ W# }! w8 Y5 B- b. Z4 x: S
: P4 w* r% @ Z2 z5 L if r(N)>2 {6 [9 B, V/ @# P6 O& `2 }% r( O
8 U5 B! H4 ?$ [ pkexamine dx240 temddy240
: d3 C" \) ^7 P: u8 _) {+ H
* v- }# I1 ]7 P1 [/ } local tempmaxplddy240=r(tomc) 0 d) A) v6 W: R8 k% G$ m i% C
restore
, V$ F' T: S" t( v }* M, y+ c, Y* h% }' T0 |
# T% }: x) J( p9 S6 d- J else {+ k9 J: ~! H# {
restore7 c2 a ?2 _- ?' l9 k7 a: a2 O% [
di "cannot find pmaxlhddy240"1 o& T. t4 |. u5 { N% g
* J" l" M9 S' n G+ `' F* z9 P( a
8 R0 ?& G' S1 o$ T& ^: p+ s0 v( J sum dx240
5 S4 h1 n0 K- [* {7 Z8 g& R local tempmaxplddy240=r(mean) in 1. a4 P1 h* u) d$ ]# n! k; O6 f
( N! y: Z* e! p( \
' C2 [7 j1 g- W0 J/ ?/ k7 c }
x+ _, d3 N7 L
/ P: Q- \/ F( y: f+ ^: S / V- v0 Y t( ^; Y
- M6 s1 t4 a" H, s4 ^, Y
p) w6 w9 M0 p+ ^" R2 u. X
$ G' J" c8 O" r" P; a4 _7 Y2 S8 x
/ l2 N. ^* l6 T# V
gen pmaxplddy240=`tempmaxphddy240' in 1
% e% b+ S0 k( K( I: e
( P' x# `+ B, D3 |4 u) L0 u) P *-------------------------------------
1 g( j7 ] ?" }" v$ g* o+ A
1 c3 L: p; ]! y; s. f7 { gen price5d=v5 in 1/20
& k( ]5 B/ y4 _ }9 H3 w
& Q* K" I; y8 e1 y% V2 L; e: _* X gen price5yy=_n in 1/20
) k* G* \7 N+ r
$ V2 P! U% H* g gen price5y=price5yy*(dy240max-dy240min)/20
- `0 M! g# E i. K, l 9 F, A, ]4 O$ T: x& I6 }
*price5y &price5d
; `4 L' r- I3 x+ @& P5 o6 g
1 h+ e! a8 ]6 l% q2 [' r gen priceny=price5y in 1* ]7 e, j) z& S0 N# S
( W, j. x: d3 K) ], @ gen pricen=v5 in 1' G4 ?& \% q9 q6 b. J4 h
. V4 g& x8 B$ y! Z " f0 C7 m' k h, c9 G. O
*priceny &pricen) v# ^% h4 O7 I# m7 M4 L
. X! r$ |' M2 G4 Y
) z7 b' p% z" s: w( k- J- U
*-------------------------graph------------------1 T( O5 [' P Y& O% K5 z, t
8 o; l1 \0 I: G1 A) m 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)
4 f- O' a4 X# p; l" X3 {! f/ w. Q! Y- J; l! O' u
* ---------可选项目----------------------
6 p X# f: o6 X& C) I8 _*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))6 i2 {' D! b+ }: m$ L; S
}
) O+ X2 ~3 q7 k9 _+ l* K5 zend- r) @' |- V( g3 d
|
|