|
maodeng 发表于 2013-1-28 13:13 ![]()
) Q* G# D* X9 @+ R H9 K0 s# O. hello 3002367 g7 w3 B9 `) a( _5 c D6 |
statement out of context
! i) {% h1 T9 k% @1 Sr(119); ; J% O6 F3 R4 f- |4 ]* n
抱歉,最近太忙了
: M' U. s) b/ U/ ~+ E, h- x' L
, N) I( r! x" J/ r, ?/ U, A300236 我用下面的程序试过,没问题
1 s; |1 L; w! M! V9 T* N5 @9 h' W3 x1 x8 f; _! m/ |+ M
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试' r K ?6 u1 m, ~2 G. N! I
0 @# k4 Q& }. o2 r
capture program drop hello" @3 b6 m6 V ~
4 i7 p: K6 l: M5 T
program hello+ w4 G9 J& ]" ^9 v j5 P4 x( y# K
4 ?: o: b- G& c: h1 ?7 n1 ^/ I
quietly {. b2 x" v1 X# B
* m) {; n7 H V' w
clear
9 h2 d: [! Y) k2 ^% y% N0 B6 V
: B, ]1 R0 Q$ L A; J8 Y5 Rcd D:\stock\test\source
' j Y- D3 `: _1 s+ P, l6 Y6 n; e3 z- H! @" y: j
insheet using `1'.txt
- T W- N# ^3 r( y9 g& }! ?0 k! B+ j% r# x5 w/ _0 E# w$ I8 T
keep if v5>0
5 E7 X9 T |4 }: N
% S; @/ y6 H( [( R5 c2 s gen vt=_n
" S2 \# F2 M x( B! a5 w; g + i( r; M6 O: F/ f! U+ P2 m
tsset vt
! S; S8 `6 F' v# s( w% @6 \9 E! T4 p" g/ e$ Q( ]
gen zf=D1.v5) ]9 a& B) d; a9 r8 D
, U( h( K+ ?8 b% y6 J* F gsort -v1+ `8 Q0 K) {# O6 M- x3 L
) F1 Y# d: e* _. v& P( q6 e gen avol=v7/v53 N; P) n9 X6 l
3 O5 Z2 b1 ~/ r" j% v( n9 ~* H Z keep if avol>0
- ?# L& \0 y4 |. H. y' K
" O. G8 j$ E/ C$ i$ q3 d4 C3 s drop vt
6 f; R5 r$ ^4 p1 o6 g
{" K2 }' z$ @% w1 w gen vt=_n
6 m( M. f. k, |4 ]0 H * W ^* ?0 T8 R8 \7 j
tsset vt1 a3 ^; _1 A3 y# Q1 R! E
7 o$ n7 \$ e* d7 I4 P' _2 W sum v5 [aw =avol]
6 H0 s# j9 F" H8 f( u, F- w% U& p
; W: k- X/ }5 `& g! m k gen amean=r(mean) in 11 X5 }7 B* V4 x% ]; X7 m
# Y0 d& d2 ? \$ F
* 总加权平均值 amean$ C4 Q4 t0 G' P* R* A
: Q+ S" Y, i* y, a# A8 a / Y$ D- E: [, j( u7 R
keep in 1/240
3 U) Z" ]5 V: g+ c. t; B+ }8 f' W0 O3 I
sum v5 [aw =avol]
& N3 s* O1 w) i# v# b8 ]1 m" ?1 y7 j4 W2 V: f
gen mean240=r(mean) in 1& s/ u* s0 h. c) V& }; y
6 w8 y# k* M' H
*240加权平均值 mean240! l" B2 q8 b) F. r, _: G$ x
) y0 S1 v. i5 R# }) F- i9 W% { set obs 500 n# J/ t$ ` Q/ M9 t+ l( [
1 a- a$ P% v7 c( l' r kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
$ A6 b _2 S5 V2 t7 \: e 8 V8 O/ X. u. D' J
*240 kdensity(dx240 dy240)8 y* V; a$ i S- b
- L7 x( Q( D" ]4 ~: l4 ?0 a
sum dy240( N# z% }0 p) P% E0 {) d
% {& [7 j, p6 Q" V
gen yxis=r(max) in 11 M5 h6 ?' Z( }
9 p/ b& e8 `+ {1 C7 v# Z6 [, d gen yxis2=yxis/24 l! H5 l/ j4 i! p6 R/ M$ J0 ^, X
2 d* Z& ^+ m0 T0 a4 A- z' { *yxis* l8 ~; w" x* O1 F; u2 l6 |
+ V- U: X1 Q! ^* r. Y }4 d" n- g) S# o
gen dy240max=r(max)5 y) A- I4 T6 a w
) r* @4 |' J3 {6 N' z% b gen dy240minp=r(min)* z4 X4 L" }8 E! G
( c; z( O" n x& s0 y: O$ ^! m gen vtt=_n0 u6 q# l5 \ H5 c9 A
! g5 U! C4 P9 q) T; j; K8 ^ tsset vtt
, _+ i& J2 A1 C
4 b) L$ J$ d# m% H7 M: R9 K gen ddy240=D1.dy240/D1.dx240+ D4 [( k( I6 l) ?( M5 u
! [" s" g, o9 Z* @( M
sum ddy240- Y9 D5 t1 `$ Q, }4 i
3 N. I) k g0 N" b- {: F. P+ U- W
gen ddy240max=r(max)
; F5 F) n( O, a2 B; m4 { % g9 i- Z! W( r5 |/ _
gen ddy240min=r(min)7 _. @5 t) k# p9 J
( ~- q$ H2 U& n1 R gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ s, W* h3 S& L
6 M8 q+ J9 B! D9 k. Y6 {5 F sum ddy240g+ e& D4 A, U) A& q
/ F% |4 A3 {. Z/ q
gen yxis3=r(min) in 1
A. |. ~) u( P
7 }0 k$ F% C! k- T# X3 T gen yxis4=0 in 11 M9 @9 O; P8 }) O
, c" t4 _6 [$ Y% F% l& E
*ddy240g * {9 R& |' y& _1 K5 y+ I
2 G; h6 ?* Z7 s1 A$ k. R
7 v) O8 E, M0 j' Z
preserve * q( U3 J: a8 h* n1 P
& A2 P- r; u6 R) w. j! Z9 Z" e
sum v5 [aw =avol] A% Y' v" ?/ z. H
" ]4 `% o1 s. _' h- {# Y
keep if dx240<r(mean)
, t. E) I0 A# [( r# o
3 W+ F8 o2 i7 R& d* Q2 U4 @ sum ddy240& s3 m H9 N7 Z) k i3 e+ k0 i
2 Z: O; [0 r6 h' r H1 n$ g if r(min)<0 {7 j. B& b4 S# H" h/ }4 w
T6 Y, j! u7 Y Z/ T keep if ddy240<=0' v# C- m' l& b2 @: D
/ z8 N2 U8 v& d: }0 x7 Z& A count/ U" A5 S9 v4 I( Y' B* w
. `) k: V$ e# W* t5 V" | if r(N)>2 {
! S9 w: U2 Q, V! j+ ?9 ?
/ _9 |; b7 ^$ D. E: q pkexamine dx240 dy240 r1 H- E ~# p
8 U6 G- z. @+ `# J
local tempminp=r(tomc)
$ F4 S L- ~* y restore ( d+ V3 F4 N- {$ N
}
1 L3 w- L( ^! w; ] 7 b" n4 n5 }) A
else {0 F3 D/ P N' N* Y: J. Z
% @. T- ~7 v& ^0 m8 n2 b" r di "cannot find minp"5 |4 t7 M8 h5 E6 H) s$ v
6 `2 O4 o% J( V: v; l T restore
* ]% a' J5 n0 ~6 X6 _1 [& c sum dx240
$ N6 ?: F& ?, l) R ]! j local tempminp=r(mean)( G+ E1 N* v) |* \) t+ H
# L0 m' C& O2 I* S7 o4 a: }
}7 X8 h1 C3 D( o4 d
}; F: m" o! _- ~) u9 b
else {3 D! l- Q$ ~4 W/ M1 o- s0 l
( U8 t0 D" @( q5 Z9 y% J
keep if ddy240<=r(min) d" g ]; n$ U. r3 f
& V% u/ l; b+ L4 B W sum dx240) | H, Y' |: i
5 n$ u" u: W4 M3 }8 G. _0 z local tempminp=r(min)8 g6 G5 r* Z/ @: J5 X$ B% p# A
restore
: X j. l- M9 s" e/ U& A }
1 n' M. h$ S, P( S) z" q
0 ]& s2 q& v6 d! P, C6 d0 N
4 Q" P; ~: v/ m$ M1 d
5 C! U+ H' i9 w W6 P gen minp=`tempminp' in 1
- o8 Q8 a. m7 s) y *240 minp+ r8 J3 M) g; J d4 c
, l( G. B: ~5 m" [2 u* L6 T* Y* N4 r; a3 ? Y& v
$ T* e, {! t3 v5 p
preserve
$ L C: n1 }# ]
2 d2 p3 D6 _4 a. A sum v5 [aw =avol]
, G/ e/ ~! h8 h2 h% l
3 {. X- k( m3 L, @/ ~4 ^ keep if dx240>r(mean)( r1 R# R1 F L. w
0 L& f; ?6 o( i3 `. V
sum ddy240
) j# z' }8 D* n4 _, q6 x / Q! }& U" ?* Y V; \& q8 z) `3 d2 l
if r(max)>0 {3 W# ?% R" H% r; z6 ?6 h% M; R! I
h0 M$ e6 q8 [$ h keep if ddy240>=0
. D. k7 ]3 e: Q; ^. A& T( ^
" C; }6 U( q; c/ Y+ r+ }( @- { count
* U7 M' O) O8 C$ Z& x . O( X+ S4 p. [+ ~5 [( e' Y. d
if r(N)>2 {* v; M( g$ [9 h! i: E
1 ~: a* @. L. y2 I J
pkexamine dx240 dy240
+ D6 J, \: m1 N5 F
; H5 e" L4 z+ @; B2 |) ? local tempmaxp=r(tomc)
4 h, v; {$ G# j- ?: E5 d4 z+ \1 r restore
# w9 L `2 i9 v' f, @2 D: T. f }. U: _# D$ C; M% k, ^
3 E/ m0 c4 @& H ~) O
2 ]2 H# m7 H6 |# G* ~3 W3 \2 | else {
+ r8 U8 n U( d% A% a; z% ~) c2 a restore 6 e" U' D. O- V2 d( X- ^% o
di "cannot find maxp"8 m- A4 y2 H1 a4 |$ a
. _1 l/ q& G7 G# T4 R, T
/ ^9 g/ m. q: q; C* ?" o& S2 `
sum dx2404 z H( Z, X& ~9 i, a
local tempmaxp=r(mean)
: Q- X& [' z& K& J9 x , n- v* \5 j% D, c/ {$ V
}
6 I+ _/ l. ~3 o, w
% [1 b" V7 o* a4 ^6 ~( ~7 X }% g0 M* A0 P; k L* b) v
/ K7 X1 s# N: |4 O* l4 [% }0 N5 j
else {
+ P3 _5 M. o. c4 E, S
4 O8 j5 b$ z: L; M6 C keep if ddy240>=r(max)
* G* C. `' u& G, g: ^ / `$ s4 k/ F8 ^" _
sum dx240
4 O% Y* i6 n8 H2 B3 U+ ] & }3 E( ]2 X* t4 h. ^& H3 X! R) A
local tempmaxp=r(max) ) a8 s: S8 A+ G$ H2 J# N6 F
restore ' P! z" W3 D/ F/ {
}5 ?( _# `. |) \
3 c$ A- S2 R& |
' g" V6 }, G2 d P6 [2 ?% V" Y, b 6 d! k- u7 P0 z k
/ p2 t7 q: K, P' ?
gen maxp=`tempmaxp' in 1
( \% o6 Q" L6 c; f2 _5 d6 T
; U# |4 {+ C6 |' e8 x *240maxp l# k% k' U* h- ]4 Z
0 G& m0 a0 P [+ D1 F, K/ r* j 4 l4 Y5 S) l" n, I8 P
*-------------ddy240pminp左侧高峰值-----
7 P g" S( I! e8 a- \' M' W$ j ( I2 P2 ]/ k6 \* H( z5 I" w2 j
preserve : ~, x" o5 S/ l1 x$ P
. y; U5 z5 x4 N* E: G
keep if dx240<`tempminp'4 o2 L7 o( e. |" U6 |& l/ r3 Y7 O
9 o. c2 B; E. E# \
keep if ddy240>0
) A* V) m. O: a# m" Q) A- C4 d
/ i9 }$ s. t( Z0 j( {: w count
7 }5 [, {1 D' P: }' p. g4 ^ . t! ? e# q4 j1 R V6 S. _( ^
if r(N)>2 {
O' C- g2 f3 z" P7 m( O. G- b+ @1 x4 I ( o! B: J4 P, _2 c8 n
pkexamine dx240 ddy240
# e, `( G5 C; \4 c, S
' e# {! W3 H2 l$ a. @! y local tempminphddy240=r(tomc)
/ x! X* w$ \4 W: a restore2 u+ l+ z" n' f* z0 K
}
1 P' F8 T) O6 O+ r0 i% j+ G6 Q
7 z$ h% F2 T. w! \) |% B else {
$ e( ~0 D( @! t6 u restore ( f; t. |0 q4 l5 s% L
di "cannot find pminphddy240"
) k, O, V7 L! W8 A3 o1 e
" ?1 h# x/ V' D( }" h
7 V8 v( X; i9 Q4 _- k4 K sum dx240
1 d/ Y1 ~ G$ U! Y0 i local tempminphddy240=r(mean) : E6 N- v2 @+ q* ?) c7 S
0 H* D; o/ K$ r
! s7 F1 R$ L+ v" U
}& m$ j" v) e( |/ A* V
. t- N% p P, z
* y; Q% m/ }0 F6 x: l
3 M( `1 `7 Z7 S4 h4 F( y
1 }" f$ Z8 P& ]$ n9 ?- }5 p 5 K4 q/ V. g* ~- ]7 v
' z, x3 s' F6 q9 G. w { gen pminphddy240=`tempminphddy240' in 1. ?2 }5 H; m# F
& J3 z* K m9 b S u3 w& p G
9 H3 Q0 P( G4 H0 o( k8 F( r, X *-------------ddy240pminp右侧低峰值 -----------------( K6 n0 m; l, P. Y' ^
preserve
+ G: W/ Z3 ^2 G% p0 K
7 F& c4 J& U6 j3 d# x. _ keep if dx240>`tempminp'# L% H- G1 ]2 [- U- ~5 y, c: h5 e
. O+ b) u% u6 q, v% x6 K' s# R keep if dx240<`tempmaxp'
% [5 v* R+ Z% Z$ L% k1 P8 ~ & g8 O/ c' w% Q, i! c* T
keep if ddy240<01 Q0 j$ H! B5 q$ O) o' }
1 a) e- a: f4 v# A0 u; x# K
gen temddy240=-ddy2408 H: S2 D, O9 O' }9 S8 }& E
' H! s. u4 D2 M: Q0 X! ]# y) C% ^
count% w; D! u* X* M+ }2 s
1 K" F9 C% e6 S if r(N)>2 {/ |% t+ X2 q$ T- _$ x7 N
& U/ n+ h5 `, A% v- n& U pkexamine dx240 temddy2403 R& ?1 [- R1 n. i
7 e) F% l# g& v/ g" G# g4 w- u
local tempminplddy240=r(tomc)6 t: A" r/ K9 H& v$ ~
restore: N2 r; j( \" ]; ^
}8 l0 K8 W6 [% L" k+ J0 C+ q1 N" c
, X" g# j. C+ u) p" m else {) Y4 i8 N0 z. N% L& |# k# x
5 t% e( [* k, o# e- s: A" e) h di "cannot find pminplddy240"
6 P( |7 a. s' t5 a+ h restore
" y. @9 ?/ z- R2 k- g0 T3 Q' i* F
" Q) q1 e! N2 x sum dx240
. K0 @. v# ~4 d local tempminplddy240=r(mean)% H' ~: j3 z h5 l7 G
9 F! X5 Q* P: [& o3 q
0 i4 G! z$ {9 t! S' Z5 I1 a) X }/ c: [# Y6 z) N9 y, G# K
+ D6 `9 `5 k7 ^1 g ^
) D6 G3 s, n: d1 a. D5 f
5 o3 G9 [; B) S
$ `4 S3 d" b5 M3 _+ o4 A
" @4 {; n7 R3 r/ Y+ ] gen pminplddy240=`tempminplddy240' in 1
v) ^6 N9 V/ @& g) d+ k7 f( J
* ]; s; A: {5 T& ^9 ~) C+ m- r *-------------ddy240pmaxp左侧高峰值 -------------------
1 p; G+ ~; H7 {; T/ @8 { , q- D+ R/ @% X7 [
preserve & ^! O- G) d$ c, p& j$ o
% J; T) f% P: H8 u
keep if dx240>`tempminp'
7 a3 H$ Z ]2 ?) _, f- ^3 a5 B
y: V }& M$ R0 m4 C; H keep if dx240<`tempmaxp'
( N( |, n, `) ~) ]; O$ |, I
' @7 b9 K9 G1 s' z# _- k keep if ddy240>06 m% X, @* y# {" i6 V0 d
count7 ]7 i B+ T3 d( ] g
, e- d6 d% l: u+ l, m3 ?
if r(N)>2 {/ @/ L' ^9 Y o4 W6 q, g
# g! @4 h7 ^0 x+ B% i1 \+ n; ] pkexamine dx240 ddy240
- }( S+ h i: U ]1 Q. b
) e. m k) q$ N: U local tempmaxphddy240=r(tomc)
+ I3 R, N# m; ?( ?) g
- W' Q) V7 G1 Z3 `8 L- h restore7 ^- e' `# K5 M3 Y
}
' a0 { v* J, p4 u( ?( B7 x2 z/ e. g$ m
5 K5 k( _" P% n9 E else {; {' v7 Q) I& i2 i8 V
! C& F( s% N+ Y6 C1 K% c { di "cannot find pmaxphddy240"
W9 d5 _6 e) `5 r$ X restore8 z/ j, m g+ N8 [( K
( v ~0 ]! M3 q, D sum dx240
/ D" c+ P! t; ?6 P* p2 L% {3 k local tempmaxphddy240=r(mean) 2 v2 T6 n0 T+ g4 m& W
, X# ]- ]* @. M, |
7 Q" ]/ [4 X K$ o0 [! \4 R }. p2 r5 O$ z! a. n. @# ?. m( y! \! ?
9 b. _9 P6 ~4 t0 j. w; \ ) Z/ ^( M b' o# E c
8 Y4 z. {7 l9 a8 N) Z$ m F9 ` z% t
7 a P1 z* [1 }, _; U
4 Y3 @* `5 B. Z' v6 B4 _
1 q3 U0 i( O. z9 e. U' F* O gen pmaxphddy240=`tempmaxphddy240' in 1& {/ k8 j4 _1 H" m7 Q/ d* @
, Q0 G# b+ _6 q6 Y/ Y& N / p+ D: i- \* S; `! x
*-------------ddy240pmaxp右侧低峰值 -------------------
' R3 a! ]3 Q# J1 y! Q6 Y, R% f & L# N. n+ n8 K! ~5 x
preserve
: \* A9 l" r, n6 g8 i/ c } D
$ p' z: U _. ^/ A. p, {7 ]9 H5 O keep if dx240>`tempmaxp'
Z: g4 A$ X% C) Y) g0 O
1 a6 y0 @6 L o! c, t6 e gen temddy240=-ddy240; o/ `" A/ {) d7 s- `
# E, {9 m! p2 j
keep if temddy240>0
0 f3 }1 {; t' k
4 [( D+ Q6 U- B5 c. h' W( B count2 X ~. |+ g0 k1 o. O( I
N! Z! P0 w+ N
if r(N)>2 {
* J' W( f( Z* q9 ^, I # T7 Z9 L2 q! C& \1 i5 [, e9 Q
pkexamine dx240 temddy2409 ]8 {2 ?, V( W" v6 h
, E L/ x3 L7 b4 H1 w2 Z
local tempmaxplddy240=r(tomc) , `$ E5 z' N$ W" L# h8 E& y
restore$ x6 v" R1 @; k2 G8 n+ [
}. i$ D/ b% O! k
l- s% `/ ? x1 d9 G' N
else {
, S& y$ X: e1 u5 x( v! ^( W restore( r# `1 D. `9 O
di "cannot find pmaxlhddy240"
8 I1 D: w5 t- ]# A" @! e- F7 f9 j ; k+ n( N: ?0 y& R( z
( X) ?. ~4 [# ^) I4 F) Z3 E9 s# \. F* X sum dx2405 m8 V: G- ^4 @/ E% q& X4 `
local tempmaxplddy240=r(mean) in 10 x& V6 p% O) e3 Y0 ~$ u5 s6 z
5 q% x. ?" T% F 6 D' o. g& c: ]1 W- |) q; v* m7 C
}
% t) V8 S0 P7 i+ F7 C j: t# e8 f
+ |3 V: u6 s5 k9 u& @8 K
3 S t, n8 S- p 9 W: Z6 L0 J: {& b: ^' ?4 g* }
+ `( W& v0 j! C
! v9 V& ?& p4 X' S" P( J5 A
7 E3 Q: P# }' { gen pmaxplddy240=`tempmaxphddy240' in 16 B5 ~: ^3 u, Y
+ u) c" v1 k0 { *-------------------------------------1 r) r: Y9 [9 u4 o2 i
; u6 T1 r6 @, A2 g# { gen price5d=v5 in 1/20
7 s6 P8 _% ~9 [) B+ k : P, C9 c/ |; ~& L3 I, k0 \
gen price5yy=_n in 1/20
" u3 @% y, b- p8 F3 g" s: ~
! W# d$ D8 W" P# u" l! ` gen price5y=price5yy*(dy240max-dy240min)/20
4 @9 i) Z) f5 f9 }" f5 \ ' ^! ~: M ]% D/ R
*price5y &price5d8 f; P% _- P9 W' e
+ P6 |7 U1 y( Z/ P; o! u* l gen priceny=price5y in 1/ V8 T5 d7 P& m5 `" t# I$ O7 n
/ O0 `7 B" |4 l0 |# d, }( @' O gen pricen=v5 in 1
* v8 \$ u/ x7 W4 H7 u3 H: V6 U, i9 p6 n$ ~3 P' v/ ~
% Z: ?! G: @' g( a
*priceny &pricen+ k3 E2 e4 ~% j
: e3 S5 V: j) c2 q2 f* U: b
7 T# [0 X' }# Q
*-------------------------graph------------------
2 \! m' R; U& M- u# K 5 S, U2 @; R0 O6 [8 z) z5 d: i
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)
5 P1 c5 l0 u$ ?$ J% A0 Z6 } ]/ }7 ~* l c4 S! h7 }$ S6 \3 ^
* ---------可选项目----------------------" [3 F; S4 x4 H, V+ U
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
4 C/ U( R5 M3 i) ]0 H0 [: t# j: ?}9 |* o- g& h, k" e
end
5 H3 k2 Y1 z! ~2 Q |
|