|
|
maodeng 发表于 2013-1-28 13:13 ![]()
: p# c- _% E! [. hello 300236# ~; |# L# m5 n5 v1 u5 I" X! p
statement out of context: q" B0 k) J2 B% ^' F
r(119); 6 w3 n: t, Q, h' F: R
抱歉,最近太忙了
( ~( D: n2 z# x! K7 w2 F# l
0 O) N# K. j' I: z) A* z s7 `300236 我用下面的程序试过,没问题5 c& [6 G$ w6 p" Z: @5 C! H
& c7 p" r/ {9 c0 p0 }
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试/ P w5 n1 G$ ?, p& j
7 K8 }3 ^4 d; i$ s! b
capture program drop hello; w$ T1 `5 \; S% z
5 n, x' g% [& z. ]! ?* |
program hello
# P& l8 D# w# @
, t( K5 e1 S# Q5 v% w quietly {9 ?5 {3 u% `& ^5 W
* m! E/ a- v4 I9 X1 y1 _2 J. }
clear, A( I2 G/ ~* z" D9 o0 N
$ |& }4 U) }8 P3 j
cd D:\stock\test\source7 v3 P$ D. z$ ]
$ C9 }1 d4 q- i2 c7 U* l
insheet using `1'.txt
7 i$ B9 q2 D& |3 M2 Z) W) r" L. x
, h' z" r+ U0 s* U1 D4 S0 G$ s* c keep if v5>0
* P) D! h) j1 z9 y6 i' h2 u 2 B8 f* j3 ^2 F
gen vt=_n9 G0 t0 F9 ]! R/ H, A; `
" K l. a+ d/ m) j( h! j% | tsset vt
( d+ O2 n' i' A! Z( y# o* k( j8 A4 B
gen zf=D1.v5' R& f v# w% {' `* C+ U& k0 _
- M/ P9 n7 g+ i, q gsort -v1
S& w2 \8 z/ v- t) y) X& c* Z/ N% N$ l9 {4 F/ e2 z( Q
gen avol=v7/v5
1 q. S! E- B* Q v
0 \: m4 H$ ~1 v% N. ?& ~ keep if avol>06 l+ F8 R* T3 Q% q; a
5 x' b7 S& n! L5 {1 H! F6 l
drop vt
, y- ?3 e* U$ v8 V2 g
, z, L: u9 C7 j- x gen vt=_n
+ P& _- B0 b! a& l: m; F( ?
3 \$ y( j/ Y- B tsset vt
3 g; E: @' A" Y9 q" H0 a: D
% t8 n; Y* ~7 M sum v5 [aw =avol]
5 V7 P2 R9 f5 n- C
0 X2 [7 i3 e' N. H' o gen amean=r(mean) in 1& L# Q# G5 a# V) h2 b
& t; u( b" z' Q c1 P* M
* 总加权平均值 amean- n( I) S& I9 ^' {+ \( _* x
. S# ?' W! E6 \( P& X) ]
. H9 Y; k5 [( t; d* @3 w! w0 x4 c9 l keep in 1/240- k; E: x3 K& R, B
7 G V1 }7 G: X4 n# t* P& o5 u2 @ sum v5 [aw =avol]3 L" T* x6 z6 P3 T. |* a
* A0 q4 l/ @' {/ U o
gen mean240=r(mean) in 13 ]$ l) _) c, }5 _: F
0 n( }. Z. V# z5 P6 i( r0 r* w* `; } *240加权平均值 mean240! U( A3 F' C' o+ q7 c: R; {8 F
: u# H1 [9 a( X q- @ set obs 500 7 j. R `! a1 I$ u9 j/ R
8 K- w6 G# b5 h' v& k kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ _6 A4 X* K. {2 H
. e9 j I+ W( ?( ]6 U7 D- X *240 kdensity(dx240 dy240) ]% z% }( I4 Z' S) ?2 J
8 H7 ~+ o: r6 z" u
sum dy240
# p9 l i# R9 Y$ [$ ~/ l: } # X' u2 X0 G/ y5 L2 j
gen yxis=r(max) in 1
! z% M7 d6 N0 [( _$ Q" i5 n- I ) K; r6 ]. G, N# n! B8 k
gen yxis2=yxis/2
0 b+ N. Y& U5 K1 t3 S! f 7 Q; g v) | T& V
*yxis8 m' _# C0 D# |. J$ z4 g1 O
p, S" K& N" I. x gen dy240max=r(max)
1 v5 W! }! ~( W3 s! @" Y% |$ R 3 u/ X: Q1 l' }7 |- l& g. w3 X' Z
gen dy240minp=r(min)0 j( T. n0 }+ M2 E# O
+ v- S& A; A5 v `3 r1 P
gen vtt=_n
( T8 w2 K2 D! d/ p/ C- W
3 |" P+ ~) X. ~# S$ Q; w, S4 k tsset vtt
7 Q/ x8 r2 l% ~' _) z0 x% G: i& y) G8 I8 Q* X" y) ]
gen ddy240=D1.dy240/D1.dx240
z! f9 N, Y! {- f- u) L
Q9 { ~# u7 g, \- _6 N) o sum ddy240
# b% R" B) J' k7 p1 M
}! v+ f+ C( s4 v6 F gen ddy240max=r(max)! X; s' [ O7 t& P& Y
+ F' q$ b; V) Q2 m, p
gen ddy240min=r(min)5 M) C8 y. i6 h# a
# t& L0 X/ S# t9 b+ Z# d- W gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min) s: R. t' S6 C a; e' X) k0 z5 o
! B/ b! N- U6 {$ o& \
sum ddy240g
7 m. b1 q6 v3 x% E5 R7 p: U7 r
; j/ Z: x' m- W0 w- x% E0 q gen yxis3=r(min) in 1
/ W) D$ u/ i% x2 l6 G# D
1 s' j# O' |! m6 L* Y gen yxis4=0 in 15 A( a( y' K% G9 K
5 w$ d9 i/ H8 S8 ?) y' q; W *ddy240g
, p: ]3 q/ O7 Z1 d, t$ b; [
- \1 E; K7 q( u! a8 u8 O
* s( O2 P# ^. c( x+ m# } preserve
* L/ d. l; L" h' o # e. z' _& z# k0 r! m6 ]
sum v5 [aw =avol]. K, ?% J! P- p( a6 k. w' l
' z; k9 W, Q8 g- z6 A" b
keep if dx240<r(mean), @: r" l3 E e# _" d( I
* A+ V) }( _+ ^7 n; e sum ddy240
# U J3 f( c& l* m1 a F + |" [+ e8 W/ w% K- v
if r(min)<0 {
/ P2 C. B# b$ O
- d* {1 E( o; ?4 Y' g) u keep if ddy240<=0# }/ D) p7 o- N" R& X0 J' A0 B# i
" c: [" H5 R0 \3 Y& j+ ] count
0 J1 b# Q* Z: g, b
R6 ^2 K: k4 R M) n: \: J if r(N)>2 {+ U5 R u3 s! x( |
" a* x) k5 s- Y, ~ u" t& t pkexamine dx240 dy240
4 F7 J4 d' R& ~" @" n) B $ n& S$ N4 V b+ m0 S
local tempminp=r(tomc)
8 k8 T" L4 X" h- F( T/ r restore
. L0 x) D* `" d8 S }
9 f( h6 D; T& _; a I! b 3 B2 J2 Q$ q/ R* Z! D% m
else {* t% m9 d8 X" ]3 X& y$ W' q* L5 B
% n& }& l) `( ~5 n! |9 Y
di "cannot find minp"
* ], a4 {, r. F( V$ T' Y- {
g8 a3 i) v0 d restore , r! k: Y! o/ C- c
sum dx240
- M$ y/ Q* M: G: H" R local tempminp=r(mean)
/ e! x- X* R) @- X
& T T/ t# _$ P6 B w# [! S }
$ q5 Z: G, R/ R/ M+ F, X, k$ X }
. G2 J( W3 o, I$ I0 F% | else {, u. ]* v8 f6 F) y& f& X3 E
) |* X& q1 i9 F4 ` keep if ddy240<=r(min)1 q( C, g. P9 w0 p. x; i
/ l& j6 `7 Z" L+ e3 `3 h
sum dx240
" e3 A3 w3 I2 P8 o1 }- `- W
4 W5 F P( }6 ?7 H m local tempminp=r(min)
, b; _2 h7 |! t+ B q2 [) W restore
$ U" h8 A' m& {9 U" D7 X. _ }
* H0 ?# g7 ?. F' ?; {& _' f1 n) ~; W
5 G3 h' @' N* b- A
' E2 Q8 H9 k0 S7 P
. w' w; D* w5 n! q gen minp=`tempminp' in 1
& A: g+ y" k1 s1 Y- ^9 S/ Y *240 minp6 y+ Y$ A5 O/ G/ X, g7 y3 i8 G- @2 L
! r2 D1 e z7 K' `* p! \4 Y
- n# \, S# V' F5 }
5 @* h$ ^) ~9 k$ T$ k preserve 5 N1 J# l9 F* Q1 K% b$ B
7 P1 t- g* ~ @2 X/ V+ y% t2 p sum v5 [aw =avol]1 i% H# J* y+ O3 r" w0 L* R+ @
% H! J" e( A1 {
keep if dx240>r(mean)/ u* s, S' m; p0 Z2 v6 S, b
7 ?7 i" A9 \8 \6 {2 q sum ddy240 z- n+ o% Z. R; `1 Y; {9 {
4 @8 U+ c1 @# m9 X( R. r) M+ ?% o9 [
if r(max)>0 {
/ q# K/ f' j6 s
8 m+ s8 q( n- r5 d! o" \% V4 x keep if ddy240>=0
- s/ M2 `/ A% v$ j+ o. P ' H) H/ Y" L9 Y$ d" o k
count T' U" U @- ]( B# b( U
6 Z; B) o8 s4 L/ O$ }7 C5 a if r(N)>2 {9 w+ k% ~- H2 Y7 @ W6 M: m! Y
: [+ x7 w3 [! i/ c$ U: r" h pkexamine dx240 dy240
8 I7 ^" h( m4 [9 r5 }
- [7 Q$ f% m1 T: g: J local tempmaxp=r(tomc) 2 A% ]2 y+ z8 H/ N8 N' v* B/ ^
restore
& ?( ]( V% F: c3 Z% ~ }# a3 Q- t: ?5 {" g. s' T3 G& {% u6 H
) g3 V6 @# B) k0 z3 D7 P
+ [. g) p2 H9 K0 f else {
. ?! X# p) ^% i" x2 g restore
2 U1 @1 E" ^7 D u di "cannot find maxp"
7 g* V/ L4 i' [
$ P9 u% F/ ~* F: ] 5 r0 r. y4 M+ U4 o" ?; `+ h
sum dx240: Z, {# V9 W3 o& B% c1 D
local tempmaxp=r(mean), `' v$ j# ~) R. C) u0 J9 M" A
0 o3 p1 r5 q( r3 t7 t7 t# b
}( r" p; C3 A& A8 x% ~
: b9 n# M6 o: l8 ]1 d+ S( G
}( K! e9 P2 H! o, a/ A
4 p9 |1 N; A& R& {/ _ else {7 r9 G9 C+ f5 r6 Z# Y/ ?
, V' f/ _) S6 h2 a5 F keep if ddy240>=r(max)$ I; W/ g5 V+ s" W7 B( W
( Y/ u( v+ d' ~3 @6 z2 L, |
sum dx240
9 d5 u9 `& @' I" b* e" x
+ X1 c9 b) h D) c local tempmaxp=r(max)
. F4 |8 c3 [, T. c% G restore
# W. T1 ~7 Z8 Q: h' \# a }' c. q* c: b0 k. T. ^
3 p# k) @& B/ b5 U: Z3 E' {: [+ ]7 V
$ C0 K' q8 O; r x4 K2 h F0 w* _
S5 t+ x+ ` m7 Q9 J$ p; J gen maxp=`tempmaxp' in 1; [4 g/ A1 l" @ w- U5 {
6 P, B( H# y9 f$ B
*240maxp N. ?( X; f# t7 a) q' M
9 h- h0 A- `" q' L ~5 G8 \$ R8 p
) @/ f( J3 {# A& K' K* T/ k *-------------ddy240pminp左侧高峰值-----
( U& ]# _ m5 S! y* C" n2 L ) K' C0 @0 \- b6 J9 p% F
preserve
# \, q7 M3 ]2 m* z5 q0 V) ~ ' e6 h6 n' N: z }
keep if dx240<`tempminp'
/ M/ P1 b5 b b# S Z* S! A4 N; s
keep if ddy240>0
7 U7 y' D; e4 n8 L/ _ 5 ~) K% _) J4 l4 U; o
count
4 E# @5 H. i! ^3 W2 X5 L 8 k; R0 c2 o `- \# o8 c4 k
if r(N)>2 {( @& p1 {7 _. _! H, v8 I9 c
6 a" g: m" B. n, F pkexamine dx240 ddy240" @/ a! m' s- @4 l
* \* B7 E. V' i local tempminphddy240=r(tomc) 0 y# J/ b; W4 L6 [/ D5 z" [ Q5 A7 d
restore) R1 k5 T8 a: i) y
}/ r5 w, c2 W& l3 p6 j
' ]0 ^2 D7 q# k* L- _
else {
x6 q$ O" L) W/ [ restore ' [- X, ]' \' _! }
di "cannot find pminphddy240"0 b0 E0 d6 A2 g- m2 j' A
+ e/ R# x# U1 c/ `# E 3 h* n& q& p1 |' h
sum dx2402 ?: l% s1 @! h' S( `5 M& X
local tempminphddy240=r(mean) & N' p% t* J1 s9 O
6 T: G6 \, B0 Q3 e" s+ Y/ ^
3 e" s6 q9 r7 v }4 g4 z0 p- _, `8 q( ~/ X0 A
1 x* f* z& f- q _# G$ A- E
. F4 y9 e& u7 b( A 2 L7 V+ M" [5 p, D
k2 I7 s& T: M1 ^" w
) X" _2 L: t- N4 P
x8 ^2 f( y B
gen pminphddy240=`tempminphddy240' in 1- t! o; t- y9 z& n- ]
6 ?7 J+ ~) A* ?$ K& p4 d
" z/ e! n+ w2 t1 ` *-------------ddy240pminp右侧低峰值 -----------------4 _3 H6 G/ b6 I
preserve ! E% Z9 g" N) N1 r; ~
C5 [: g3 {4 H8 _1 I6 F2 M
keep if dx240>`tempminp'2 s% l4 Y' @- o% S" H
- c6 U/ p# c3 `) z& k u
keep if dx240<`tempmaxp' A+ w6 k& u A: k5 z9 s
L z! O+ ]- Z% H8 o: o
keep if ddy240<01 o; P0 L+ L/ M! \9 j
7 l6 Y, l5 J2 l
gen temddy240=-ddy240 k/ p& h; _9 K# K8 G: u) v* `
7 k* f; t! Q. k& Z# Q( }1 X! l
count1 f/ P6 s5 W6 ^( J
" N2 ]) X& p! w" R& r" n0 _/ Y if r(N)>2 {9 d" {' s' H) L& t" [
8 r. S& K B1 [+ F pkexamine dx240 temddy240+ t3 C2 j2 Q" ?% P
% Z; e( D7 B3 F* E6 d" v7 Q local tempminplddy240=r(tomc)
# V% e' A m. [7 a4 C$ m4 Y restore
( \! O. `8 L2 M" z }
% z5 x8 B/ ]; d g# U, R
: u9 m" Z- M# F. J$ ] else {$ I2 Y: ~! M: O* ^7 B, D j" D
5 @* X; t! M4 C! [5 x
di "cannot find pminplddy240"0 L% W2 X1 f7 x" d' x& P! r
restore' _: r$ Y( G" T. L. A7 u
, L: | k- M2 p5 K
sum dx2409 o4 x( ?+ x6 G
local tempminplddy240=r(mean)
, x: E9 M3 e+ Q" h . Y9 }! c- s/ f/ g$ ]
* { \) L8 p* E) K6 p: ]/ T }- d( H* S3 Q: H& E: e
/ O6 V Y, f% W
$ m/ S2 N- }! J1 u: e1 |/ ?# ]( V
. H& I- K0 ^; G# K6 D) n/ r K; j* e' C 2 q4 W& M8 s7 V9 n3 r# r9 R
! A& Z& O j# T7 } gen pminplddy240=`tempminplddy240' in 1
2 M9 ~* s _- W: } 2 N0 ?2 t( W+ s# H$ m" B; ?
*-------------ddy240pmaxp左侧高峰值 -------------------9 \: [+ q7 W) _( z2 g, k
3 e; j% J# J5 d preserve . p! _, \: R- M
( }0 x+ g8 {4 B- S3 A+ E keep if dx240>`tempminp'
$ O1 j% G( z2 l; Q/ E; P- \
$ b* V- n% Y" o4 G& X) O* x! X keep if dx240<`tempmaxp': D0 \) H! l, ^
9 \4 s% f$ h7 b& x! `' V% ~ keep if ddy240>0
, q8 b5 \4 \$ W. V/ a count5 L9 f: O5 y# M3 n" C- e
: ]) M" Q6 b; T7 p, w if r(N)>2 {
M5 r. l8 J3 L) i0 t0 S. a! ^/ u
8 T/ S2 u ]+ ^2 ]2 ?2 Q' } pkexamine dx240 ddy240
/ m, x3 V# h" I9 ] M, O 6 I, l; n! j) Y& i" H4 H
local tempmaxphddy240=r(tomc) * G' |7 d0 D/ O/ z' O+ ]: {
" r o2 C9 u: `/ r
restore/ B" O7 u# H0 G4 S
}& e0 r0 u; t* ^0 K4 H# X
- K, k* [9 ?5 U$ ~ [8 }" l/ W: O! Z else {. g) {3 N- F& Y: k8 k
5 u% M6 Q% P1 f di "cannot find pmaxphddy240"# n1 x# Z4 n5 s) s7 e6 H. Z; ]
restore
3 Y o5 o/ M+ l
8 q0 |% {) N! o: ?8 n sum dx240& T0 h g8 k+ Y5 G `: G
local tempmaxphddy240=r(mean) 3 q+ I1 G, }4 n& [% N9 ?
1 ]! z6 c* { K0 b ; h* z2 K2 M7 t" X
}( t" y; _ d; r7 y$ @; w! x
( P+ U. z/ _* V! d% S
, i2 o* G* m! s! u7 L 2 u( ?2 I0 I( u1 x
4 \% k: {9 t/ m% I, M8 S
- {! n6 E2 }# }$ Z# s, N6 P
5 J+ ^% l, F8 O3 e gen pmaxphddy240=`tempmaxphddy240' in 1
! d; |8 l7 F. `- Q5 q1 s
" D$ [! G4 a8 J
; \8 x0 R" m2 |& Y5 ^ *-------------ddy240pmaxp右侧低峰值 -------------------% Q& g: Q* f, c$ W+ W+ g( P
' ]6 u; r! @$ P; P4 H+ H& z preserve
% l X( d$ K" r/ L
: P+ w; M, M" a3 K keep if dx240>`tempmaxp'
: ], T) g$ i) T* Q" U ! D- h/ p6 ^" E; H* Z8 O$ K
gen temddy240=-ddy2407 Q' h) j- d' X \; `! j( W% }1 `
% k3 H' B% U9 c keep if temddy240>0
7 }- ]+ B2 V& n 9 V Q; }2 Q8 E5 J
count
/ ]$ Y7 ^' W* f1 C2 @+ L! U% x
% z2 h; j" P- V' r2 G if r(N)>2 {
! R) {; H8 H! {, w4 y / ^; ^+ h( e' L, r5 S
pkexamine dx240 temddy240
+ L& M1 z" l; F# D 8 g/ r2 O, o0 f ^
local tempmaxplddy240=r(tomc) ; E7 s6 ^# m9 f1 x, Q$ t/ r
restore# _/ b1 C8 X# d8 h: b' S3 _
}1 A, k$ I a! a4 c1 ~1 {/ [0 h
9 u5 V+ P( C8 J# R+ | else {
/ \5 Q9 O0 w" G2 _& {6 G) F restore
. w5 Y, j" F3 {6 J di "cannot find pmaxlhddy240"7 ?" {8 S, B+ b O6 ?) O
0 \( D; B- F5 B; ~ " k& K* C8 E7 }/ ]
sum dx240$ l' b! w1 B- t q7 l% b% A
local tempmaxplddy240=r(mean) in 1' q* y9 l& N) h3 t4 I" K
7 q# C" K; R+ A# ^6 B, E; H% u
3 y' h# q7 Y6 K# h4 k3 z1 m% `2 w" p
}
. ^: a/ g6 O8 ^' g$ Y. y 1 q4 J u& n- A- k1 k
8 t: e5 o7 ?) F7 t/ _, H, ]
! [; h. U0 e) v' U/ p) r + A k5 `6 \4 {6 {( d* g/ F
# X# m/ K1 N% O: z2 l# n8 m& ] % b- d4 i: o/ c. @' U) S. }
gen pmaxplddy240=`tempmaxphddy240' in 1
% X, {- w; o' a: P) K 5 C5 Z- v6 g* | E& t( G% G
*-------------------------------------
7 K- Z" g4 U7 a, b, R) I: ^! u
9 b" X9 B8 G, Y9 d gen price5d=v5 in 1/20# l9 k t" s# k
X* O3 l& x! Q
gen price5yy=_n in 1/206 D N: i. b, R( W* Y5 i
* C0 ?, U6 T, S gen price5y=price5yy*(dy240max-dy240min)/203 y3 O) V* |: D2 x) w
: G# p6 g1 o1 ~/ w$ f *price5y &price5d* e" |( I. K0 n: G
" H( |5 g2 Z, ]. h gen priceny=price5y in 1
5 G z$ `5 b+ V- A; L" ~
) y' L* g# P$ a! J2 O; T1 q gen pricen=v5 in 1
0 o+ Y% _3 C% C+ i2 \ `
: B8 z; @! g5 E4 s* ^
) l! G) Q& K8 I: ~2 Z0 s) s' G *priceny &pricen
1 U1 L1 u. h2 i, M% W
/ R9 H8 S/ h. N2 y% W9 O" l# Z 0 A t$ a: N" I' W5 {3 y
*-------------------------graph------------------
6 ^$ X! P1 l* w9 O 6 c: r" Q5 U4 |. C% }" d
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)4 p6 a( q8 ?! ?, D
$ H/ H+ C/ f+ A( |1 a3 t9 \% v) M
* ---------可选项目----------------------
# @0 y, `; L6 U5 r: {2 `+ j1 M*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))9 o1 }& \1 H9 D' p
}
) x4 N/ Q* D' Fend
: Y3 ~1 _& l9 M9 P Q |
|