|
|
maodeng 发表于 2013-1-28 13:13 0 Y, O) L" h1 [, a
. hello 300236- ?5 p2 h/ I6 D9 C! d
statement out of context+ l9 z/ Q) [$ J+ I* n1 U
r(119);
) J4 H9 P- j9 H$ e; w: d抱歉,最近太忙了
+ ?3 Z9 F1 p7 j* a! R, u
& |; u7 g) L5 U* S2 g+ [300236 我用下面的程序试过,没问题
0 e, T/ s/ P# @3 G' D3 l+ N- k; \1 w* p
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
; y) u5 C5 e% J" h3 P2 R3 L7 i8 r& G! Z l# q
capture program drop hello
+ I1 I# q. q. n3 K# A% S
: |. P" `% h" Y! J- A. I; Y) V' y5 f% [program hello$ \4 {2 W7 `, t. _. [
* }4 \, T' n+ \0 _ quietly {. H5 o) z# s) \7 B6 \# d
t5 I0 V+ X ]4 Z- b! B; B
clear8 g9 }8 |' g2 Y3 @! q5 o2 K& F
2 h9 m1 f. @! {8 Dcd D:\stock\test\source
% v9 I9 B8 A: h, }6 q. J- }- T/ H* T: s; I! E
insheet using `1'.txt
$ L, b/ a4 ]% a, s) U
+ H3 w+ N: m6 @" B) C. l' z keep if v5>0: |' q% q3 N$ z( v& W
: w! v: o3 Q# [# C/ u1 Q% d$ `: m: t gen vt=_n( Z, l! M( {, |3 r, l! k4 o6 k
4 v+ Q" Y w* V+ V) D tsset vt
7 z/ |0 p8 w, `8 `4 V
5 c% l8 E' W: u5 z/ F( J gen zf=D1.v5
0 ]3 l9 x' t, p# E( V! m6 @
. l' N, {" Y0 j, M$ ` gsort -v16 }% d: Z3 z9 d; ~
7 L! w2 a+ ?+ [! k# K gen avol=v7/v5* a9 ] d" W8 Q9 v8 T
* ` k: j3 G5 c8 U) D keep if avol>0
4 q F2 h# k6 @( \
3 {, K) W2 d1 P drop vt
. e* c: ~/ P, U# F. v! T2 X" `: @; }1 n + `! L7 |7 r5 B! Y
gen vt=_n
; x! N5 P+ t% z8 R$ e- ^( N
4 C: x# t( k0 K, {: N' [ tsset vt. e+ ~: u& U8 j
% q, H6 I0 f8 P; a. _, I1 X: {. E
sum v5 [aw =avol]
# J& o# c) b8 T( n$ s# Q* D% j$ f% v0 l4 O! H
gen amean=r(mean) in 10 x2 P+ T! U4 K! F" `( f* z: N+ n
+ O$ _* D! i: h1 V# i * 总加权平均值 amean
+ Y. d+ q4 }, n. o
0 A. n9 {& c$ }& k
: U& i* a) c4 A- {5 V, F% `4 z keep in 1/240$ t2 g ^- c4 L! Y/ H O2 z' D
0 ?; d$ c' I5 C. z8 P5 |" H sum v5 [aw =avol], O3 m/ H9 w/ x
% b, u, ]; l+ q1 c d! K- n: p$ ]% l gen mean240=r(mean) in 1
3 U& S% ^; g+ @, e( X4 ?( D
( U7 p' z; x) ]4 H$ R/ ^ *240加权平均值 mean2404 p8 k5 h1 ^3 q
7 `: P* M3 \* W
set obs 500
6 ?' U3 U2 s, ~* a, R
' l5 V @% v* ]: J kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
% ]: d2 {9 @+ J2 I7 L+ T
8 S& j5 n2 [8 b5 T3 `# G7 L, o: m8 c4 ~ *240 kdensity(dx240 dy240)( Q7 g* P J3 ^! F& X: k( C" c! g
; k8 i; N* p: R( I sum dy240
! F2 ]; f/ R! b9 ~# T' f' s
7 l1 H: V6 J, d6 |& ?4 j2 T# _ gen yxis=r(max) in 12 e( G4 _/ m( p4 G( h
8 A8 F; g: U P; D1 B' I gen yxis2=yxis/2" T% o2 p( {. [, s- i
* y6 U! H- m& S. T" K/ R- U *yxis" q! J, L" c- W) k
2 y. } @( g1 F" N( b7 \ gen dy240max=r(max)
, F% z3 h7 z9 w! x& P1 z' K( ~
9 ]" l5 |0 U& Y. B gen dy240minp=r(min)
2 F, }" o5 p, n7 p; z, r
* n- G! y! d k: B( E, G1 k gen vtt=_n
7 e2 O# q" p' O- D
# p8 F/ ~4 E( m0 F, B% B6 p9 ?; \0 ~1 a tsset vtt
X( p d2 r0 B) O* w% x! m# f3 s
gen ddy240=D1.dy240/D1.dx2409 \- z) |" g, Y; h
( }# ?! p1 J) r
sum ddy240
( \3 U- a% x8 e" ] [2 s7 ? / H! W& w# C& ]# f
gen ddy240max=r(max)
; C1 m( g/ P# C
! G+ F4 `3 m( F) j0 X gen ddy240min=r(min)
5 T! b- X- \( p* P . p* p W& ~4 H$ F' E
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)6 a9 G' v) ?# v9 N( p7 x( g
% {* t! _5 o$ \' D' `. M sum ddy240g
, h7 y. [; P- z% g- ? k* I- }
% o1 N. \* Q. b& ?: R( a2 V gen yxis3=r(min) in 1+ C; |* i1 h8 M0 E3 j- f5 j7 U" F
) z4 Q. x R3 }: u5 C gen yxis4=0 in 1! \: n3 j5 @+ u- e3 n# D* w
4 n1 L: C4 u( G" @0 K *ddy240g , ~ Z i a: }4 b4 j7 j( t
; d" D6 I- p/ f R* \9 N
4 ?6 w+ `9 a0 _. h5 A preserve 1 x+ Z5 y0 ~. A3 S/ Z
; b8 x$ a9 ]1 l, S. _# K. W0 J" s
sum v5 [aw =avol]9 _5 M, P) e r ~4 ]
9 W- N$ O3 B4 p5 j: ~) e; | keep if dx240<r(mean)
6 M" u! X3 l2 \/ a1 }) b
" n n3 W; z/ w" b& }- O/ V- {9 X sum ddy240' q9 N7 [0 |) I& S$ @, m
8 l+ V1 T" f1 Q9 Q$ f' J* X6 K if r(min)<0 {
3 ?. k9 j8 R& Y& K' l 9 z! x1 |8 r3 a9 t1 h+ v3 B
keep if ddy240<=0) Q B; v; h6 u+ T8 C0 |
5 x+ n' m) I$ B
count/ ~/ }& g/ R" F$ O$ W2 I
* d, E- m& @2 S% [ c4 L if r(N)>2 {8 \ L0 d) i& N# @" q# ^0 t
0 q2 l) q* i+ { pkexamine dx240 dy240
+ G2 F' ^0 L0 x ?+ ]! J! ? . n$ L# ~9 ?: L; d- ]
local tempminp=r(tomc)
% _8 C' {* k; G3 M restore $ ]7 i4 l) w: `* { U6 l' Z
}0 y0 w5 Z9 q5 ` r
, b% O; P8 _: [* a+ u
else {
% e+ _6 W7 I$ S* f $ h9 @& P! j, M( n+ `' U. B
di "cannot find minp"# O: K" ?( i$ b
) s! P. w" X, t; k1 h( N2 L
restore . M$ q8 e+ o9 U, H% Q. P
sum dx240
/ D: d6 A8 x- P1 m7 L local tempminp=r(mean)
4 d: p$ X2 I' D5 k ! t# z- c* i k# w' ]3 E- A
}! u/ U8 X$ O: f* {
}# u: h# R9 R2 F. a" H0 J
else {
% \. a" {. v& I- r
/ ^' u; O7 P7 O& m8 J! s& V3 Y keep if ddy240<=r(min)
: z8 d8 K/ U5 S6 y ' U0 [& ~0 s: y/ W6 N
sum dx240" q, p/ w* W: v7 X
" l! C* n& K i: {. y local tempminp=r(min)9 m0 ?! w4 l, n3 E- P# y9 ^
restore ' R& {; G3 B; ]+ t% Z) |, Z$ J
}5 L6 B/ D0 \% u* o2 H
" b! T5 h1 r: Q; c! V0 e% _
, B+ x1 R& G- }
, m; c3 A# L" C* m* s gen minp=`tempminp' in 16 t/ E& b3 o; d3 [/ _
*240 minp
' F5 y/ i' H" F6 l/ q6 O# ^, w# s6 A0 ^; K8 ]; B# R2 c
- w7 Q0 T) q* M 0 u2 A o/ B' d K* x
preserve , v6 a8 R& m; i: L
9 _. b6 I9 ] ^! U' q) h
sum v5 [aw =avol]- S. p) g# v f4 V5 f& y# b
9 J1 X% P1 R" `% w
keep if dx240>r(mean)& W1 @8 @+ I9 x/ J' s, L
0 X. r7 z1 z9 _# D% x2 g6 B
sum ddy240
, A, ~4 b1 k* ?8 r8 e! S
1 N3 z e0 O L1 {; ]. @ if r(max)>0 {
; J2 n! j8 P$ t/ ` : L3 S- h) X: x- X$ z' i
keep if ddy240>=0
6 o* Z. N: B4 ?* C9 \7 K0 g
2 h ?1 x# f2 \! a0 L count: ^+ k1 R2 E9 s! C" V; e; D
: J9 q$ e* t& Z if r(N)>2 {9 X5 m3 x( j; k
( o ?4 K5 ?7 d$ ?2 U3 C+ x/ l+ V
pkexamine dx240 dy240
, L8 Y$ h$ a* ]8 k 3 y; ^" \1 l0 w" x* Z
local tempmaxp=r(tomc) 2 E" ^, L/ D1 J" G s( o/ i- A
restore : v7 P4 V0 O+ o
}
0 D" S8 [) P6 m. }& p: U 8 p* A& Z- A" \8 k& y" d
% w( x) E/ a B+ y
else {7 A7 y$ m, q2 R N
restore
9 g6 g, N) G) S" W/ P: J% a. w di "cannot find maxp" V. u$ j7 T+ m7 T2 ~" k
0 R, e) Z+ L* f
, u: ?0 J1 m9 R9 |, c" L' ^
sum dx2404 o8 x2 p$ u2 e+ }, `, E H
local tempmaxp=r(mean)
3 i! i+ e3 v" D2 H; v! q2 k: u" {5 b
% c0 K9 Y3 |$ c. n. L }
5 w* U2 h: R" b* h$ d
- f% k `: V7 X8 i" C3 m }
; R1 {/ B5 x# g% S $ m: N& u+ P; j
else {$ B1 [! ^$ q$ Z W2 [
1 R! V8 x6 _9 x$ a. X9 k8 \ keep if ddy240>=r(max)' k) n: l5 K, w# |* A* d; E4 T
" d e: M( H. ~2 b" m+ F sum dx240
) T: `4 Y+ M, W5 G) m
* V; @2 h; M; W local tempmaxp=r(max) , q# l7 y: @/ a
restore
. |- x, ?6 C0 E8 ?4 M, I8 R }
; \0 f+ t5 ^4 P / M8 y/ S+ q. G/ y7 q
/ U. N) N4 q4 f, o' t; ~* w4 m0 p
+ D, f3 m: z8 V. h9 C6 c* @/ P6 E# f
gen maxp=`tempmaxp' in 1
: O/ }9 k! h% E5 S7 c# W # F {( S# [% i$ n( x" Q' _- O8 N
*240maxp
# ^! R( ]# w" }- ~ m8 f
" s, w8 R: \; k( ` d) W7 ^6 d
+ O A- P3 k7 `- \ *-------------ddy240pminp左侧高峰值-----% h O' `; a5 K4 l) I
; U" k- l* x" E preserve ! d1 F+ {0 G) y% r
8 G& D" ?$ w+ f4 ~! h5 `5 C
keep if dx240<`tempminp'' [' I( c% i% N" d* Q% Q9 F( A
8 ^* s U/ z8 Z8 m keep if ddy240>0
5 k0 {) ]8 h, f1 U9 n3 j4 b# a . j% e/ r' u- w4 M; T8 _
count
8 o# [4 @& `' M a; v% \; s
9 y0 f6 K- f3 Q9 C8 @ if r(N)>2 {
1 O- {) S' e9 N5 L/ x 3 N+ A' B* A- n4 I6 p4 ]* M
pkexamine dx240 ddy240) d* Q- {4 S* e
$ q2 u. Z, i4 ] local tempminphddy240=r(tomc)
! J0 g$ s" x0 D9 q' H0 j% S restore
' k+ D" Z; w( @& t& }8 r }' ]7 Y$ X; v. Z; f# L
u8 x0 Y% O( g3 G0 f+ c4 V: O
else {
/ \* ~- F+ i/ P6 O& R restore 0 ~# ?; m* e- s" Q" |
di "cannot find pminphddy240"3 b3 J, E: b) j: ] O
% A; y$ q- M4 `" y- R
9 L' Q% w( y) L3 w9 A2 h" ~( J sum dx2403 e, L6 U4 } s/ K& J. [
local tempminphddy240=r(mean)
# B1 v+ K4 T4 ], e i P 4 M+ C* l& m+ G) h' a( w4 t$ M
; m! F( I" K! q9 p }/ X* D' u: @' Q/ i8 j
, N0 [& m$ I; ?: N9 E& n/ Z- y$ z
" ^) t% \6 ^# N. p' X
% x# r+ v3 [6 Z; N' v+ e3 z2 g O
5 r) B, G: j+ A* Q * F- z0 K. b! H9 r4 @% D' x$ e
6 G8 P: ]9 @# E; Q gen pminphddy240=`tempminphddy240' in 1
* I. `; [6 Y# J+ _0 k5 j2 u 3 O R& L# H. `6 A* U; E& u* q& h
4 o$ l/ G% A4 j5 B0 T# v, u
*-------------ddy240pminp右侧低峰值 -----------------. [( U+ z6 N- Z% @9 a$ G* P
preserve
, J/ J' x, k+ h% f % ?2 i5 x- A/ l) `9 _
keep if dx240>`tempminp'
; t% g0 c; U9 Q, P! m7 Q' M+ m: ]
; }+ u N+ e9 q4 Y* G$ k keep if dx240<`tempmaxp'* U) ?2 j4 n7 u/ w' J( e- V
/ G. K% Q; M" o! [% z, n
keep if ddy240<0
# H% @8 {3 }, S
+ g5 a. Q: a! z W0 s4 B gen temddy240=-ddy2406 ^) N- ~- Q, }
: ]. g3 X" O4 A/ X
count
* d% T5 t- D* I3 ? Z* b& f : q/ G) O6 r# o9 J6 X2 J% x0 T
if r(N)>2 {+ k: U, K& T. c
2 L) H$ b3 o, ?9 _5 f6 M
pkexamine dx240 temddy2406 i6 M" N' R2 P
" T8 P& Z6 r- `" i5 [/ A9 l local tempminplddy240=r(tomc)( [) |8 g/ R$ p# W4 F& J
restore9 k& y8 L: y5 p3 Y) _5 [
}
" N$ G4 _+ ^- a( E6 Y 1 R1 f2 k$ {; v# o: d2 @ R/ g
else {5 A1 h8 j+ x7 K" q, q5 ^1 S. x A
9 i5 d- h. r; @, O9 j% a( U2 R di "cannot find pminplddy240"
! @; J5 \- W: j0 `3 }& Z, J restore0 v# ^' `: u/ P* b, Q# G3 B
+ z# q# O/ K( ^6 F% h
sum dx240
8 b+ [1 B7 q& g& M$ }& ] local tempminplddy240=r(mean)
: _0 g8 d9 U6 O) n7 P8 S+ `- ` & z+ t Y1 \& o! J% T2 p
! x* d; Q) ]/ m0 B* u }
9 u: F0 \3 f; }/ J; ^ ! c' A( c" g: U$ P$ u/ U' M0 ^3 \
! n+ T+ B9 q5 j" N9 s) \6 t3 {
) T- u2 b- q2 g. I1 K& b# l% I - c A& X9 w0 W6 y% n
) F7 [9 F" \1 `9 F gen pminplddy240=`tempminplddy240' in 1
* k/ T! ?0 Q# l9 ~/ Z ; l- h- x9 p# [2 d* ]) x: [5 @
*-------------ddy240pmaxp左侧高峰值 -------------------
( ]% l5 }$ w0 t) J. i* @
1 _; p% V- h# v preserve 5 U7 g: `6 [3 P9 Z+ l
2 @' k' p) k4 l! D1 a) _4 P2 S. _& [
keep if dx240>`tempminp'* V# F: L+ x! I2 Q. y' j! b' a
9 S+ s7 V- P) Z
keep if dx240<`tempmaxp', j! l6 |5 C, C
0 U* [' i7 P/ |% b3 t/ v# p) Z keep if ddy240>0
& N8 T K2 H+ R) b& w count
0 p2 t) x) X7 P9 B p8 A % d, C+ F: j" ^$ W
if r(N)>2 {
, D. I, G8 q X
6 k/ b( w( a/ B% x# ` d pkexamine dx240 ddy240& l- _$ G5 x$ t% W( p
0 X9 s# s; j1 q3 S! {% S* @. A5 H local tempmaxphddy240=r(tomc) $ A( O' ^1 x# W4 h8 N
3 T( ^7 N% P3 `1 F
restore
! d2 y- j% J! p' Q }
2 i. }2 l0 v0 s0 K
+ \* z0 l0 X. q7 r; w; h else {
5 O, e3 D* ?! R5 s/ p* m0 D 3 g# W9 d( ? Y/ S# L
di "cannot find pmaxphddy240"5 L) y& w; Y9 j# Q. f
restore
% S/ s+ C5 K! U+ ^& D
1 T: n7 M" Q3 s6 K H) Q sum dx2405 G k% j* B; H
local tempmaxphddy240=r(mean)
+ _ Y7 \, z( p! T# P
. _) Y# q% \; D, R ; x+ A2 Y5 L8 D" I' p
}
6 S2 h$ i$ I- ~# U/ R
+ ^* I6 g% i5 F4 Z9 H7 I $ s" K* \1 k4 Z( D4 c2 B Z
7 N9 t" B& s, w# J
& v; ~, I6 F9 p: }( i% n% |
- Y0 d+ D% A6 q: b3 T C5 E5 }. w/ F1 S. f5 s' M2 c6 E
gen pmaxphddy240=`tempmaxphddy240' in 1
1 L, A$ {6 J" G G* [ ( ]0 {3 _; L$ E
$ {2 F% q! u8 z1 t
*-------------ddy240pmaxp右侧低峰值 -------------------
9 C; H4 H( p0 N" D! I0 k, k( ~ t$ V8 P" Z9 U7 ]+ u& W
preserve
6 _* r% v( C5 H' N$ | 8 b8 R- X8 ^* o& D+ j' H: z3 \" c
keep if dx240>`tempmaxp'- r* _, z# p+ E& o) T) {) _, K
' Y$ I4 k! K' I) ^0 k! V gen temddy240=-ddy240( _8 u8 K# d# o. d! Q: `
2 u( _& g* ` i5 i! C keep if temddy240>0
, j1 F3 H d5 V0 n! ?' P- {, a
|+ b2 g9 r! T" }4 t$ _+ a0 Q count" S+ i7 \# J7 ]: @) j
3 I3 L' w$ }3 m$ M/ G, w
if r(N)>2 {. ~- i/ b. _: t: }/ A2 X, B
* H7 Z J0 e _' H# h& `$ J pkexamine dx240 temddy240 ~% F+ E8 v# E3 x
7 W7 e) C7 V0 Z) k% Y, U6 i local tempmaxplddy240=r(tomc) , I/ {( J8 W" ~* E8 {* t" ~
restore7 _3 p6 x* N& o1 P ^
}
8 l# C ?4 k# @' c
! e0 N% f- J2 P7 n) G else {
0 T9 c; e, m+ r restore
2 x/ V" t- H5 x7 l0 q di "cannot find pmaxlhddy240"! g7 C$ h# A/ i' R% X3 W
) M% T# A8 V4 |. B# f 1 F1 g( w( [/ \. Q, D# X
sum dx240& y( t) s9 b% Z' h) H- I- C
local tempmaxplddy240=r(mean) in 1
' _+ m0 K( w5 L% v) h! p0 ~% s* i
7 p4 r! k! z$ a4 s X
0 X- a% ~) B# C2 D }
% q: P# X! W9 N. l6 V9 M/ ]2 q( k9 `! O 7 M0 c% _ d$ j+ @
7 i5 y+ P2 h! S7 c2 s
7 o; E2 {5 n% W1 A $ p7 f5 @* z- w* k& H
- K. p7 D1 R! u- e6 E
9 X8 f7 r. j* U: ?3 L gen pmaxplddy240=`tempmaxphddy240' in 18 D5 Y4 z2 y7 A: E9 c( O5 e& p
1 o, S5 o; u8 q! N- ^" y G+ N; g *-------------------------------------
. S0 ?) O- Z+ A+ [ 8 z# g+ c2 C) o, M8 z9 Q; S6 `/ c* q
gen price5d=v5 in 1/20
/ f# w/ `: K7 b6 |. h
. w! k, v) B- Y) l" y# K& r1 ?2 ~ gen price5yy=_n in 1/201 ?, @" ^2 m# o/ B+ U# {
9 ^& e0 d& ^3 ]4 U' e h w: ^
gen price5y=price5yy*(dy240max-dy240min)/20
" X% c5 M* G0 O; t+ t) c, }4 e
; N. w9 E3 L& a3 X *price5y &price5d
- t2 F4 l0 x' {$ b
3 Q( l& [' K9 n# p7 z6 G gen priceny=price5y in 1
. s8 S+ U/ J T- F) ?1 |% h# o
$ F: J4 v0 y6 G# Q1 V gen pricen=v5 in 1
' T1 v6 g9 g6 O5 a. M
# c4 U2 x# X |/ ~0 p( `" ` / r5 Q5 E! J* m$ f! c) I- T
*priceny &pricen. E- l" W4 |/ r* {1 {
A7 P5 [4 [3 K* t+ \ 5 D8 z# h0 P! R; u
*-------------------------graph------------------. N9 Z+ k# M9 D
9 e8 ?8 B) l) k! 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)/ R2 p9 ?- G) J" K
" @7 }) r3 R1 J: z* ---------可选项目----------------------4 B8 C& z% F6 b' Q
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))6 R* O1 C2 G$ y3 n
}
6 x& G# O6 P: I3 }end) i' U$ `. M( l& d& ]8 T9 L
|
|