|
|
maodeng 发表于 2013-1-28 13:13 ![]()
- J! l, C3 e) L* _" Z) Z. hello 300236! B( k2 |$ L& [+ V) H
statement out of context
. ^/ L4 C! _$ T _' F5 pr(119);
$ O7 u1 ]& t, ~6 Y$ V" w( ^抱歉,最近太忙了4 W' S' k8 T2 [) k5 i
; z9 q X! m8 [: X( V0 y8 d% H
300236 我用下面的程序试过,没问题
% I: ~. {; z3 C' G1 c
9 J+ ^; D3 ]3 U8 a* ~ t3 E5 l, f你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试5 B6 R( m/ N5 a8 m! |- S
9 b8 m6 `5 j8 L* z; j8 @capture program drop hello
$ W5 z; t: h9 \) p' Y2 @
; A$ E0 @: Y. j- R* I6 O6 @9 tprogram hello
' W: v) Q( ^ z3 e0 a7 }+ Y0 i- c" X/ @0 C2 k
quietly {
/ r" S. ]: F4 Q/ h$ I8 v2 d" l
1 S8 ]! O! Q# V, l$ yclear
0 A6 n t. q) n: s1 J2 Y2 p8 o5 N. M% o( N% T$ _2 a
cd D:\stock\test\source
8 X$ g/ v- m7 x8 X* n4 n3 w' i, B
' z! X7 S6 }# B v% r- kinsheet using `1'.txt8 M$ C+ v5 `+ [4 Y7 m, y
" d8 X) Q5 L8 M# b keep if v5>0
0 ]: z. G3 K* ^: F " m, ^5 n8 b9 J, @
gen vt=_n$ o0 {) e( k# l8 X
' O2 j' v+ u4 t M! ] tsset vt2 D$ |8 s# @! h, X
; e/ H/ J; A( K% O- U0 y" Q' `3 q1 U gen zf=D1.v5% Q% _5 T$ ~4 r; _8 w
& ]8 r7 u7 x4 _, } gsort -v1
4 r' r! g* K& v6 Y! y! l
$ h ]9 ]' Z# H1 {3 v gen avol=v7/v58 J2 l- S# B6 t% h
( X/ Z) w7 {& A- `/ ?; e7 u! B) B
keep if avol>0
, V3 J2 H5 N# a- s
4 e+ M. s+ h J$ k drop vt. h: c: u& Z$ I; c1 M5 E
" g4 z9 j# P6 D: |) Y1 b4 V$ X, S gen vt=_n) D' ]" D$ e, S- X8 o/ G8 N- q& T& h
. L2 O. t& g4 `. H# t7 F tsset vt6 }1 Y/ Z) s5 ~- A5 G& @1 P
( e, U0 U( y6 [+ P, A- o8 Z
sum v5 [aw =avol]
* n6 P9 L. s2 ~8 ~. `+ t- d
, }8 g) ~( X9 i, g' ~ gen amean=r(mean) in 12 b: v1 s7 ]% j6 w* h) a
/ e) j; p% n4 f! `4 U+ N+ G * 总加权平均值 amean/ b; `# u* H2 H
) c: k+ O, H8 I l1 ~ 0 m) ^/ b. I! `8 W: h" C' a
keep in 1/240
8 _$ q% d* O& P' E9 v2 a$ D2 W6 L/ U( U9 W8 {5 u8 B0 W- _# h$ w. s! h
sum v5 [aw =avol]
6 v( x% y5 C9 D- q! U+ g
6 V/ G) Q4 ?: _, T* a! R# e0 ^ gen mean240=r(mean) in 1- ^. J% L0 U# X8 T) o
6 j$ j$ N- }7 z$ V N' Z& o0 \3 b *240加权平均值 mean2406 a' @* H' C: s# M" B: e2 ^" _
5 y! z8 X1 M* I, B/ E/ @) q
set obs 500 6 R0 H# @. D) L! C" B
" W* x3 _" I- I8 Z
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
2 P3 X9 R- D0 V% `7 F- \ p a
& T# {3 p: E2 C- B* A: o *240 kdensity(dx240 dy240)
5 h7 M- T- J( v4 E0 N
4 X) l5 L, i5 u9 f sum dy240, l. R* O3 C9 i; B8 D* C7 n) c3 U
% q) M4 w/ W0 a gen yxis=r(max) in 13 r8 y: w7 c! Y
2 M- ?0 k$ S* z' I
gen yxis2=yxis/2" V- w" b+ A* a3 \' O' d
$ J+ x; V9 [- t' y0 j *yxis1 Y Q) H4 h" @
/ H# E; ~7 L" z T/ Z- o- E/ R! r* @ gen dy240max=r(max)
% u' [5 d0 t3 v+ Z1 p! m8 W
& [& Z9 v _- [4 O gen dy240minp=r(min)8 d$ l: ~6 V {1 z' c& ^
0 M/ ~, J) n- @5 r
gen vtt=_n. f2 h: `4 O3 Q
- h9 Q4 z( _: E! S3 [ tsset vtt- q2 d4 F% p6 h7 b5 x
7 m* m& R$ |: v; n- W
gen ddy240=D1.dy240/D1.dx240
1 [! d: \. G# d" i- u& R
7 ?& P3 Z7 O7 e3 f. m; s4 k sum ddy240/ G8 `- Z2 P' r. {$ a F m0 @# p
/ n/ w6 d) f! n
gen ddy240max=r(max)# e% B- `( K. y# f e+ ]3 u
. v+ j& p, j' `- I& ~$ B
gen ddy240min=r(min)
1 Q, s* n9 R6 N8 u: U - v9 u1 H( [0 s$ K* V- h0 p
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
) R- D3 J( h5 p& C
) y* }* X5 L2 | sum ddy240g
; H( }8 C0 m6 [( A
1 H! ?) `9 K) A1 S gen yxis3=r(min) in 1
$ `/ i; g0 z' `3 @) U7 e 6 H/ ]4 q, t8 P* j$ J$ i; v
gen yxis4=0 in 1+ D) N$ ~5 N# a1 W" Q7 I6 c/ t) A
7 K6 V( L+ B, ]! \ Y. ~
*ddy240g
- Z+ d5 B; F, ~+ e& D4 v @+ z
1 j8 f C1 n! v7 P. w; e
/ C2 u9 T! T R8 Y M, g. ] preserve 6 _3 l, P) a! u) y& y3 E
2 h* V( |5 _% C
sum v5 [aw =avol]
+ {0 |8 Z/ u$ V! C" i! N( v 3 p8 y% ~7 v" J
keep if dx240<r(mean). V" c( t4 t1 k( K
% O/ o7 A* W1 T2 B# ? sum ddy240- ]7 P8 u- F4 o4 m+ g) Q/ q c
3 f1 u- C1 \- S- ^& K* r' s
if r(min)<0 {
0 P! L3 l9 S9 Z
+ Y' ?/ C6 y0 a keep if ddy240<=0
; |; J) ~. X- o; a 9 b9 G' D9 S& s/ [+ X# ~
count
! Q8 z- [0 N. l" y R
4 f+ l" P) L+ Z9 t if r(N)>2 {# f( v$ j3 R+ O ?+ V7 d. H& E$ b! L
+ H# Q5 u( s( ^( v# v3 H# z! y
pkexamine dx240 dy240
$ [, L, V1 Q+ t+ ]6 ] 2 `- I; Y, Q# O! A# G) x( _' e, v x
local tempminp=r(tomc)
0 k* ]. h( _7 m6 [8 S7 r4 V0 L+ [ restore ! a. B. S5 Z- r& f! l3 D
}$ \0 } ^: C0 A4 L9 P
5 x' z- [9 a" o4 c1 a else {- z: Y H- F2 f% G. z: U Z
: [# |" l8 L Y) _& P' p
di "cannot find minp"# Z4 s# d4 w8 n; `
9 a6 y/ o! k2 T+ b restore
7 S7 u% m( Y2 S# e sum dx240$ I3 j, a/ ~5 ?5 G
local tempminp=r(mean)
- d2 _( X6 \9 M . U. C8 P3 T8 x7 ]6 F% |
}
4 m4 L1 ]! R J }
+ N A( F% x Y1 D- `$ r) x6 i else {
: C0 U" a6 X Q
$ f3 z- M6 t; E m; ^6 b6 j keep if ddy240<=r(min)
6 x) o4 z3 H8 S7 C/ {: ?$ m
3 p; p: B# U0 Q, D+ T. a; u8 M sum dx2408 ^/ m9 ]" z" H" K% n! R+ |
+ A& m; A- e. U G8 q& r7 m8 h8 K n local tempminp=r(min)
j5 ~& x M J% y restore 1 U4 \5 a( e% q- X5 e+ n
}6 q5 t& s' n( F+ g# K6 m
$ {; h, i. X% ]: G- s* P4 q y% r: ]
4 D% O+ r& n% U6 T# [, g* f; u% ]2 i* Y gen minp=`tempminp' in 1
& s6 o1 t+ k, p0 G0 ?+ w *240 minp$ p1 S( E3 c4 B& e/ h+ |9 K4 C
) _7 ?8 A9 k# Z7 R$ r# g: K' u- D. R) l6 M$ g K: K
* A6 _- I" d& q# |* E3 e preserve 1 J- ?4 b1 Z- z9 J6 G. k
4 p; p" A7 t( L1 r0 j% ?& P
sum v5 [aw =avol]
7 f' j) c/ l/ ]% f$ h8 ` X0 {: h; ^
4 v/ b! R% q n/ ~1 s. `) Y keep if dx240>r(mean)7 a6 L" a9 @' c. t
9 h `' V/ }0 y3 ?3 b/ m9 `$ X5 c sum ddy240% @9 n9 y7 s: L- J( C
, M! [% L8 m0 N' U8 e; T( w1 X5 Y
if r(max)>0 {
4 S m( i. ]# T5 r
, Q' g6 o0 [/ W0 M keep if ddy240>=0% b! Z/ W3 N# n/ R- X7 w" E' T
/ t" I: X* h+ p5 [6 v* p
count
6 a4 P0 j% M. o" N . J( ^5 U5 j& p# N F; V
if r(N)>2 {
8 g Y2 U+ I$ A( i- ]; V
! T, B$ W! J+ g4 _ pkexamine dx240 dy240
+ }2 t/ e) l* t7 K& R Y, E# T ' k- {" H% J3 b% P3 M k$ U5 F
local tempmaxp=r(tomc)
F$ ~( i5 i% r2 Y$ f restore 1 f: n6 K9 N; i. s: _' A
}+ H/ `4 f4 n% X
% g0 A+ S2 j0 i% l4 h' T" f4 N) c4 b
2 j* S! Y7 M0 z) l4 O, N! U else {
* [& _1 ^' C: W2 d# }/ a2 Q restore , h( A. V, G. \% Q) C# O
di "cannot find maxp"
3 O1 J# K8 r$ O% G+ n 8 f7 Z( O: o- t% x
$ r2 w6 r8 v* [0 N
sum dx240' T* }/ j# z2 T( E6 ?4 l% t
local tempmaxp=r(mean)
+ O, c0 ?6 h$ q2 H
9 c: `4 C, u* m5 X; Y# ~ }$ S: P9 [- U: e2 L
5 R% Y0 k7 r- n, F }3 w$ e7 ~/ y* C2 f3 T$ n0 D
6 h: B4 D5 l- s. t
else {
3 G4 |2 z- Y+ n, F6 O+ A* E : k9 O7 k/ z6 `. A$ w' o
keep if ddy240>=r(max)( x4 |( g. a% w/ h: l
" q. Q: f5 I( r sum dx240! p+ f6 t/ F. d! c' L6 J
$ A3 m; z6 c& i: j0 @
local tempmaxp=r(max)
3 \' K! A: h9 j# y2 B restore + X1 ?- H9 |0 l
}4 _: M I1 M" a* ~# C( M- s
* s/ U. I% _4 B9 L) u. Z- p
! k0 P; Z; W" \6 r& n 3 r4 k! E/ t# y6 K
3 B/ o' p+ F( J5 r4 O
gen maxp=`tempmaxp' in 1
* W: O: k& r* o0 Q) s" w 5 W* j4 Y# h' J q
*240maxp
1 Z( C* F" q4 n9 b8 ~ 9 R, m! w1 c- M E/ ~, }5 }" a
) a. X- @! W; y s, Q0 J
*-------------ddy240pminp左侧高峰值-----
, c0 [" w0 P5 i/ ?2 g9 Z
" F; j" \: X& p+ H7 E0 A/ X: p preserve
# t( u+ E% a8 I* \" K( s) d6 j/ a
3 m5 }" s( a4 S# z; R/ p! J keep if dx240<`tempminp'# e3 |% {, m6 _, n% ^
5 \7 W( L. b5 U6 M; h6 c7 i0 J5 ? keep if ddy240>0
* Z5 c1 |, r0 a' t6 h9 Q2 C
5 |- Q7 l3 A7 `5 J) x; u# R6 Z6 ?7 m count- m- C. q* \+ B
9 ~$ a% ? M: p M d
if r(N)>2 {
$ {6 W3 v$ j7 s" R9 Y . k7 r E/ k& F, l+ ?
pkexamine dx240 ddy240; v, ^1 W, l r. x' v0 _; t
5 P; {- ^# l) d+ C9 F% B& a; o0 b0 i
local tempminphddy240=r(tomc)
4 r8 m# y8 w/ ] restore5 x+ r: V; X; D% H
}
$ u9 J, ?& g3 |! b, w7 ~ X- e
9 R; B. f; t9 r+ p6 _- d else {
( @' @- j, e+ B+ L! Z0 W restore
3 c$ [* {1 @- U) I0 h+ S9 Z6 | di "cannot find pminphddy240"
8 n! K* O9 B4 Y. |; n+ x # X* L& X; u. |: N9 X& _
' l2 o7 F6 P V# B" a6 p sum dx240
$ ~8 r( a0 }$ c5 _2 J( J$ F local tempminphddy240=r(mean)
0 j1 h5 c& N8 v4 _ - N# z4 n8 e+ H" y' `
5 ?1 R7 I( H7 g* l9 U0 C }; X8 {* G. @7 R8 {- s
1 g3 g3 k1 Y2 [4 U) d, U# t5 J: {6 l! @
, N! ~ {* `, v0 q, s/ Y2 V
: }: B- G7 a, D. f' I
+ C1 g9 M: ]4 P1 v- @8 b + \! K7 e. j s2 U; ~' ?! K
" o, g2 i8 j3 _* J9 I% ~2 z- L gen pminphddy240=`tempminphddy240' in 1
$ K7 N7 a7 x# E) Z/ _9 i5 H6 W- l. u ' Z- z! B/ w: g y q' N3 D
- S* h6 e- X4 O! d/ Y3 _; K
*-------------ddy240pminp右侧低峰值 -----------------, u! W1 c# P6 v, d# ^
preserve
4 N- A5 v! i, W" d" H1 K ( `& ]" h% W7 M
keep if dx240>`tempminp'8 ~2 ^2 _: F k% V3 X
4 X. B9 T9 ?; g: t
keep if dx240<`tempmaxp'
N$ Q; U! P0 C7 K9 J8 f9 Q0 M * a" Y0 ], H& ~5 n
keep if ddy240<0
' ^ b2 K/ y/ s c9 g! c - q2 T# u. w5 G Q; W' o
gen temddy240=-ddy240
2 X, b8 K2 z9 n
7 K4 |6 h+ E- ~0 e7 |8 G: o count7 n3 X; s% \0 A; a2 Q7 [4 w
/ K8 _. _: h0 m1 d% d# c if r(N)>2 {
# @8 v) V, t% X5 y
; X1 y- U5 C/ f( r* Q$ D# } pkexamine dx240 temddy240
* }! }! |% D6 P- _
" o$ S& w- x. g; w9 Z( ] local tempminplddy240=r(tomc)
) k- _/ u$ a8 l restore
! z% V% R* H- x, L' \4 } }8 o( M. c: j0 M7 c
. A0 r/ P* r" M else {7 y9 c0 Z2 V; Z8 i% A
* @; B) M7 O" H! v$ N1 D' W' I
di "cannot find pminplddy240"9 u; u$ K7 l2 ^
restore8 n1 c9 ?2 t! W' R: k
3 e9 l7 U, A1 k7 E' r, z
sum dx240
+ `1 g1 G/ E3 O% T) I: d local tempminplddy240=r(mean)$ K* W" E6 ~' v. R8 y4 H
- N$ e9 W! K: O" ^9 |
9 @7 J- V3 Y c
}
% M* O: F! E( [" ^
8 D" l+ a, h: b. d( v R/ M7 }8 i+ Y2 K/ B' r
! ?' O/ k) S2 x) y7 Z
" f0 s' c/ \' {; z$ J, F) s! d4 I " v* w6 L4 r/ x5 `: D* Y
gen pminplddy240=`tempminplddy240' in 1: X+ l/ D/ W J3 H/ C
3 _ C0 N" W+ R* N; b0 Z. u# V *-------------ddy240pmaxp左侧高峰值 -------------------. A1 N p. E& S) M1 U
: G0 ?# U" y! L preserve 4 h: S7 m) n& V0 h) G2 Y& d
! j( H0 u* R9 x/ X5 R+ ^& S; J% H
keep if dx240>`tempminp'
% C$ K* }6 i" C" ~# s- h
# [+ E0 K7 ]. { keep if dx240<`tempmaxp'
( ~" ~ X' D: E! R% I& \ t% T ) q' P: S( M8 B
keep if ddy240>0- L, [5 `' u$ q0 L, ~8 B5 G* D/ h
count
5 W7 @/ |2 l/ _6 B% d# f8 _ 2 t$ R0 T% p) p. W& B! n5 `
if r(N)>2 {6 @, h4 U; \" i% ?1 K
) @0 t/ q2 g% Y% ?# y$ s' y! K
pkexamine dx240 ddy240
/ G: Z4 h+ E A6 U, T8 ~0 m% j
1 O5 O1 y' X3 a local tempmaxphddy240=r(tomc) 6 a6 l: a: T2 M0 S- J1 c. l
3 Z4 y, X7 t5 I( Q; v& l restore
( p. f! {/ d) Z0 D+ I/ ~6 } }! u* | N1 o, r ^
& M; p' O$ b( E' D2 ?) g
else {3 T1 B u6 }, n t& X a
9 _$ {9 L4 \0 o% G& G di "cannot find pmaxphddy240", a* q' o+ Q$ c6 y7 k
restore, \8 m$ C% Q: k; k6 r8 I: r
6 X( ^; |! w% H p9 } sum dx240
/ c4 z `5 B3 s% B9 r9 {: o local tempmaxphddy240=r(mean) : X w; p# D- B8 S Y
* {# R ~2 _ Z3 Z! v) K
) r( }0 W0 Y, r5 \+ t0 n
}; d$ K+ j D6 @6 Q" M, E
0 r8 ?5 \9 _$ m: ?
H1 r7 [. \) _* L7 x
4 ^3 u' U& n0 U% x; [
4 u% K/ ?& n5 F, X) J6 y ) ^7 ~; Q% m8 A7 a0 y% p! J* l
8 F2 a2 t, R9 D! u0 o gen pmaxphddy240=`tempmaxphddy240' in 14 f* V& C0 K6 I( ]/ |' t8 g
# Y2 v% ]- |8 q, ?& m
`* i* w) g- n: i) i! X *-------------ddy240pmaxp右侧低峰值 -------------------
4 o5 ~" t; Y2 X& F* U- Y # ^9 j& i/ @( K* @9 S
preserve
5 ^0 i+ E Y) q
/ B+ \/ d/ v: k* e/ h8 K keep if dx240>`tempmaxp'4 G5 U, G# q' d! s, Y4 X4 r
f$ D/ l. x/ s4 ^ gen temddy240=-ddy240
# @: r$ ]2 S) t6 I& E5 E
% C! H6 |8 s% i% m3 A0 V% a4 A keep if temddy240>0 L' a+ K# G3 a0 Q: |# L" I5 `( h
: r* [" a, K2 I$ F( G count
6 B8 W' R6 n5 _; W$ v) c
$ ?1 R8 S4 r/ K, a if r(N)>2 {
! i U6 m4 j. S5 [6 w, u 8 G& }; V- O9 [8 ^. U- X
pkexamine dx240 temddy240
; H$ D( U2 {2 Y/ X$ h6 W8 v4 ~ 2 R3 r2 m# [ t6 F k1 y8 [ ]
local tempmaxplddy240=r(tomc) + y0 R! T" L+ P7 o- A! W2 d
restore
0 p0 G# A7 `. d/ k% e8 v4 C }- U9 j2 d$ z7 @) ^* H6 X: i9 U* F, u
( {7 t- \. @! u9 B else {2 D* s& d; _& s; D; e$ g' q/ F
restore
$ r, d- E$ o3 y6 f* v ]1 D# n di "cannot find pmaxlhddy240"2 ~+ {: g/ n5 \
& E, V( g1 |* b3 \7 S
# p& y' S' u- ^% n: s4 w sum dx240
- Z& a, L T$ ?+ I& ]1 c) W local tempmaxplddy240=r(mean) in 1
" g1 o) J' D* f! Z+ ? 7 b' `* \4 q' `! i& D1 m/ W
) i) h. g( b7 M( z; ]7 ?% X }6 b x' H4 I: d% Q v
" i9 ]1 X6 f; h* ~3 B. T
3 E4 D4 J; v7 S+ R; Z- ^
$ d+ ]* q& z3 ?+ ^! w4 ?0 ~5 T
8 z/ b; R4 |5 [' k6 Y4 j/ w
4 f$ U7 K; k k5 @- r) }
5 R6 X$ W+ i3 `! P+ g3 \ gen pmaxplddy240=`tempmaxphddy240' in 10 `' v% H, d2 E" H w
0 @7 Y" D- S. A: B *-------------------------------------8 U+ g' P% [9 t
& M! y, U/ p* f gen price5d=v5 in 1/207 f% _' s; O1 a8 K- u
7 V' B. T9 `* f) H gen price5yy=_n in 1/20
! I6 ]' C r2 p% `! w" u3 k
0 E' Z! \/ H" Q G4 l gen price5y=price5yy*(dy240max-dy240min)/20' t; O) `5 t& a; b% t
: G" x2 F( P* D' B- E *price5y &price5d0 p% \# ^. J6 l
0 I: e* a1 ]) y/ z# ^
gen priceny=price5y in 19 j0 o2 a* i. m; P# y" B3 U' Z
9 C8 z; l( R' v3 S4 r" \% O9 ~
gen pricen=v5 in 1
5 P2 P8 c Z* N0 W3 L2 H) `
3 ]8 o+ m7 Z; C
. Z; C7 ^; H& }: a# b7 V) } *priceny &pricen" j7 E" N+ U9 y4 p* x4 i* M
4 g; G% h: D9 v! i+ W) O4 [* w
3 F5 i9 S+ d, Y *-------------------------graph------------------
x3 V# A8 G" I7 Y 0 \* ]$ W7 C- C: q- b
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 k9 z7 z. n+ f" @) d
3 ~, J+ X9 L+ V- q* ---------可选项目----------------------/ j: P* Z& ?# Q9 A
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
9 @2 P. V* V* T}# N5 u' B) }; R& r9 T: x: D
end
6 n, E" C. e9 |4 t6 [9 W! S# R* C5 z |
|