|
|
maodeng 发表于 2013-1-28 13:13 ![]()
' z* X! A, m# }- F1 r* Z4 L. hello 300236: @3 q" W7 A7 B0 U5 c
statement out of context
8 _5 B9 `: f5 h3 F: F1 dr(119); - j0 D1 C' o7 t: E9 R- ~
抱歉,最近太忙了
& @+ A) ^) D* ]* O% P5 f
; v$ E) c6 V) }& p) u1 _# y300236 我用下面的程序试过,没问题' f2 Q6 | n: k% Q- H$ H# m
" `" i6 l6 i9 c+ C+ n$ }
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试! S9 U; ^# v( g1 v, T) ]
, W% Q/ S. w6 J/ ?& H* }* ^* K" |
capture program drop hello5 J$ A5 G2 K: S8 \! G& Y# X$ |0 ]
/ u, Y! x- D V7 z
program hello5 C P" X2 p' n8 M: x/ p
+ n7 F- R) B/ W1 f$ w
quietly {
& o: y4 s/ F [& _. k" I- @ I
2 y3 h, R0 K) B; ?clear
9 y. j# }9 s( W2 n6 X# Q
3 [ [! l& {! w+ f1 D$ X9 p" M1 Bcd D:\stock\test\source4 r- r# w$ [1 b2 y
0 R: ~5 ?( w7 ?& J, ?- ]/ b+ r
insheet using `1'.txt
9 {% z/ {& h! F1 z h. H4 T+ r/ l% ^, U5 {- R0 F
keep if v5>0+ g) A4 y' h) a" O$ Y
5 g9 s" x/ G& T6 y2 K+ K gen vt=_n9 [: @; P4 ]' A
- Z# d& \9 {; s$ |$ e
tsset vt9 K* p! j* c5 l4 N
8 w0 t+ E8 N3 x( ]2 p4 p gen zf=D1.v5
8 U3 F1 _1 z8 T' w3 ^
3 @+ M' C) G m. n4 W' b* W) x gsort -v10 V( B, G' j% m9 F Y% G
, ^6 r2 D( G( k. z: g. `+ ^ gen avol=v7/v5
% K+ {" S! A0 {/ g. W, {* i9 D " r: K P; h, U5 M' |
keep if avol>0
( o" Z; o5 R& m% o) e# X7 A6 J
* d5 i* e: }" ? drop vt
" {/ C( z0 z2 R Z- U& Z& R
7 p$ K* ]3 J" T0 b6 e; R gen vt=_n
- i, P; Y3 u: B7 D g4 p
! r) g p! T+ G1 c tsset vt
4 \3 V4 F, ?$ N3 p, ?5 M
; }) _2 A$ E6 a2 Z$ [ sum v5 [aw =avol], p0 h. Z2 r: t9 ?2 ^5 N5 [6 Z* D
. v* d2 _) Q6 | gen amean=r(mean) in 1* @1 O. p1 N1 m, `0 d
1 W$ t/ V% d. v$ B: z; K
* 总加权平均值 amean
- I0 v7 W3 L1 w# i$ h
* P% C4 U% H5 N: O+ q5 s
3 L2 V H# G7 I+ ?0 n$ }7 T; a6 u keep in 1/240( b8 s2 F& S% \% L" j
1 x0 u& @/ `/ S" X0 m" X9 m sum v5 [aw =avol]
5 S+ G: _/ K7 q6 ^5 J/ P1 D+ x8 m/ d+ I5 z( z3 Y
gen mean240=r(mean) in 1
) u; ?: T! m/ n3 P+ B$ a1 O: T- p + C6 N& r1 x" l* r% V
*240加权平均值 mean2400 P5 k; L5 N* }5 U( h( |5 F5 C
( C. ~ m9 l2 t: W' d! R set obs 500
8 z D; A4 G, Y1 N" E5 m9 ~2 _
! N4 @- |8 U) p# r kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
; {- r7 o9 I! k+ G) n( y" M. u/ z 5 }/ v% l! B. J5 a5 m
*240 kdensity(dx240 dy240)6 p/ w. w- Z, k& Q5 Z
" y: j6 n1 G$ P8 F/ A4 v2 J sum dy240
; M, N7 Q, F" H9 ? 8 u: n' n2 h' k. H* m. m0 J' }
gen yxis=r(max) in 1
! M% Y0 u/ L# B# l5 c7 k3 f) a" j ' c \ M9 u8 d' }7 ]) @
gen yxis2=yxis/2/ O z3 T u7 L5 X$ _/ D
4 K% ] Y( e1 N5 y7 d *yxis
5 G3 H( L B- p" Y1 M 3 n' p, y3 _% h( k; H" t
gen dy240max=r(max)
; ~* [% P! \- y, _; I
/ K, |& O7 P( l8 ^6 S' a7 `: V6 E" q gen dy240minp=r(min)! `9 M1 a5 X9 f! k& `) z
: N% g/ R4 _% u1 U
gen vtt=_n
6 J2 [3 {8 D* { W/ W- b7 y9 k% |2 q% a# u n' f% R3 ?* ^
tsset vtt
& M/ K+ F4 E& S/ F( T7 P8 r! R$ b, q/ y2 g
gen ddy240=D1.dy240/D1.dx2406 p: h7 v: t$ H. p* i3 u" r" u& A7 h9 I# o
( m$ _7 {- P2 C# D- x0 u sum ddy240# S$ d B( ^, U. E
" f9 w: i7 r2 H% I0 Q
gen ddy240max=r(max)
$ ?' z9 @3 s s2 T% h) E
: o; X8 ~0 D. \- v3 [ gen ddy240min=r(min)
1 _- L* R. `4 g- ` " e6 {: {1 _* Y' E
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
1 ~( \4 i+ |4 A7 _
) h0 _- u! H' ^1 X% H* @ p sum ddy240g' V# b& M; d q) D8 Z( F Z$ g- A
7 R, ~; y( L$ B" Y# } L- W gen yxis3=r(min) in 1
: J* J+ R3 t; R
1 A5 Y+ s5 f& _1 \: f& y" v gen yxis4=0 in 13 V* e$ x; `9 J' {0 R
7 c( M. G, w6 i. D4 u; u8 H
*ddy240g
0 v- j9 d6 G+ f 3 I& f7 h6 k0 h
/ U. \( B% O M, Y7 s! N4 O! W preserve
' K |# W- ` g" ~; N3 B5 L % K# Z% D p+ b, k, m
sum v5 [aw =avol]
4 b" F! V' n; E. V - j3 K7 H6 U& K4 H/ L. w5 K
keep if dx240<r(mean)
& a; v$ }& V a9 ?7 P( w7 o S
) y( X. Q0 V0 S sum ddy240
9 c6 ]3 n9 R/ e. p4 q( `7 Y
8 d$ x k& V. P, v; L if r(min)<0 {9 x8 s8 d h, m; p8 c# a
5 H6 t3 h" ~# C
keep if ddy240<=0- e" ?4 g. k0 ]* |
8 R0 T8 Y5 p+ A9 D; I: x; O0 F
count
: E D. m) p6 ?. x$ I
7 ?( T: _& X: u+ {0 j% ^& m- |' | if r(N)>2 {
- b* ?4 J+ S. y' r# m% t% _8 s $ t, }5 ]9 B- A+ N. I0 f q
pkexamine dx240 dy2407 u) p/ k2 [& t6 T1 Y
5 g; W8 H0 ?) {' s local tempminp=r(tomc)
8 O) Z+ _& N9 ~/ M- z restore , Y m! j" g) a( a2 i
}
( J3 O2 d( ]. d' i 1 ~3 G3 \$ w8 x5 D9 ?
else {) ?# O! D: S1 p. |
# c- J0 _& K9 e' W
di "cannot find minp"
, B+ \. N; s$ p# E" r
" w! O R0 h- N: a restore # v0 A7 E H3 P
sum dx2404 y( C; L+ Z: l! M( I2 M, }
local tempminp=r(mean)7 E; ]: Y; t6 G/ Q7 R
: L" }. T7 K5 y' {& _6 _/ w }
9 Y- U# g* e7 G4 Z }8 J9 d( R3 J9 ?9 `/ a3 i1 s
else {
# g- P. [" C: _* t" t ! }* g* o9 n1 @6 N- S+ ?0 `
keep if ddy240<=r(min)
0 V4 A. `$ n" q' ?3 J! R 5 r$ b/ P* I/ \! R
sum dx240" S3 q' Y/ G* C, v
K8 e: Q2 e' R# a0 ]. m9 B local tempminp=r(min)' s/ r& w! s5 E, y. T, E. R/ Y* W
restore 8 K" D a: E6 H) J- |: C/ i' }
}
$ i0 L# y4 S$ `9 M
& ?# H9 J" p$ n- \5 y6 u9 m, J& l: _$ B; l V6 _$ g+ F
' X/ L' S' p2 P$ Z gen minp=`tempminp' in 1& R# D4 C2 y8 @8 y0 L* ?
*240 minp
5 }& x1 L% t; d! c8 T/ D) H0 e
+ w5 ^7 A3 K" ~, j
7 p0 m: S- S9 d& Z/ C: w# T
* w' j% x ?% \ preserve / c1 M' q b- B. w! P
K2 u7 a. p7 h# ~
sum v5 [aw =avol]
3 C1 X; B) U" X. a8 p + I" P# ^3 ^4 Y' Y! ]
keep if dx240>r(mean)
. C) ?+ L4 a2 a
1 q& D# B m9 j) J sum ddy2400 d: X% z0 \ \7 L% w1 B* S. P
6 m2 L r4 |6 ^& z+ p$ U
if r(max)>0 {
L, D5 P: h2 R + g8 z8 O: J. l/ x }0 Z
keep if ddy240>=0+ U+ P; w& Y9 j, X
2 O" _) \0 `4 u count$ U) G+ l6 S6 H$ J2 j9 z3 B5 d; A# U
q/ g7 n; _) s* o5 I
if r(N)>2 {
( M: A) h$ a0 Z! G! S& o
F3 I* Y* D, Y/ f pkexamine dx240 dy240+ G# h s: L6 ?: s4 E6 |+ ]( c
& h5 O4 \6 X' w
local tempmaxp=r(tomc)
( K2 I" L* s$ E0 T2 v; H restore t/ l+ `' \0 E- a( ]& c
}( T3 r) H) O/ [ B
) |3 F; f) d- S8 z/ j5 _* v 0 T/ _$ _! z! \+ X$ t* g
else {
- l0 p3 T" y. g; | restore
7 N9 k( M+ N5 W% t# m5 `0 L6 x di "cannot find maxp"3 U5 T, t6 G- Q6 T/ `
# ~1 P. X; l' F; C# |; d
& |( h; e- ?6 O/ Z
sum dx240
6 u5 L" C: A8 D local tempmaxp=r(mean)! o0 w# X: s- W/ } J
# U/ w c+ P* d" I }0 k5 R. J, u# [
* r# I3 c' K% s0 b @. p0 U }
6 p0 v3 O% r5 O6 p7 x6 o% x: p
+ N- A: l @ _- E8 c# m3 Y else {( A. ?1 Z7 u. [5 i- U! U- R
- i" }4 i! \9 ~0 x4 L keep if ddy240>=r(max)9 I. q1 q" S* R- g" a3 |* W
# u. z+ s$ V% w. b1 ?' d sum dx240
% B6 E9 ?9 @6 ~1 q% [ % s! K$ Q( t; g# ]: X
local tempmaxp=r(max)
9 c; ]* @/ @7 s; w restore ) e. d, I8 [& H w7 y! f! d
}& W `+ V5 Y! A! Y) v# A5 K) [
- ^1 G* m+ A" `6 A/ b- j
! R6 W- Y. f# _' C* H2 w 8 y- d q) ]' W
; o' W, m/ L+ X
gen maxp=`tempmaxp' in 1
+ {; O5 t2 z! I/ n8 M
: d) C g% m$ @7 K+ q+ G *240maxp" p; R. [. z0 D
5 Y) N( D9 h. G1 `
4 k' x, O& a9 r9 J. s3 Y" _0 H( i *-------------ddy240pminp左侧高峰值-----
! ?, D4 F2 I" `2 ^! j2 u6 Y% ~ 4 d8 b f0 d! U+ a: H* s" e
preserve
* n" q9 M$ p- g6 S
1 F7 f2 B4 O5 z* n keep if dx240<`tempminp'! M" n$ i2 a% |4 v# b
5 w" D9 N( Q* Z" y
keep if ddy240>0
D/ j" Y5 c6 L: x$ o# t ' X2 v3 ?, [7 }( L+ v
count
9 N; q+ V9 D& O: t ; ^' @0 r( V: A7 Z8 l7 h) G0 r
if r(N)>2 {
0 _4 P9 D+ T z" U- J* d " _2 J6 M6 l( R _
pkexamine dx240 ddy240
! p6 Q0 O5 K& ~. q8 R7 ] / T1 A" L. o' S- x! o$ U0 R
local tempminphddy240=r(tomc)
8 a2 k2 \7 ^ X7 U0 f/ l0 c restore
: E* D) {5 g/ d2 M }
6 r* v" G" [5 ^9 K# K 7 y( X" t# V+ i8 u% i1 c. G9 {
else {
0 X4 p; c5 \: ?! j! Y* P restore
* j, w) p9 K& C* S# m" Z di "cannot find pminphddy240"
2 P. B5 \- B& @. G: z/ R. r0 j
& h& G% W: ^: @ K& Z1 `( a v2 |# ^" H6 g
sum dx240
$ L8 Z2 A: [* T( } local tempminphddy240=r(mean)
: I) A; Y3 y+ v# ? ' h/ ]* K1 i& @ J
0 N" {3 \! v0 t( I0 ?( Z; U0 Y }
# V% J; H) Q _. O : Z7 D6 ]# a! h) V) I3 C. |: D
, Z8 U9 K( Y( i6 R. k0 N4 e% M
' i0 L4 ^, r/ X( s$ f, s
) f+ o! t9 U6 V5 f5 i3 r B) \
# N1 J, t& c2 y' {# l
4 {* h7 d5 h9 R/ u1 }6 { gen pminphddy240=`tempminphddy240' in 18 Z) }) {) |. M! W- ?/ g1 [
- P9 w% {6 j# J& {# Y! M) B
" s8 Q4 Y) ~) ^$ c
*-------------ddy240pminp右侧低峰值 -----------------' ]6 l) }9 j" k, i; s1 y8 }
preserve 4 }- n8 Y# a/ x8 ~$ e# q# q, p8 T
7 P% e6 Q. H1 E# @
keep if dx240>`tempminp'
8 F2 A6 U5 C! O; i a+ R( T 7 O; r+ W% \5 Y" R' U. f
keep if dx240<`tempmaxp'$ A v0 I5 b% {3 f
: Q; v' p& z" f1 x' Q
keep if ddy240<0- z- T1 w( i9 Q. R% f- w
3 r1 {4 d* U2 J gen temddy240=-ddy240! m7 J; |; D" H* d$ e+ G; z4 G
1 f) K( q/ c6 j6 p count( x( o5 w' }: A2 H, ~/ e. F: v
5 b% J6 @& ~# s/ [2 X9 N$ _# m if r(N)>2 {" N, w/ f" E. g7 |4 h+ h0 B6 @; ]
* B3 @5 h! I( e4 A& g7 @
pkexamine dx240 temddy240# x8 i$ }% \. ?1 ?7 C6 Z9 C; o; B
. ~; I! \ g* G! a6 ?# J local tempminplddy240=r(tomc)
$ {# }8 ^0 P( R% p' ?8 {# M' m restore$ \* i- r" a- I
}3 V& U: `& B" `; Q
/ R1 M+ l- g7 A3 l" i
else {: x7 }) k4 s) Y9 k6 W! W& O% Q9 z
s% ?$ O& k \ di "cannot find pminplddy240"6 b |$ @5 b W4 }2 W
restore
t3 z1 w: F' [ p
+ V- c7 n9 ?" i; R) r sum dx240
! {* y; M3 t3 w0 |4 m" o local tempminplddy240=r(mean)) B& ?* |3 y+ E; l. m) x9 J2 B% p
1 z9 M' l% N0 U* E& W. y2 [
7 ]) c" D0 z; d }
! M" Y& b8 y5 H' c& N
~3 b- h) e& s+ R9 x$ U & b* S5 t0 |4 i4 Q8 H* F, O; T0 C" @
! V5 j7 c+ w' D5 H- {) b3 \
! e0 W$ X* U" u5 D! e : A4 F" O, N" b5 }, K Q
gen pminplddy240=`tempminplddy240' in 18 U7 A5 l$ s. V, L1 X
3 Q7 O- [" ?2 F *-------------ddy240pmaxp左侧高峰值 -------------------
% T% a4 K- U% s 8 q+ n$ }8 j* }
preserve 9 I/ ]/ E- g. n7 Q
( q+ B/ V( Q5 O X/ E
keep if dx240>`tempminp') a: [7 F! c, S5 n! V
' ~* {' {/ a* e) S8 Q, Q/ z- d6 D keep if dx240<`tempmaxp'. M- t& ?# w# K" p0 X2 ^
! S- S7 b7 H! p6 K" r: E% N, x' q
keep if ddy240>0& j' {3 J6 Z8 G
count& a) \6 g2 B' T4 ^8 b1 ?- ?5 R
$ d7 ?! A3 ^, ~7 n) L/ y$ o if r(N)>2 {$ d0 D8 u9 ~4 V- I' w. C: S
' O S8 S' @8 L$ R+ k
pkexamine dx240 ddy240
6 |# h* i3 Q- O7 ]+ K
( T4 K& A& R7 u6 n) _ local tempmaxphddy240=r(tomc) ( O5 b* U4 x7 N4 J
! P/ C( n. Z) u V8 M, y restore
' d! m- e: i3 K+ M: i5 K4 j }7 ^& _: `; o6 K) H9 n" x o7 s
% K0 h: @+ l! {9 j1 Q5 w- o( N
else {5 t( t7 u/ a$ e; j; W
6 R# o& @: D$ m2 T$ P4 o
di "cannot find pmaxphddy240"
0 d5 l# R& F8 } restore: k ?9 a" b- O$ O; Y
( O8 p* u; t2 B# S. a+ y- N6 z sum dx2402 u6 ~5 ~1 u3 s
local tempmaxphddy240=r(mean) 6 o/ x1 \, k- r* u1 D) f3 f- x* ^8 p
" d3 v$ l `( a 2 I" O+ o. h# b7 y3 O% O; r! W
}, R+ T5 @- ~' F% U) b% X( R
9 I: }! s, K d( T. H % v* |2 N* U0 F$ J/ C
0 I& \7 ^8 v% e3 {6 A4 |- x+ x# e / |, n/ R1 f3 E3 }9 C
j8 i1 B2 \/ b0 U/ U - v3 @0 T# k) U: i" s! x
gen pmaxphddy240=`tempmaxphddy240' in 18 H' M, E2 t( \. ]
% F0 C' u+ R x2 m* I
& W; c% f( y9 Q
*-------------ddy240pmaxp右侧低峰值 -------------------
: d$ x b4 `' i# D4 |$ m3 O2 S % T# X$ P4 b* L3 B( k: e
preserve
% q) b8 {' B# Y- e) Q9 k' a, I 1 g0 C, L8 K6 H5 n# H+ R s5 ~$ e
keep if dx240>`tempmaxp'9 a' m0 H3 m% a$ A2 l& c8 Y
5 i9 K+ k- _% ]: X R gen temddy240=-ddy240
+ [1 _# Q, {/ Y1 i4 ~: h , g& _8 s9 u4 g3 R
keep if temddy240>0$ J) Z: p" j2 T1 u
/ \2 h5 R! Y7 P+ S+ t; @ count
) ^9 n* h: q2 N5 v. k- s
; N( ~# j+ h8 E0 T if r(N)>2 {+ ~/ ^/ D7 u- i" w
) f4 Q) E7 p. [; R* Q- [, r' C
pkexamine dx240 temddy240! H7 ]$ F$ Z7 g, h$ e2 h
F( h/ |7 `/ L- R- c
local tempmaxplddy240=r(tomc) * x U% E* q" W* c* a, C1 `& j
restore
+ K+ a" @5 ~; Q0 V! J& R$ z } u% i: n9 U( z
5 M9 N, h9 f: y( d1 o else {
) r f* Q/ B! h7 g Q7 \ restore% V3 [+ _( p9 c& E4 ^3 S8 j ]
di "cannot find pmaxlhddy240"
' V: N8 d1 y$ W9 W
: y* ]* C. L6 @5 E: F; h ( _8 x4 Q7 t- ^' H8 p- T$ l
sum dx240& \) A9 R. P1 F( G
local tempmaxplddy240=r(mean) in 1
) c; [" ^. @% o! K1 |4 ^1 l . {7 b; c6 t. K- V. p& Z/ q9 I5 k
/ }" E' d+ v# U" r% M
}- |1 j3 A0 u" q5 M# J* @" j# J$ |
: Y7 Y. x3 ?8 d( _% f
d, z- r# Q" t. k3 A: C
3 e1 }8 `# m" T6 c4 [! ~+ s! N8 [- @4 @ / K& i' f9 \. Z$ M+ r4 d
' V; O- {! |" c# p
: r7 c8 e, r4 E1 n' ~* D) C' b gen pmaxplddy240=`tempmaxphddy240' in 1& r* ]( O7 o r7 r% @
. [' e3 u! A, N X# Y
*-------------------------------------+ b# X l; E4 C; V. \
2 L8 Y) t8 j" J( R7 H4 y9 g' J
gen price5d=v5 in 1/20
& f* {: h* x- M T1 I9 [1 j5 A 8 a7 p" ?/ o0 Z& Q
gen price5yy=_n in 1/20" B4 O( g4 m! ^5 m, j
6 H7 \% A5 p" D( P1 G* \# [ gen price5y=price5yy*(dy240max-dy240min)/20
) g. C) O# e S
. n- W$ H4 \6 P) t *price5y &price5d
# a L- y# [: }; _) Y) n9 p( w ; _8 B# n! P3 y1 T/ r, }1 y
gen priceny=price5y in 1
2 L# a- h; b# u& S# M& H6 t+ e
0 w0 S/ D1 {& R# A8 F/ N5 f- |. p. F gen pricen=v5 in 1
$ T( c- x! o% E2 j+ s# \4 Y3 V8 y5 Z; I, Z0 v4 {
" E2 Y+ j% g: h: y+ x! e6 ]5 w
*priceny &pricen
# l# T/ V/ |/ J- t3 } 9 e, L; b7 a2 g/ |; T! u
3 |" Z; n' U G* [ G# O, C( k *-------------------------graph------------------
* B. A4 v0 b6 z
) e. x' _0 A* h7 e+ [9 ^1 L7 V r 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)1 c, w: M4 T5 T% z9 r0 s, _
* o$ V: |% U1 }* h* ]5 w/ Y
* ---------可选项目----------------------* C9 [! n+ O' j* z# C" d$ N
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
7 q" k& M9 z7 Z: ^1 Z+ h5 W}" W w. K4 \: H0 z5 p, Q
end8 Y& Z& U! h, N) T
|
|