|
maodeng 发表于 2013-1-28 13:13 ![]()
& c2 N T( Z* x2 p6 x/ |/ \. hello 300236+ O: A, H0 o' X5 |4 V* b
statement out of context( Y2 D+ J( ?4 X% l3 J" O7 j( |
r(119);
( I- ~' G' {* |) I9 E8 a抱歉,最近太忙了 S3 S7 p; H# P9 I; G/ |
1 H5 }' l2 @0 ]" o% |( }3 Q
300236 我用下面的程序试过,没问题
V0 I5 m# X) @4 }6 q( p7 J
3 K* o. d+ |: D( v. F你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试( c5 x4 Z/ g0 ?
( b- S7 I" |4 a0 X1 kcapture program drop hello
2 r7 }, L- Z- Q& }8 ~ c5 j4 D' E0 L9 w7 ]6 m) K& ^( o
program hello' L0 D+ R( P7 C, _" N
4 q. q# @' y/ x& w( |7 T$ b- h+ t# ~ quietly {
) n& B1 D. O$ l! `( [" M
8 F$ x6 ?! d. ^( gclear: L8 m; n/ i. a7 n
& c8 h: ~9 E; u: L$ icd D:\stock\test\source8 N) K3 k+ T% E% F; u# s
% X8 Q3 y1 _, ?0 d. [insheet using `1'.txt
. L' T5 I" w8 {" j$ C( i2 Z% R6 G: m( K9 x2 C3 s$ C4 z
keep if v5>0
6 y( `+ M' \3 L , |4 ~; t+ _) B
gen vt=_n2 `! ~2 ^) i& V$ K8 U6 {) S1 u4 x
- M5 P' l, g" W# J" M/ i2 O" @4 | tsset vt
+ c U$ J P' ]- v4 e
9 b5 \4 K' ^: ` gen zf=D1.v5
" T. ~, {- x% ^9 M4 w8 g e( [4 A4 E# ^7 h: x3 B
gsort -v1
% B2 T1 ^* R$ z5 a
- Z3 Y* C i, t7 c' z gen avol=v7/v5
' _! p6 O/ Y7 s8 R6 `7 k
" X' j; b0 A6 Q5 ?; A2 Z+ g keep if avol>0
9 o+ L/ p1 \; Y% f+ s . |* V# n) n0 u8 Z8 ^
drop vt
( i+ s2 P4 w3 r6 w Y Q0 _7 Y; R
4 x c! n- s, [. R5 X gen vt=_n
}" y7 X u/ C* h) D
. [; X) J9 F3 X" R& T& ~ tsset vt6 f% f v* a: }9 j6 j, V/ W ?7 `
, k2 _4 s# z5 }; T5 @# B% ` sum v5 [aw =avol]
6 ], N/ k, B8 g- Y3 O- w* h) n# }/ }
# y) _7 O* Q$ z* G- U8 F4 H1 Y# ] gen amean=r(mean) in 1; k0 A. L) T8 H2 d
+ Z% X) e# ?! w9 C$ Q Z * 总加权平均值 amean
1 ?2 u; v7 f: k; ?" l 1 K& [. j6 s% Q0 X
/ D+ O& E6 X* F7 h
keep in 1/240" p7 A. x+ m6 U# K5 [ Y" I) o( w
1 M. l% E3 S" v8 p4 y' D9 a }
sum v5 [aw =avol]1 B" W& _' K' e0 o8 w, t, S
$ j. p; _- N. ^- Y, e
gen mean240=r(mean) in 1
" \0 [ s# q: A- s, G2 X 0 H7 M: g4 ?1 {) b! y
*240加权平均值 mean240
( Z8 k' h3 y. W: |5 C
1 I7 h' I9 y- o& W set obs 500 N, |4 y+ l3 i/ b5 C, @
# l5 S. d' d6 A7 h" j( ^3 R5 D
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
. @' I+ U3 c7 e* C, ]2 C. @- |5 C
4 `, M$ J' {/ N$ N/ g3 l *240 kdensity(dx240 dy240)1 b* O, a9 W0 t, A
. l4 g D7 f9 V4 ~2 t1 I* B
sum dy240( J7 ~$ x! ]' i6 H& C; B
( {& V2 Z. s6 F1 G6 X$ n0 u gen yxis=r(max) in 1
: b4 M' j' s- T) w7 u2 B
6 u. F) Z) D, I7 `+ m" ~0 C gen yxis2=yxis/2
4 i% M7 ?+ z/ Y' @/ `1 m % t* M& z' n4 I! w( P6 l; _
*yxis
/ l3 t: K# G1 u: f0 S2 L7 M D b% b- ~4 ]4 z$ w; X! i
gen dy240max=r(max)
$ N. b& J3 q2 j: i! Z ! f8 L: H9 g) R% h
gen dy240minp=r(min)4 O9 H- }, ^; X. }& B+ P
! P% k/ H6 C) s8 O
gen vtt=_n0 M! R( h! a& _' X
6 s! c1 }8 C/ E- F; N
tsset vtt" C8 d( f1 @$ }9 d0 m$ \/ z
2 F w$ {' F! ^1 w
gen ddy240=D1.dy240/D1.dx240
9 Q9 p8 [) G$ U Z4 E0 t% A7 r 1 j1 ]2 r) W6 l6 Q! o4 h/ ?4 J
sum ddy240
3 }- @, T7 ?2 ~
/ q% i9 y* J- t7 |8 d gen ddy240max=r(max)+ }0 d7 W7 p6 h( t" S: z
! M1 b5 L8 g/ _2 W6 b/ ~ gen ddy240min=r(min)
+ L- T( V0 W' F, s% O a3 ~5 g
) S% P# ?. f- [7 H gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
1 G8 z' }0 K J
" P* `5 P1 X4 E3 A- X5 n sum ddy240g
1 `( ]3 U" e k2 C
$ B1 k! Z6 _- b0 ^' y gen yxis3=r(min) in 1
0 b& n3 m7 T. y
1 `( j, G6 G, T' O/ J1 {2 C gen yxis4=0 in 1- v/ O& [% X6 n" Y
w5 p- d9 z. W# w/ [1 E$ s6 ^' |& J1 B
*ddy240g ( b5 K9 p/ W; h3 H
: x0 o6 c: F, l1 x" A& N
% u+ }. U7 y& I# Y& l& D# y U6 P
preserve + L% O! y1 b" _: u
2 r* {/ w0 E, a5 o2 A
sum v5 [aw =avol]( B; I3 G$ y" @" q
+ D+ G% {9 l6 ~
keep if dx240<r(mean)6 m0 m6 ]3 y1 o# N
8 y' {6 ]# r8 a/ P sum ddy240% N3 X0 Q: O" J0 S1 M! F
3 N; Y3 N. A& Y' U R
if r(min)<0 {
8 l8 Q( t. t/ W( A' n# p & z1 r% n$ u% v9 c4 \ B
keep if ddy240<=0/ b e. T9 |( q1 w$ M
6 q+ e( W* }7 n, Q
count, p5 s6 W% K# G1 q( `; `
. a, S: L1 w* e3 }2 b8 L
if r(N)>2 {
, c1 ?9 F( Z0 ]" c
1 `# E! @3 c5 D* d0 o4 H1 ` pkexamine dx240 dy240
' I4 S4 J5 P0 Y6 C
9 n6 Y0 C- C& B2 D" q# V7 K local tempminp=r(tomc)2 t- _5 o! ]$ _! M$ \
restore
- y. K) I. M) {, d }3 l$ y0 q7 @0 ?
- Z, g+ }6 L3 ^' w4 |
else {7 L+ Y- U9 e2 x$ k% e# g+ U
4 G/ m* n& z$ | di "cannot find minp"3 c! x _# B8 F3 T) T' _
9 \. K1 s; O) [" M6 @
restore
' T2 e, Y0 O3 r# |+ p sum dx240+ h5 j" B5 b! B! g. j
local tempminp=r(mean)8 u% N$ k0 Q8 a; A
% F* i5 r7 w C- a8 F }
. ~4 N9 P+ T- L5 q% Q }
' w% D7 Y1 D) _ else {1 o I# X; ?* Y2 f n
2 P3 B F* F; e. B* R. h keep if ddy240<=r(min)
2 e: o/ Z0 `9 _: i2 @4 x) \ : J+ b, ^4 ]! x$ q6 G/ }
sum dx2405 Q4 u6 V# \0 Z7 k! w% B
/ C3 I0 b! e4 v* o2 x, A) L3 F9 A local tempminp=r(min)
4 u; B8 H* H4 o* Y8 c restore
% V2 N" C* I4 t6 C" ?0 v }
5 |+ t/ B' ?) G! N1 S; f, t( l) j5 L" u% S" y: O
6 O" j W2 g, r/ i |2 f* ] t8 r
gen minp=`tempminp' in 1
1 g+ g' N- p0 z9 G3 i. ?; V" Z *240 minp* {" L0 p" E7 G* ~
$ `! x' l7 o; O; Z0 H1 o1 ^
3 q4 d4 z5 z. K. E( w+ \: {! L
' W9 r- n+ p1 P; G& X5 U" X) \ preserve
: h3 }- |3 a* E$ J7 y, R $ N0 O! [! I6 M/ X! L$ H
sum v5 [aw =avol]; ]4 @- m* Q- Y; D: B
9 r" B. }7 z h; D# {) ?0 j# j keep if dx240>r(mean)
% y! a2 ~) v2 h
3 k8 }. R8 `: W' N8 [& d# x; { sum ddy240
7 D5 [7 q# s( L8 Q( u
- `) x+ I& X! z- L y, x if r(max)>0 {
+ p/ i! H V/ B/ e' @* r $ W" o$ K' u" D/ S) G
keep if ddy240>=0
/ c3 F8 ~" }. U6 Q9 _8 D. ]) |
+ Y: q& b" v) U: W: l. i% a& S count# w2 W8 N* b1 {4 T5 Q/ D- a- ~
( u3 l6 O- J0 q+ f2 x4 U# X" \# n! @
if r(N)>2 {
: d9 [: b6 X+ l: @
$ L# t# ^; |, J8 A- l" C! I pkexamine dx240 dy240
. G( M4 X/ }) n+ @5 b" o . @ P+ I+ W" i
local tempmaxp=r(tomc)
: k) X7 w) P6 ^. [0 p0 b4 w8 j restore - u2 p, ]9 t5 y8 N4 G
}5 u. \+ k7 E* d5 ~3 C( B, v
& ^3 [, h+ R# Q: h) N
) F5 w: |% R3 b1 } H else {
- Z" u7 Q+ Y2 z+ } restore $ t1 I, l* M9 g w$ b# Y6 f1 |" Z
di "cannot find maxp"2 U8 [/ h8 Q9 _ ]# x+ n' A
, t6 ~/ m8 L$ {1 _
6 T+ S2 b4 i4 ?) K. G9 q
sum dx240
. p& j, l/ U- f, O o+ r% [ local tempmaxp=r(mean)3 E \$ Z; H3 O) U+ e- q
% n2 |0 Q% H& s( u. B }
# X0 D! M. t1 D6 U3 h
* i/ C) `' I ?# c, e8 m) l }4 g9 u( G$ b& K( g: A% N
/ `0 S1 A1 V1 E! U8 E6 s: D
else {
; U. E9 j+ i# ~2 P1 a" j % F0 |6 f9 w: P9 g' m& p0 g* l
keep if ddy240>=r(max)4 x9 ]% i6 @- x9 ^; h; N
/ ~$ A0 g1 S! ?* A1 f
sum dx240$ Z/ r% `! V' I% A L
! z" {" H1 |1 ?
local tempmaxp=r(max)
: X' w& C: c# M/ G0 B% D% B restore
$ F7 D5 e8 F( L# H1 n }% c B' M6 v6 \& k1 G2 Y1 S& f
+ U, z. i" l- C& R7 ~
; e, C' D" w# I0 d
9 C; L/ M& } W4 j# l" C
% t' \: K0 r5 `$ C' j* K( i% A gen maxp=`tempmaxp' in 1( c5 {4 `' X) x- i) W
3 \ |; I; }4 v5 ] *240maxp) d. a3 I6 q( C- Y0 H! R
/ `/ C* ^/ R( c8 X( L) V+ L
' u2 }8 S2 b. W" V2 W3 _
*-------------ddy240pminp左侧高峰值-----, b8 F/ O+ l8 C" i+ @! v" c1 y" w
# N) A( I, b$ e3 Y/ e# U preserve 9 f4 @/ }5 P! b" ~( H& d$ g
9 P3 Z Y: F1 G9 U% o keep if dx240<`tempminp'$ o* `4 k+ J. Y( Z% |
$ H4 x" G( F- W8 F. W( x- T keep if ddy240>0+ }. U8 Z. m$ c8 K
' D. X) W1 e) T" M
count
' \9 D3 t" r% f& h% J
4 u e( L/ w+ F- X5 p if r(N)>2 {4 s) f9 U) K6 T, s5 T1 {8 q
( ^) x2 \/ D6 h1 j* ]
pkexamine dx240 ddy240
3 J, X+ A3 E B0 t
7 q% u! T- {, |/ l z* K* N local tempminphddy240=r(tomc)
4 x' c P- Y- ~( B" x+ G restore
! y+ v9 l% U/ F9 I }
f# T' r3 r. G. Y ) L _! j! l0 T, ^2 m+ Z9 R
else {% |2 T% {% r. S% I d$ `# Z5 |& Q. }8 S
restore
( b! M* p. D& C di "cannot find pminphddy240"! ~) q M6 W H" `+ Q
4 z: p' X6 T& b% e- S7 a
1 ]& [( J0 a; s0 J sum dx240
" f- A! H5 w* T2 T local tempminphddy240=r(mean) $ w& X# O& F* b( A2 }
8 d7 T; @$ Y% B2 D# _ * H6 T4 S- U0 B& X S( z2 c. J5 q
}
) K$ a3 G6 m4 C( G# a3 b+ m- H- ]
% L1 q+ k3 \3 g# b! h" u
3 X. Z% z f/ n2 ~ # u" r) A* s) r6 @& j
& Z3 N( j3 v" x) b
7 R; K1 r- S+ I4 ^3 b# G. G+ Y- A5 O
' T( ]" m; @) ^, E# i
gen pminphddy240=`tempminphddy240' in 18 b3 E" F4 Q1 D7 z. T6 m
5 w; Y& W% R& H1 a0 g0 b + |; R( w9 k8 I4 u6 s6 }
*-------------ddy240pminp右侧低峰值 -----------------7 {5 N" ~+ m9 P% I$ N
preserve + T* ? |9 F8 d) B ?' S' x
- z4 B& c- m/ _7 l' Z5 V( Y keep if dx240>`tempminp'
) t ~+ D, M# J0 P4 z% ^
; g! V4 _8 m$ I. N, p4 j9 b keep if dx240<`tempmaxp'
% A0 b3 D( o* x K' f; _ * n/ e3 c7 j1 T5 n) a- w6 t
keep if ddy240<0
! O* q8 O) L8 }1 n9 R: ~ ' a1 W) Z5 d- R" C
gen temddy240=-ddy240
% e- B1 v$ v$ J1 I6 e' d0 E# C 8 V8 N% @) w, I( V9 L+ z8 j2 C
count$ J. W$ p. D& y7 f& v( ]# b
0 O8 r- V" \! P+ V/ @( }+ k% p
if r(N)>2 {
7 h; V9 T. V5 U2 x/ k 4 K# C& W- Q6 b6 x- ^/ T& C* C
pkexamine dx240 temddy240: |- H4 M8 ?* D& n
" [ ]$ N% G9 H
local tempminplddy240=r(tomc): `7 I ]; X/ X+ {
restore* J- S5 x/ g) v3 ]- `5 X$ r& y
}
% J9 f0 P" v; V; t0 V9 K; A# E 0 p6 `1 }( M3 E
else {6 l, E! B9 i; F: F: O: n" A5 d
) r* `7 v" ]% Y: d4 D
di "cannot find pminplddy240"
. t9 P; l3 i2 ^$ I( l restore
4 t& y; G ]8 D/ U 0 e& j% u8 J+ a+ j% W5 r, o, Z$ r
sum dx240: |5 Y0 u% F% ]
local tempminplddy240=r(mean)
9 X% U) x' e7 p! P
7 _% l! \: k% |# h- [% V/ g 4 _. E0 e2 s0 u+ Q: k# r
}
1 N. Y c) Y) b6 [$ q9 N
! `3 \4 \( J3 |
: `; [' c; k, x2 ]1 l- C# z, E 1 |* k$ S8 a3 z3 r
, \& B ~+ b) L* `: Z
+ [' ]! S1 k% H- {% g0 C6 R gen pminplddy240=`tempminplddy240' in 1
7 ~2 F8 p3 `: n+ u8 }4 d 0 Q% g. S4 }# H; S/ l
*-------------ddy240pmaxp左侧高峰值 -------------------
& N T. F6 l3 q 3 v4 G6 Z" k1 q& h! B
preserve 6 d+ @; ~+ A9 U3 }
1 a+ |2 G) B* C& ? keep if dx240>`tempminp'
) [6 n9 v3 t& D/ c* D/ S+ {6 t
& X. h) D& M! |' `! d! ]- P# W keep if dx240<`tempmaxp'8 W6 a+ G5 U3 U9 s
: ]$ {3 S, d! [1 P+ V1 X/ Q/ g keep if ddy240>0
( z* x& t6 K: s count1 O7 B* R, C9 l6 X0 W: B6 e* q
% Y/ Z: m# m0 Y* @' d+ [3 s
if r(N)>2 {. L4 a! f+ [" j G. {: J- x! t
6 _/ i2 j/ G0 s/ e pkexamine dx240 ddy2401 B* y+ u" F$ U5 q& ~
/ }& p5 t$ H5 _- v2 T, r" z
local tempmaxphddy240=r(tomc) ; A5 N: a0 t: u- U/ S0 S/ e: K$ h
* i6 r" z% N, ^5 w) }4 {2 j: {
restore0 q9 `6 m' U3 A# W4 G; a0 l+ X
}
( H" |. _1 N0 c8 z ' Z, B7 m) m6 g: s% X. o2 g4 `
else {+ N: [( n5 C7 ?: u
! r1 {5 w" E' K0 Y$ [
di "cannot find pmaxphddy240"# D# ]6 x/ i$ V) @% W) E- D. U; i7 J
restore
2 C2 T+ N" C9 m8 d* p, x
, y. W8 w1 R/ \: z7 E, u& t% F sum dx240
2 ?. w1 X. f& D4 a' Q; e; Z local tempmaxphddy240=r(mean) ( Y$ }' d( ^/ n3 ^1 R H
- U( [* d! A1 A8 Z$ ] ! C# j+ y; b8 ?& o7 m
}
1 t0 C1 A4 z! j" r3 F6 M' a ' F) z9 J. g9 p' H4 \. g6 w
& H. F$ u$ T3 K9 c6 Q" y
; v0 x3 V5 M/ d , V4 u# d; C5 W7 v- Y. W8 B3 i
, z! I+ G+ o. E2 b , `; F7 C3 [6 |9 ]2 Z5 W3 k
gen pmaxphddy240=`tempmaxphddy240' in 16 q$ z# g% _+ f
# D" J+ \7 r6 G/ e7 H$ e
5 |2 r( _6 h& R) ~( Y6 |- Y *-------------ddy240pmaxp右侧低峰值 -------------------
* @; \, Q+ ?) t. c / E; _$ ~; c* \( c1 I) e6 ]
preserve 9 k' S# S4 z9 u5 v: I& D7 @$ f' e" o+ P
4 `* C% [( R9 t; `9 T: s
keep if dx240>`tempmaxp'
+ M( z% q) `: r# P" i# J; [# w
' I9 P( \' H$ E G& ^ gen temddy240=-ddy240
# O$ ~0 c, {7 X' Q 4 u) N, S% b; G5 p" n
keep if temddy240>0
5 Z8 _' ^, F$ c( Y: V# E
+ q- j4 C; C3 A5 Z3 Q0 h count" q5 h# W/ x, ?+ B
$ j$ D: P' n, \6 I' n. F9 d/ S
if r(N)>2 {/ z; P1 x1 S! `' U/ H) ]# @1 D
" r" y8 `' N* g. P+ ]
pkexamine dx240 temddy240- n/ ]" v3 A( T" u
' Z5 A& [/ y( K0 P% x
local tempmaxplddy240=r(tomc)
2 P3 _+ q( E9 M, P c+ B) ] restore
# W& V1 S% o2 L# K/ v, v4 V }0 R! c4 N) U) A# ?
3 P H" z1 m0 v7 g else {
8 B; q: W8 E6 M* u. u$ \+ \8 m9 I restore
9 Y/ Y: S/ o3 J: u; j$ z2 y di "cannot find pmaxlhddy240"
/ f9 v5 v( _" m+ z" D: W8 W 2 f6 N6 T1 ~7 f/ B# e
2 Z; w6 t. n _) T sum dx2402 A$ T8 f9 j4 Q- f* R3 Q' F
local tempmaxplddy240=r(mean) in 1' B) i% s# [4 i
. ~$ e! J8 b. i! N
0 V7 Z4 e2 ]2 }7 W' `' M
}) K6 t3 ]7 w9 Q6 F
0 q2 V, D3 q, m4 e% b3 t( t" T2 C , k' i! J h2 F \0 X5 d
0 a g3 f. X% c. i$ T7 A5 f - S' V# P) j" T" ^8 d; y7 X, i9 H$ z
. R) \5 S3 p: H6 I5 y
# ~- e7 F# F$ w/ p) G5 b! a S$ ^' c
gen pmaxplddy240=`tempmaxphddy240' in 10 U: S5 g8 V7 H
. b0 N1 n4 o* ]" I
*-------------------------------------
. w) Z: B R/ `, @* {; v0 h
, g# U, a: Q( S0 Z gen price5d=v5 in 1/20# v& H% S& @, ]: I' v/ R/ }+ b: Q
" `% ]5 y; r* M: i2 H
gen price5yy=_n in 1/200 V" S5 C* F: _3 r$ n
' F' l+ h0 p7 R }# X Z
gen price5y=price5yy*(dy240max-dy240min)/20
1 F! y4 E& X! a, V7 b
5 X9 G1 m7 X; ^ *price5y &price5d
6 b( e" B" X+ x* k9 Q
& N# V, b4 e3 n% s8 j( V/ ^" _& j gen priceny=price5y in 1
. v! ]: `+ X: k; O # v$ K4 q+ ]+ i; I3 e1 i( j
gen pricen=v5 in 17 ~/ Z6 Y) @$ Y5 Z/ I- B
" \2 K. Z* W1 |. y" W
# g1 m4 q( X7 Q6 D8 W
*priceny &pricen
/ y, t1 `& P6 ?& h! \# J+ N
! P8 d9 C) b, o' M
7 @. T: n4 C. e8 V/ K* o *-------------------------graph------------------
) d& L- f5 o" v8 u% `0 ~. p9 J
1 W; f" i- b1 B' W 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): j1 l2 k: I" \7 N6 E
* c5 g* |5 V) S5 ]; t
* ---------可选项目----------------------
1 |* \' Y% m" E0 o0 I0 o*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
0 ]: B( R) b; m7 }) z; ? p}
) V0 P" @6 n$ R' Q% |8 c6 Cend
8 q i* G& C! z. i7 m |
|