|
|
maodeng 发表于 2013-1-28 13:13 5 V U) y( S7 Z
. hello 300236# z! F! t: F1 l( F7 F) }
statement out of context
( Y0 q2 M) m- M8 pr(119);
: S3 Z: M3 }+ J" [' s% J# r" j抱歉,最近太忙了
* U$ G/ y% Q8 e8 c, M9 u4 l* d z7 u' M, p6 |. h; H
300236 我用下面的程序试过,没问题
7 x2 L' b8 ^: r3 O
1 L n; G, s( a' F1 o) J你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试# _( L5 o1 u) r) L% L1 L4 N
$ l% D5 v( w, [' e) I
capture program drop hello' ^4 V p* E* w9 n. m
& D, g$ E, h7 T+ X% g2 E, Xprogram hello# q+ W4 O! J: q
! T4 ^6 w) D8 Y N! d, \& m$ S$ @3 j' V quietly {; F* l3 E0 g d5 U! s
. R" ]6 i5 p" ~% N9 _( jclear
y9 h: s6 x6 ]3 e a4 b, `; W" E% _' ]
cd D:\stock\test\source, Z" N+ f h" Y" M- \
$ g; w& Q6 d* T
insheet using `1'.txt# {. I; _" e! p9 Q( B7 h3 @ O
5 R$ Y+ A' D- e- r
keep if v5>0# t- N& G+ H T" ?
( y; b# c6 I; e) P( `6 H0 Z) P7 G
gen vt=_n) A" ]" k8 T U2 `5 Y$ [+ O
/ J- Z& P8 F* G0 R* \0 I) ~0 L
tsset vt ]$ t0 J/ O7 k! i" _2 [/ Y6 B
8 f2 N o2 N g+ \+ |
gen zf=D1.v5# B- b7 d2 G p* ^
) L% c. P4 ^# k( c H- G" ~/ Z
gsort -v1
/ _+ M- g! Z# d; S8 P
Z/ D2 p2 f. y% ?$ S! a gen avol=v7/v5
# U0 _. a7 z' M2 q7 `
) [5 D1 @+ d/ m* H2 _0 V' f! E1 ^ keep if avol>0+ c) d/ p; E: v; A% u6 \4 i5 S
, b5 |$ e4 n6 j. c [) z) t3 o drop vt
. }4 L m, `# ?/ s 2 `1 c1 Q1 k$ i) G! P0 I
gen vt=_n
& A0 C% Q% T' S
8 _, H; R* T: l2 a$ l/ x& L tsset vt0 Z4 k- B1 z/ q, n+ C' t2 S$ H8 h
+ U- Z' \. a6 B" i+ Y9 p$ K+ v- E
sum v5 [aw =avol] |* x( ?, |1 w1 ?+ ^# K; t
* K$ c3 v; W$ ?% S) ~- F4 k) y( P gen amean=r(mean) in 15 l, ^7 R8 y- ]$ e1 J
; l l* l6 ~, J/ R8 V
* 总加权平均值 amean
- j; w4 C. M2 ?$ B' M1 {
( C3 |; z5 Y7 E& d% {: ]% x A
2 w0 s1 z. ~) ]: a8 V1 [9 D keep in 1/240
! G7 g) m3 q. _ v, O2 w+ r
, D2 ^/ I/ y: R! ?' }$ D6 J$ f) y sum v5 [aw =avol]
& j+ i4 M) g" [
, J1 i) H9 e& ?2 } gen mean240=r(mean) in 18 M# V4 d6 E6 T& H$ w' z) u, n* p% l
* _2 ~ u; f" Y1 I* O& }- J
*240加权平均值 mean240
) i4 t3 c9 v( a" ]) _. o 7 y v+ z! M7 X5 w r: E9 ~3 N
set obs 500
. j" ?, G4 W/ }6 j8 i
2 i/ _; K: n) }! V) P& o9 h% L kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
& C8 z6 W1 `9 g q5 | " u' u% _: Y+ y: q
*240 kdensity(dx240 dy240)
. q) M5 Y, Y# { f. O8 {0 T, x" K
% R! U+ C' L* W3 y: I5 o( C sum dy2403 Z8 k4 b9 Y! F" P% B$ R( D* L. H1 A# L
. l6 T+ ^, @& h R5 B3 O9 ^7 ] gen yxis=r(max) in 1/ s9 |+ b V; Q. [) A" e* N' o8 ~; L. t
- n8 ~ L8 N( K6 F
gen yxis2=yxis/2
3 f0 w3 w' o/ W
( ^0 U4 J5 W' Y3 q *yxis4 i$ e5 U' _ R2 D) a2 F% l& F! h6 z
. u- g% A/ h4 b: \
gen dy240max=r(max)
& _4 L6 o4 }6 W0 E0 ]4 ]: g& D8 Q% ? ' N2 ]4 D/ m6 j" e* W' Q
gen dy240minp=r(min); e8 @5 S, {& f: D4 M
, r: e2 e5 z1 L% k gen vtt=_n3 x) B9 [/ g1 e7 ^* N
8 S- j$ ], @' J% W+ t- x
tsset vtt
& S! S: Q" e2 u6 B% y! v+ R4 s- c1 ^6 w5 T% S$ Z
gen ddy240=D1.dy240/D1.dx2404 k7 N7 r% F5 C) |* B4 \
]) U' F, v1 N! N7 g
sum ddy240
0 ^; t) |& Y$ O
4 W* U* r3 T; @+ j7 M gen ddy240max=r(max)9 ~" N6 q# J2 _, C d2 o
) v$ Q9 T, r! P2 d+ c ]! ? gen ddy240min=r(min)
" S7 }* z2 `* m/ u2 j ) S2 x& l3 @# T! X, Q1 C
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
" c% m: Z* t- N( O
: A+ `0 x, Y2 Q3 i sum ddy240g
% T) W6 [' }) i1 s$ g9 H) }- W 7 ?/ B+ G; j! k1 @% s
gen yxis3=r(min) in 1, G- W$ d) O/ X$ O+ l9 t u% I* @& j9 Y
3 a4 _( \9 m* K* K3 n/ r
gen yxis4=0 in 1
1 q8 R! X2 w; Z) O! I: j/ e
% Y( u# c" w$ } *ddy240g
' e; `: e, C$ S
- W/ [# w' }8 D& T
" h, Y" x" H! ]% [* Y: O preserve
5 X K/ ^0 n/ S: a) I' _ 8 ]! l# V; V9 U. P) k
sum v5 [aw =avol]
( ^) r7 S5 f, ~
0 P$ S: E2 q9 ?" l keep if dx240<r(mean)
: ^9 m0 B2 W6 R% `+ J7 _ . `" Y. B- S% Q$ |3 O0 T
sum ddy240
/ q' {( [2 `) t$ l0 |7 ]: }2 \( j
: F% \ o* o2 i- G% D) w" b if r(min)<0 {! o$ K+ c2 P0 D7 r1 p
& V d; ]4 [6 S' y$ i
keep if ddy240<=0
, s( w! m# E& m 2 R. H6 b1 b3 b, p$ ^$ \- {! K
count% ~8 d3 M r3 ]. F( w
% v' [# B! F! `3 I* r" G/ K& j: X if r(N)>2 {' E% m' G7 M& p/ H
( w" A! m4 e3 \ pkexamine dx240 dy240
( | V3 S, z. o # `4 J- Z7 f: i) u/ \; U4 h2 H2 D
local tempminp=r(tomc)
f# ^# `, L$ \6 \% U' z restore / M4 Z' X5 l( T9 j! Y$ G/ a* u
}
! {4 O, j0 j5 l- U" {9 h/ s
# A4 B: E" a' K% @ else {
6 J. x' ]5 D/ ?' t * Q- f/ _1 Z3 J7 X/ l
di "cannot find minp"
% f6 l% w: v) ~$ ]( J Y/ a# \! t
$ [3 r: Q) }' E( g7 X restore : A: U! x u0 u: k
sum dx240
2 s1 @( E7 V- n E local tempminp=r(mean)
9 c, O/ |% R+ w# l2 ~ ' n& M, H F" U- s2 Z0 f
}
% Y# Y# N3 U0 \+ j5 H- j4 i }3 _- b; m7 W7 p" C( `2 F' C
else {& l3 V6 I( G- d% X8 T
! r) \1 }+ M5 s( f5 o4 v) P; Y4 r% V
keep if ddy240<=r(min)
) y% i1 g: P C. Y
, e F9 f+ s9 n6 n& w8 i sum dx240
" @# N, n$ C7 D" H: e
& E4 c: U2 M4 R$ O' J% x9 Y local tempminp=r(min)
* f; N0 s( C! V0 V# U2 N restore
& v d/ X0 F) M- p) `; b }6 M1 G& S; w, U8 m
2 {" f" l$ l- b# c
+ F' v( g# b; N1 P. t+ T0 B3 H
: M' E# ?! I4 H" k8 e- A gen minp=`tempminp' in 1; q" p O0 {! e% O- f% U6 C( e
*240 minp
7 |5 d! D! x8 A; T# v% t# q% U! I1 c, }- @
8 O' |/ n0 H+ Q5 L
( y$ v, s/ K5 L5 R' P
preserve
, H, H& b5 `# u8 C+ Z8 r" Z + V& }2 a+ s: U. @
sum v5 [aw =avol]
1 \( f5 t2 p% h8 m ) F0 h: [& d5 W" p* Z( |
keep if dx240>r(mean)) ^$ k. C* h, v9 S
% X$ y+ K& H; T4 x K
sum ddy240
9 W o+ E! d6 }* v1 m l : l$ s% O% y& |: S; A! |: E* K
if r(max)>0 {4 O. o6 U( K8 b0 F5 E/ t
& l5 G7 o6 i/ y3 N
keep if ddy240>=0
; D8 G2 _, G, [" N' d ' b! I3 q( L% l- k+ ~0 \8 J
count
* B* D& ~8 R0 B6 U& E7 Q7 ]
/ U+ j3 p% [' @9 d. Y! G if r(N)>2 {/ g, T: X8 Q8 u" `, \, R D
, K& z1 K0 v" n- E- z/ E pkexamine dx240 dy240
6 {( ~5 |. |/ d" Y8 i
7 U: y2 I' B: ~3 b$ p! e6 v" _2 W local tempmaxp=r(tomc)
3 x1 z0 }% Q1 q" } restore
" V; b3 G' v) C1 Q }
* g! h; \% Z/ ^
, [2 _/ f4 ^; {3 f# t2 r* v# ~! K- x0 J " g, O8 s- I5 U9 X8 J( B2 L
else {
5 p$ C. q$ D1 W; z4 J6 o restore
' o" |0 k; v$ |- ~$ I di "cannot find maxp") P* B( m1 q: _% }8 `9 A
1 H4 z& J$ M' L$ s8 _
3 l4 P9 ?; _ S
sum dx240
4 |# e+ ? V% R" Y, O/ c( X' q: v local tempmaxp=r(mean)
t5 K( @; e5 W u# E2 V/ Z+ G/ H/ |
9 ^! t2 N+ z" d9 C9 m }$ E$ t/ a" \9 b% i$ ?, m3 X
; r2 P$ Q) V! \7 z) ?
}
6 }/ R' e4 s) O% A0 [8 S& z( x! O$ n
+ h* g6 c% H# b! R! K else {
; D! K% O& m$ S5 L4 p: s3 ` 3 ] c! x( B& a" O% j* Y5 n6 Q
keep if ddy240>=r(max)9 K- ]% j5 y. W9 p) W% _; N; ~% c
2 h$ c, h$ J9 i" L sum dx2403 p. |: [9 T* f9 R
0 F. r: p1 |4 H; y" k local tempmaxp=r(max) " `/ t8 r3 m5 [: b- T) @$ f; u
restore . e4 |6 q6 d; \
}8 `8 b0 ]4 L l8 m- b
- C3 h2 M% S7 f% A
" v+ D; ^- i( @3 \2 h4 F 7 {/ k2 x3 K% K% v. h- |
! q( D9 \% K- } z" V; h
gen maxp=`tempmaxp' in 1
" N+ N/ \% h, {2 N - ~9 e* @- X. a9 i3 V/ ^2 ?% K
*240maxp
; B+ n1 C- c+ ^& I. l
% G9 v: p. N! F) N4 T 6 R9 o) \% ^# ]: c
*-------------ddy240pminp左侧高峰值-----
1 I. X. N6 Y' t9 w $ i9 w9 i% U) }# u+ p' d9 K
preserve 6 h4 I4 p" [* B) y. F( s9 a' d6 t
0 o% N# f) p% Q/ } keep if dx240<`tempminp'% Q1 I# Z" W: {% Z! ~) \
& ^" T& @( s8 o keep if ddy240>0. J+ y/ r' g% w& Q
# Y8 e. D! d0 x
count
3 U/ u# i9 y( `; `/ ?3 j+ }2 V" C4 |( o. ]
+ E7 \8 A9 _: i: q if r(N)>2 {
2 _# J1 b# \( f" _& N8 u6 M. F3 d
* i- }% w e, ?6 W pkexamine dx240 ddy2405 ~" X q, ?: g
# e$ D3 M+ T1 h2 b" g( d
local tempminphddy240=r(tomc) : {6 T+ Z- J( h0 v) Q# g
restore
' {7 E, k8 g1 E- D! J! [ }
' C5 Q5 B: O" W- F$ [8 k
0 K+ `+ y/ X* N2 P* t# R else {. D6 _# ^. a0 d- H4 `9 t: F$ A9 t2 y
restore
4 s3 ?, W$ |) C3 r( T+ W di "cannot find pminphddy240"; o/ M5 y) h. n# G6 J# T. u( e
6 K0 a |6 X9 q6 L" n0 a 2 e; n0 \! Z' B% ^: N$ R% g
sum dx2403 Y! Q) a: d# \8 q+ q& V
local tempminphddy240=r(mean)
7 T5 W/ T$ Q' ^" \
$ j. {2 w; R9 [" R # d* C) j+ W. D/ d
}7 }) @: j0 d% ?" o7 f2 J
5 b- K2 u: a, T N- ~
' O& ^# K$ B8 R" w6 A% n4 H) ~$ k6 x 1 W) Z0 R; p+ Z# M- u/ A
; d6 Y3 J* }0 s; _1 }8 K 6 v. B) T) S' v. R* Q- m) A
/ K! u4 ~% I/ j0 {/ U gen pminphddy240=`tempminphddy240' in 17 _4 Z# ?4 R) q) O4 G1 R
' ~# ^4 n- ^0 [; r
% |: |$ V7 t2 a: Q *-------------ddy240pminp右侧低峰值 -----------------' y/ K# P6 t0 B3 }
preserve
" W3 e) o( u2 o0 p; p9 A/ u
8 _" V4 y: G* P5 i! k& ~3 h+ A keep if dx240>`tempminp'
: X5 ]: _; r* d) {
" z# c! ]' ~8 [8 C8 v$ f keep if dx240<`tempmaxp'/ y8 L( V6 |. R6 a& m
2 Q' p9 x. \% R! j keep if ddy240<01 V9 f u# R. e" u8 h; T0 v
( w: }) H2 n7 |6 |, @ gen temddy240=-ddy240) h: r& `: M% B! |8 E4 e& G( U
& P. j+ }+ p, H- F5 C count
. \$ \$ P3 l: ^0 S, v 9 m* N! e. i! j% D" g
if r(N)>2 {
% M3 g( p% g; @/ r* {% T 9 M) l( e- ]( S: J, j
pkexamine dx240 temddy2404 D7 U1 |7 }# A* ~
. S2 b$ `$ \ s3 Y+ H. B+ r5 D
local tempminplddy240=r(tomc) w# l7 x' _) F* N) Z
restore% G6 ^& h% `+ B
}# b4 P" S5 o1 r0 p( c) U" O0 Z
3 o* D+ t: ]1 y/ F) u' ? else {+ t8 E" Z9 ^7 j4 ]5 P* V1 Y
8 o( o. i) [4 \% _( Z Y% \/ a
di "cannot find pminplddy240"
* b5 w+ M+ W. R9 P restore: W. O3 H I w4 A0 |; k! d( D
9 L( X8 a: T; B& u; |
sum dx240
4 m) t! z8 y9 M. I& T local tempminplddy240=r(mean)
" E7 p" J4 h) c1 W& V3 k & a# p+ k6 y6 q# {( p" D7 _
1 n1 Y+ M% k/ g- c1 A' v: i
}" R) f7 @- ]3 t: c
; f4 S8 m2 ?* {# \5 U8 h
) g, X' l0 d% x; T% }
, M8 P- }4 F; I. z4 U( K. J
0 c1 f# A# v; q e! y7 E
2 I! w1 ?7 I8 w* o4 J gen pminplddy240=`tempminplddy240' in 1/ M$ ^7 R3 y# J. J* V* H& ]6 u# U
0 i; e# F" C4 Q& l. k
*-------------ddy240pmaxp左侧高峰值 -------------------+ l$ q6 n* t' e x. M+ E
) W! i6 k: X, S2 _- w preserve 8 J) T* w/ H5 x! | {2 F
1 B9 g4 ?4 M; {( t+ `
keep if dx240>`tempminp'
# g8 t8 F% ^* o5 Q* U3 R- @+ X
! l7 |! f/ F) L/ h5 M! X keep if dx240<`tempmaxp'
7 x* F# u* p: T / U9 b j/ x0 ~( i& J
keep if ddy240>00 L+ C4 f$ ], Q; D. Z( T
count
# a8 r5 W/ t, z# T/ H
0 r/ p4 G/ @- {8 p3 r0 V) ^ if r(N)>2 {) X4 A0 @. k! [. E& r+ @
2 f. M h2 m0 L/ \$ M% H0 Z
pkexamine dx240 ddy240
5 c3 L! K! ~( Z 1 z- c6 F+ X% ?
local tempmaxphddy240=r(tomc) 7 \! z! ~+ f# ^. t6 ^' M
# g/ B+ }8 p6 G) n+ ?6 e2 Z$ ]5 u2 i
restore( ?; H9 W/ N o6 _
}
o n+ E* q+ k, Y `6 _6 x
$ y- z) c/ A$ u8 T* Z* L else {0 @( F/ I/ d2 S) V7 J
0 f' d, s8 I! v ?8 u1 b. i
di "cannot find pmaxphddy240"
: \. @7 _2 G4 E8 F: w restore+ @5 S6 ?0 d) N4 Z; H7 O) b
E* ? [- T8 K1 U& [
sum dx240
! r4 R6 p" x* {5 V7 l local tempmaxphddy240=r(mean)
u% |' F# m! c1 S7 G- U, S ( V- S6 s. U; w% O/ Z2 b
6 Y) c# h5 d6 s& D. }$ l }3 \/ Z. U" c+ d9 Z* Q/ { Z
: b% G$ k3 z3 `0 M6 P+ L* F% N
# x. G+ _! `5 N) [% S 1 x5 m6 p$ J7 z
0 L; m7 l2 I: H" `, d. J6 {# e
9 u# K" i. n2 u5 P8 C5 | # i4 i$ o6 d* F% r' s
gen pmaxphddy240=`tempmaxphddy240' in 1
( k P9 R, {4 E4 f, ^
' E# v @# c Z8 x; ^ " p& v. I3 `: {1 z, U( p
*-------------ddy240pmaxp右侧低峰值 -------------------
& L5 ?! d* R+ A 9 P" u: n4 s6 C A+ K
preserve
0 B# N2 r6 Z* j9 ?' P $ Z% h# {1 ?: U; h
keep if dx240>`tempmaxp'
' a' S( P, k2 E H. B, W$ `! n) j " ^. w* g- w+ E% _' u* ^5 _8 F
gen temddy240=-ddy240
5 g" K' N, t# y
( l: N( D* w* `8 o4 J0 n keep if temddy240>0# i$ W; p8 Q+ _ ~
3 ~1 u$ k9 I) Y0 k6 s' v count; G7 H: \: G8 e7 \4 ]- |
3 x. L2 i# W! ]+ Q if r(N)>2 {
6 ]( h$ s) z4 o , O7 Y. T* N6 `$ ]9 v4 n/ A
pkexamine dx240 temddy2403 z3 q6 ?; d5 y
- T) b* A- I5 ?" G3 g) O local tempmaxplddy240=r(tomc) 5 X1 ?1 r0 k) Y; ]. h) q* S
restore
( T+ ~; Q- |. Y0 ~; e+ Q8 N; P2 A }9 o7 I5 O3 c, b! J6 Z. g7 \
( I( [& ^; j7 P* f( G9 I3 V
else {" g2 [4 n& E. o N2 o( _
restore
8 `* i4 E( }5 ^% F7 ~ g/ r7 H di "cannot find pmaxlhddy240"' ~" h& h5 O5 G+ k
' I- Y( X) v* P! J1 `
6 d( p9 ?8 G& z sum dx240
4 x! X. z. D6 i9 b' h local tempmaxplddy240=r(mean) in 1
- J O1 K8 V* O3 R: g# | $ I& A3 D$ j1 G/ s. P8 l
7 Y( |1 A* O# z w }
; E# F+ n$ v1 G3 i9 k. ^& U2 Z- e
0 R; l1 Z5 r' P
* \# { D: \8 F! [! F. C* e9 w+ }' W- { + ^& s5 I1 j# C, }* [+ @, K
; t# A3 q: E( a X t3 G/ w% t5 N
+ S: B& W, ], B, P" w
+ p# ~6 w' o9 m6 I2 A% P9 H" D
gen pmaxplddy240=`tempmaxphddy240' in 1, i) e: \/ [' j" N; G6 [
4 p0 m! K I6 o" Z *-------------------------------------' {9 T! l4 s# q' P0 l5 P7 [( l
6 M P0 s: T& \& H# k
gen price5d=v5 in 1/20, {9 w+ T- X# _4 Q
) e7 T# d" B) q% }: O0 x5 @8 K
gen price5yy=_n in 1/20- @' }8 t: v' ^7 G* j3 o
- @( ]' J& i; m3 V' h2 [0 T gen price5y=price5yy*(dy240max-dy240min)/20: k/ D8 @$ B ]( c) p9 s
: u* G, _" Q+ H, i$ u/ j! D& d
*price5y &price5d D5 f* u; J+ \
! N8 \) K8 `' W5 u9 U gen priceny=price5y in 1
/ V. d; _' g: Q7 T6 d M9 n
0 {$ ^: V- y+ W8 u* X5 @ K# w gen pricen=v5 in 1# Q4 U0 x& r N/ S* U( B v/ r+ Z
. K% W7 \* ~1 ] t
4 l" M( p R" E7 h *priceny &pricen9 n$ |. q$ R4 w2 f
( e U2 s, M; o h
# a- X! o" R. Y6 v( ?2 m9 ] *-------------------------graph------------------8 p) w5 K. z W' V$ L$ j% A
, U0 q8 T; _% 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)
( [0 k8 W3 A! x9 d4 x& A; l( p8 _2 p& j' e
* ---------可选项目----------------------
0 v7 W: I( l6 }1 ? i) e*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
( A% ]0 K4 z( ~; T! @+ u}6 p* G( D- t) ]2 ^' ]$ s. H
end/ n; R. F/ F% n5 I7 t! O& ]
|
|