|
|
maodeng 发表于 2013-1-28 13:13 ! A" s1 ?, f2 _3 b6 V8 V* H
. hello 300236( P/ M/ y! m* V
statement out of context
0 I$ I0 u3 P' @0 Q# a: r! f5 o6 E% a& Sr(119); ' L, L: N' T7 `
抱歉,最近太忙了
$ {' C: c5 I3 r" o$ l# i$ |8 c$ A& j" ^# |
300236 我用下面的程序试过,没问题' c& w6 l2 I* K* ~1 ^
- V2 U$ b" Z# `
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试. _, \ \8 D! D7 Z' I ^' g
' {! k( f H+ s4 W
capture program drop hello
7 V" V0 U: x" ?3 ?1 q" U& k$ @9 B# S3 I" f
program hello* N8 Q4 E. v- N! l+ s
( K( T, \- S* i1 K quietly {
! ]$ ]/ Y3 ]3 P
" [0 M( z, D1 s2 n5 {clear9 K5 b% o& [& p; T0 z% |3 W6 A/ ^& F
. @8 V, I( m4 }8 U1 y7 `/ b+ ], ^
cd D:\stock\test\source
, P) M5 ?& x( t5 t
1 y2 V0 A9 W- O8 }insheet using `1'.txt
7 a: e4 B" A/ ?' f7 t
, D% W3 S3 m8 u. D+ `, J keep if v5>0
A5 s* \8 R/ s$ Q% W9 H# g1 k9 R
+ l$ h8 ?$ B9 a6 p gen vt=_n1 T: _# _' X8 ^
0 I! O. I% \ e; X1 ` tsset vt/ B0 E H: N2 {& |
' D; ^9 ?7 M; Y, n# q! F
gen zf=D1.v5
5 c& a- `+ Z$ b( F/ {" Q. C5 z \' P; C" g8 n0 i/ H6 l
gsort -v1
5 H9 J8 S2 y# ~% r# t- I6 O( J! Q9 M6 _2 W5 g
gen avol=v7/v50 W: H6 i% r6 b( }* f% t
( T: o5 r! i- `# l2 o
keep if avol>00 n- U% \8 S, L, Z O9 g) d
0 B: e7 n& M. M1 F
drop vt* f6 g) \6 U2 R& S3 {& m
: @+ S+ |" N6 N* F gen vt=_n
% K( v6 l$ H& H7 [4 w6 ? 1 P: U, a% o4 D* J
tsset vt
* _; O$ \$ [0 F9 g
c, X: G# Q' R3 p sum v5 [aw =avol]& P7 \2 ]4 u8 u% w1 Y
6 P6 C# g( {5 q7 U( O
gen amean=r(mean) in 1
: J- r" s! s c3 e
% c8 b% h- P1 l/ t * 总加权平均值 amean
8 \$ L1 y/ O( f! n% i% t - Z# k9 k" t! M' G- W1 u
$ @" ^+ F+ a" [, }& v keep in 1/240
& m; T; p9 v$ u
! f2 h* A8 ^; N* @* ] sum v5 [aw =avol]
% r8 u+ ^+ @6 o# w# \8 O3 w4 s9 i, [% |5 k7 ~5 s% P- s( i7 f/ q
gen mean240=r(mean) in 1
* H7 }, o& m: j! r/ Q4 ], n - {- L) t3 F" f( f, g; l/ S& W
*240加权平均值 mean240
/ o' r* @4 g% g6 B: _
|/ [5 [7 A, A- C# m' K set obs 500
6 Z+ {# q$ T P0 a# e2 S. ~+ ? % H$ `$ F/ b1 ]* p6 e# G; f
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph6 | G' Y4 h0 ?- }' @. ?/ r
3 C+ o s2 G4 F* ]- `+ `
*240 kdensity(dx240 dy240)0 V1 w7 ?5 @& q+ a/ b G4 |
# _2 t" p4 R8 g& T. v& G8 T6 t5 O% b sum dy240* E8 W- R3 Y$ e& W
1 T8 i0 A# t" v$ {/ k" E$ U( x
gen yxis=r(max) in 1) N& t( h. M: L) J7 N% g
3 c0 P1 q E% O; ]1 R# T. ^0 M gen yxis2=yxis/2. N+ I# I0 O6 ~9 U/ j5 M
4 g4 P2 r, _/ {6 d0 l
*yxis
5 S$ S& U5 T) p
- N O0 _4 }: Y9 N( K gen dy240max=r(max)
, d8 O3 i1 K' F
. _5 i( e" E6 `/ l gen dy240minp=r(min)
- `. w4 m) q& h! a2 V* K! |
/ a4 ?$ K" a$ {1 T0 M8 H% D gen vtt=_n& o! g+ p& ~$ O. q8 `- N
& f3 c( w% s- `' Q2 n3 v- j" o
tsset vtt! S2 l0 \ Q. }
1 X$ Q( J9 g* t9 ^ {2 M" |4 L gen ddy240=D1.dy240/D1.dx240
- S3 W1 x( w3 p0 I' E
8 g8 c# [7 c/ x+ N3 ^8 U! O sum ddy240
9 f* a4 R0 A3 V9 w& i+ ` 8 k. U" j$ I0 v' o Z
gen ddy240max=r(max)
* E5 T% T4 m5 O3 G% J0 A9 i. `# c: p ( O3 i- [% z' ?" t8 l- q9 p
gen ddy240min=r(min)6 M7 u# E2 m: W4 [2 z! P
8 e) u( T+ l8 |
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
6 |5 \/ Y$ h9 E1 `- v y * f2 V9 {1 ]; y; T% j2 n
sum ddy240g
v/ L! Q. c- a& s
. Z7 i# p0 n* {2 `8 C6 _/ Z& k+ X" f gen yxis3=r(min) in 1' n* p; o% a: }. N& X2 Q2 d
( q9 @# [4 t% Q. p& w/ G) i4 \4 L* H gen yxis4=0 in 1 }$ B1 t; ^) L
% U- _9 U" g k+ T; A& J
*ddy240g
3 F; N+ Z9 D9 ~; N' H& g3 F
z" c( ]3 J. N: O# [" h# J, a
2 f8 `: R# G$ h5 T: X: Y- z" @ preserve
& ]1 k9 x" Q# ^9 f% Z ?
) c9 C. E7 G4 W% f0 ~/ e, |. h( \ sum v5 [aw =avol]% T9 @8 z5 @+ a1 y
7 Z a; \+ j5 w2 d
keep if dx240<r(mean)$ W9 Y0 `2 T* i4 F/ h2 X/ o& h4 N# v2 B
9 c9 g0 q; I9 }9 E7 g
sum ddy240; q) a6 s* y% d7 s9 {, C* x2 \6 B
4 }0 i- `5 z; ^
if r(min)<0 {/ j0 v1 f) r/ D" s d! D1 K* t ]9 \
6 u: J9 e" s$ a keep if ddy240<=0
6 n3 ?" k. L3 n" T
- J- G1 c+ y8 N! W count. G" p5 ~5 z G) n1 C4 o
& S# m& o! s) ^- E if r(N)>2 {, W P7 J9 w1 X: K# J2 y7 _) C
0 Z3 |! E) w1 F' A
pkexamine dx240 dy240& f' q- L6 H0 J5 w) I% o
0 j: l) V6 Q: S2 U' [
local tempminp=r(tomc)4 N6 M" _2 v6 W3 L
restore
! |6 i# s# [# n$ ~( X/ x8 Y+ P }4 K- Q z F6 \9 o2 [3 z. n; `
; |6 @" R' s1 U7 c; l7 X else {
- f1 Y, b4 q& _; r
( A* W. l0 z& a! Y2 h di "cannot find minp"
# c4 @. G/ _1 t4 u
$ N7 F% Z z/ T' f1 B3 w restore
" d! g, V8 k# @( G( E sum dx240
$ w, y) t! s+ W% v- L4 U E \ local tempminp=r(mean)
* r1 d" O% }, w, t
7 L3 i4 N: k5 l* x$ {4 P/ A3 @3 s' d) U }
8 e d: ]# y2 G& c }
* p! s4 Y; q2 Y+ y' q3 P: c else {
% n" o5 {0 h9 u) s- ^ S( j. {0 A* h- i" U" a! x
keep if ddy240<=r(min)
/ g0 o- q4 `" X4 @ - V2 G! G+ R8 d$ B7 ~
sum dx240
3 M2 i- b9 V) ~2 d6 { y9 }6 ~# ~* h. [0 T
local tempminp=r(min)
. N0 }& F2 i% j6 e8 Q* S/ y. n% X restore 1 v. x" G0 C+ o/ G' I; x
}2 u" ^3 Y9 D5 {# P
! a. L* L4 p; ~- A; U3 `
' V3 j) W, X3 l, C" ^8 y
9 u/ [! u8 }) G0 f* ^" P! ^ f gen minp=`tempminp' in 11 C; o3 J: ^6 Q! \. V4 e! Q
*240 minp" w# _# m4 X' ^ ?, v
. r1 q; `) I& Z! o- c ~, L, L
; N7 j8 B7 K# V 3 i3 M+ |# [/ I
preserve
; w' K" V9 R# i5 g& r 0 q' x' s* t7 Q7 M
sum v5 [aw =avol]7 \) c+ @1 c) d5 Z* b
& A/ q3 m8 d6 |% z) W2 l keep if dx240>r(mean)+ o0 A' I% r! d' R
W% k% [" W/ t5 k# T" y8 |) {
sum ddy240( S# x' }6 I. l" Z# ~
) s7 q. M" O# o7 \' L) O
if r(max)>0 {
% z3 b* S, E( h, _ - Z8 T5 K% G9 \. L+ l3 {7 _1 I# J
keep if ddy240>=0
5 |; ]+ v1 Q) ^" N) o" w
( q6 z* U/ l/ {- [' ` count
" O( D$ G; x* f+ R2 r- Z 5 T1 g0 R/ @* g( O9 m% i' j
if r(N)>2 {! m9 r$ T/ U# E) C
/ I9 Z8 i, g% }& G0 S: u, j
pkexamine dx240 dy240
4 k5 ^. R) F5 a; o% ]: u h$ y5 a% L7 O4 U, ~
local tempmaxp=r(tomc)
. q* H. @) X/ f9 E/ g# z3 n+ S restore
- S# O5 e6 X* m* I5 P }1 N: k: X" A0 \- E! M1 Z {: K# R
% e5 }7 s* Q- E2 R - W, t8 H9 o) B0 b% v& s4 M
else {' e. k" o3 I* B5 V. q y
restore ! e* n4 _, L7 j2 F
di "cannot find maxp"
9 E: a) a. T8 x$ I4 V9 J. U
% n! a$ e- t3 r3 l- W8 H( D' ]
6 C7 Q1 H9 q' s1 U sum dx240
, ~9 }/ R1 P( J; e8 _ local tempmaxp=r(mean)' b* _" y9 z7 u8 R
. V6 `! X, q8 j) q
}5 R0 O5 I7 s$ e: g D! s; `& a4 u) E+ @
/ g9 {/ x. s: m% [
}1 w. L# s2 _8 l# Y+ g o$ }* x
& S7 I. P) U/ q1 {1 o; @ ^ else {
- J& E) g U+ q3 ?0 A: X
6 Y. r2 `5 i% ~ keep if ddy240>=r(max)* b9 M* L) _9 m2 u: @& A' ~: ^% E
7 d) u( Y) o1 p- p; |' _/ K1 y
sum dx2400 J) K! u+ ^* p' K
+ q. Q! @$ k: ?. ~
local tempmaxp=r(max) 3 A5 N- N# a. A. Z1 {3 @ d
restore : i. G" S% l, L3 Z
}9 Y" j- ^9 }; ~( h
2 F) X3 _( Q5 y+ G3 O- G
/ W4 f: e/ ]/ @ 2 K+ ^$ l7 k0 V0 K. U
9 N% n6 C5 e6 E3 [8 t; u0 s+ \3 [ gen maxp=`tempmaxp' in 1. \* h9 }: J+ z5 x- o0 [7 p
, `; L; t. _0 T$ X *240maxp
3 R4 ^; l; f# i& I
* a2 q7 s' v- ~9 N I' i
/ X' |9 x! Y7 j9 x+ {1 O! h, V) R *-------------ddy240pminp左侧高峰值-----& e: Z1 J" t& o" x3 W$ P3 E
0 R, n' p# _) \. @
preserve + [- x L; P6 c* b) g
6 ^0 f- L; ^5 _$ p) A. |$ O J$ Y; p
keep if dx240<`tempminp'
7 y# Z8 m6 b0 |; n0 @! g' k1 p9 H/ r5 l
% e' ]: p8 l3 \8 u) W. s8 ]* h6 u keep if ddy240>0( Z1 F. w6 p# ^5 g
' m3 Z8 d4 D8 h* V W0 \" M count
- _+ q8 ~: P' X 9 h+ o. x9 H2 J' |, c5 [6 J
if r(N)>2 {
9 A9 z6 {6 Q' g( R" ?! e: Y
0 P$ ~7 d" F% O pkexamine dx240 ddy240* I0 E2 |: l' d$ K$ W- V
8 g. l/ n! {2 b8 [
local tempminphddy240=r(tomc)
! O( m0 [9 A' V. |/ T* U restore
! G, E4 E3 h4 e }
4 l$ [9 L, }- D & F( d! A! O6 G( ^$ V( A
else {
& l5 _& ?: _) S) c( E. t) M' Y* o0 Z restore
- ~5 a& D- v2 ~/ }/ }1 C- v di "cannot find pminphddy240"5 \6 i5 q, b7 |7 H, g& l. o
9 M. M! @0 w, ~, C- v7 n
3 ?- {/ u q; O: J$ q( r) z
sum dx240
' ?4 k% v3 c( P* l$ Q local tempminphddy240=r(mean)
0 h; K# Q# c U4 P) I+ @ t3 r7 z$ {
, c3 d+ C4 {" I* p ( |5 K/ x3 |! I" u
}
7 W1 D. n3 B U7 V- m: H % j. c# s+ g' @. Q* f
5 o4 M. P. l: }% n2 w, P% q
* `/ P7 h+ w; w; ? - N f1 g9 x: P7 F( H* [
3 H" m1 j0 o1 ~3 v( O
, h; R$ C+ i$ }* P
gen pminphddy240=`tempminphddy240' in 1, d7 e) T/ N% h* e
; Y4 R& s% [" |) t
0 }- W& q' z6 M% ?5 n8 h
*-------------ddy240pminp右侧低峰值 -----------------
, X7 i: j: ~+ I1 C7 { preserve ! M6 \/ e8 z- s3 |9 U# p( |
9 X+ G0 t4 ^1 v9 I; |2 w2 s; }
keep if dx240>`tempminp') X9 n- z9 I9 _" r2 |
$ B' U* B( U4 a7 \: s keep if dx240<`tempmaxp'
) g3 U8 Y' L6 c4 M# z! @4 W 8 B/ Q3 }3 E* f s n! m& f
keep if ddy240<02 m# r, v2 ~% l. a, h
/ b$ W) a' h/ e% o$ _+ K% H* r
gen temddy240=-ddy240
: Y4 L- x# O( k " F6 P- o+ W7 R; X" n
count7 O6 l% J, I' D9 G
; b0 G( o5 p# ]) R; D y
if r(N)>2 {: U& U9 S- D* ]# W* X; s
* r4 `" M1 |+ t3 `+ g. d7 v* r
pkexamine dx240 temddy240
1 m7 L/ i! y, A, f 4 ?; ~& S( E' m. ^+ H4 E4 a
local tempminplddy240=r(tomc)
4 T& N$ W& E: y h, P restore9 {. q( ]. r+ J L
}
) g: D h( R9 O( F2 }0 ^
# r5 ?$ P2 e+ ?1 y* _" d# M else {" R! r, X: H; ~2 r
3 W, s1 @# p8 I. b. Y
di "cannot find pminplddy240" l5 k) ?( \9 W( G6 L5 T a6 [
restore
5 w1 R! M7 z2 x9 U( N 8 r( ?7 x1 s E' J. }9 e0 X: y
sum dx240
2 C2 W2 p* t3 {! z, i local tempminplddy240=r(mean)
' v1 ^0 z, l' x: P# a) M8 L
8 C9 u6 p+ R! X* Y' m+ y 0 }, Q, W9 F8 ]6 N/ x5 X$ J
}* D5 i& l, ?' M
! F- E' T0 y) G, D/ n
+ [# Y+ C! a& C8 S0 @ " W' S7 I& y( J; r
) ~3 i4 i: N6 ?8 L! m
7 }- Y0 i2 f# R7 @) C gen pminplddy240=`tempminplddy240' in 1
, k: z. |0 G) }" I4 K2 U! n / }6 [& W2 R5 K/ J8 [0 |
*-------------ddy240pmaxp左侧高峰值 -------------------
. T$ o, Y/ ~2 L, Q/ a' Q: \
2 N0 H- G8 z: ^) U* `) O9 f: ` preserve ' g8 G, F& S4 w$ |+ n
; I5 C7 b x0 l# r
keep if dx240>`tempminp'! Z: R# E9 v: b$ G4 { ]
6 r+ T9 Z, X; ~1 j! ]
keep if dx240<`tempmaxp'$ Y# k% i; K' N+ w0 G, a
$ K7 c2 @1 J! B; d$ O- ~% ~ keep if ddy240>06 W# z4 O( I3 q5 m3 J) u* j
count
& z9 |# p3 U: l+ J5 }$ f) `
% Z$ e( g7 s( O! r( w9 _7 I if r(N)>2 {: ~" W! o+ m. w
) c. z; b4 t, ]6 x# r
pkexamine dx240 ddy240$ Q/ Y, F6 [3 s
! ]2 D1 o# ^- d local tempmaxphddy240=r(tomc) " Z" E: F$ A% P
7 G4 x- J3 _! _+ z4 m restore) `6 L! V. ^/ r. j. _- M1 g
}
/ {' l2 ?5 z* W( Z- x1 y
. c' @3 y p, A( E- U" q1 Z* O else {
" b' Z7 S% g" [$ f I! o
4 j9 q. I! m, Q w/ d8 h di "cannot find pmaxphddy240"% h0 X+ h' X1 h9 P$ y7 R$ h# ^
restore
0 L2 g0 X+ [' l6 g/ E + a+ h" B2 Y3 U. T6 V
sum dx240& G- k# a) T$ K4 J: _9 I
local tempmaxphddy240=r(mean)
" t4 N; u' v7 D6 l t) ], t / K/ k! }6 ]" c4 Q6 U1 E1 R2 _6 U2 n
0 X5 V9 v4 Z& z5 z: S }3 k- Y9 n) a d" v N8 U) m
4 T" K" K2 V) H ^% A2 H$ g( C& j
0 [$ W" n1 @9 f* T$ i5 F# ?
8 _) ]1 Q4 N' y$ i L g6 h$ Y" ~# A2 P1 `
& D. D: b, [: U7 Z! R* t: K
4 L5 h% U4 c' `: t5 f gen pmaxphddy240=`tempmaxphddy240' in 16 w% |# ^( Z6 m$ m: ]6 Z
) c" ]6 D5 ?/ E" Z- i4 C( y+ u, F
# D9 X. I$ ]# H0 x6 n G) u *-------------ddy240pmaxp右侧低峰值 -------------------
( }1 v. G5 g( u# @3 c3 ^. S& ]1 Z5 ^ ) r4 |; q% x4 `9 y! Y3 f- |( D2 K
preserve $ }6 @5 ?0 ^$ K2 |
% q# p' t! e* g, Q( x4 X, C
keep if dx240>`tempmaxp'
, p- Q9 W b+ O% T, A , T7 H6 D& L% j& w; n# Y0 T
gen temddy240=-ddy240
7 I: K+ A3 t' ?, I ( R, J; c! n+ F
keep if temddy240>08 z* m. p" \% } U
% [7 K- w8 f; [ count1 }+ a4 v8 D) Z7 Q7 N2 o+ O
$ s: F. C1 @, F
if r(N)>2 {
# L& D; n( u: @/ P. u* E 1 I6 M3 A, [+ g
pkexamine dx240 temddy2400 E# Q, i" R) {/ s
1 }5 `) q! E6 w' m+ k8 M) U local tempmaxplddy240=r(tomc) 0 Y/ U$ W% N% B: V& ]! {* h6 Q
restore
" m& g4 j- g! y. ?1 F) e }
! n* q2 r; H5 _' O3 e7 `# `/ f3 f
0 j4 _. y: i3 ?- D7 o, { else {
g' x* Q2 o, B2 S- v- O$ G restore
6 s: I R# S6 u9 y+ l di "cannot find pmaxlhddy240". s" w, f% E; E2 r
/ X6 t) H4 W1 S0 K' e: ~
. y0 y0 s' _- T) W$ R0 z, ~ sum dx2400 q* F% L4 B: @, ], d
local tempmaxplddy240=r(mean) in 1
1 h9 a& R1 g. B" z) B
2 J9 H n1 X: m- s , `5 |9 \9 w0 X& U2 Z. e9 \
}
! C" z7 M/ g; ?; T; s0 B; Q
3 d3 n) H4 x! A3 N5 P7 L8 p+ W
' v T) p* b. V " e! E# x7 I4 o
0 C4 c4 f0 m3 Q) S' J* l `, l4 F
# ^4 i; ]6 x: s7 d9 }4 R7 k 2 J/ S( S) V4 E3 z% }. z
gen pmaxplddy240=`tempmaxphddy240' in 1
# Q E% j( v( T. p( w% ? 2 \/ Y' G9 N) p8 I, j2 W
*-------------------------------------
& _$ J( q0 f0 j& ~! Q
5 D& a- Z4 Z) [- V k6 O gen price5d=v5 in 1/20
# \/ S) P" s; v+ X
$ k- R4 q2 v0 l gen price5yy=_n in 1/20
& `+ E. f5 q8 c " _# k, b x0 |# q* C4 @
gen price5y=price5yy*(dy240max-dy240min)/20
, l) O# K+ }& r $ s' I9 i% h l
*price5y &price5d
; C9 ]% j4 N I+ w! n) k 8 k9 J' Z6 O! X/ k0 ]- m
gen priceny=price5y in 1
; H( H3 e% i4 {( e ; m5 i$ }2 F% }2 Z* A6 ^
gen pricen=v5 in 1! v+ G/ t& p0 _- }* p
: ~& I9 a \# _& z0 o! k
# B% T' T, h+ E+ a* I' j2 C *priceny &pricen' d0 {$ C( w( O# q
0 A$ b& [. O! ?2 B3 e/ ]( g
% I+ j8 G5 J- Q *-------------------------graph------------------* R. d- F% v5 {9 B1 u
, S q" ^1 q9 z ~. I; E
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)5 P' u; `7 u4 q/ [
. `1 B* ^# k5 |. c( V% ?+ B
* ---------可选项目----------------------1 A' V( I6 Z* U" }6 i$ f
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))# n9 v0 G O2 e0 q4 a( u
}% T4 _2 s) H2 m$ K' k9 Q
end: q$ M9 i2 H7 t4 L! F( ~2 N
|
|