|
maodeng 发表于 2013-1-28 13:13 ![]()
& w! S, @4 g* e0 h. u. hello 300236& l# ^; r' r4 P( `
statement out of context
$ u. V' R2 G: S; br(119); ) m) {2 m! M& c6 M
抱歉,最近太忙了+ s6 K1 `9 q5 V5 Q+ T; O5 F
, \/ `8 Z8 o# e$ v9 b300236 我用下面的程序试过,没问题
! w: `4 c) ^2 C9 f5 B' S' A) t
- ~' x9 Q& ? A, a) K& F! j8 N你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
+ V1 F& Q+ q: z# ~" w& i6 [( N
+ R" G6 m0 R# I& w7 e( ucapture program drop hello8 h( s C4 @8 u3 m |4 D9 `5 A
3 [) v7 ^! k( [3 i9 p7 qprogram hello
+ q9 G2 v3 ]* E1 g+ C' y3 j: h7 \# r8 s2 I% j! ]# O
quietly {& M& f7 a7 \8 b
: e8 l5 }, }2 D; {; v
clear
' f6 r/ v, E" W. J2 u
: X# ]. ~ V. a2 |! x; d* ecd D:\stock\test\source
; I5 Q5 i q: V( K5 q$ E
; B- p/ h% u. h2 i" zinsheet using `1'.txt6 K# g( l( d# U* i2 g& ?
Z# y0 P4 g! h$ w2 r2 t9 @- N
keep if v5>0+ v9 ?0 o* D% [ l3 H9 Y( w) y5 t g1 c
( ]& N; B6 K! E1 y5 R, O
gen vt=_n
" v5 ~* | S' e+ O$ Q ( }9 w$ j+ Q, z" p# p$ J2 |# I* r
tsset vt
" H: N7 m; j; [# U" \3 w3 r* F
6 @2 t* b' m% p3 T$ m gen zf=D1.v5
T% J' k( E6 p0 P% t s* ?/ V" m
gsort -v1
2 w5 S/ W; T3 w
3 u i9 e" O0 ]( X8 t) z gen avol=v7/v5
- |0 s. D0 g9 B7 D 6 Z1 x a8 ^! E! P) A1 X5 i$ C
keep if avol>0
% p, S7 {; Z7 w" X- @
+ ]; }3 h1 {: b& J; |5 ~ drop vt* v, Z; M+ R& Q- f: s3 B) m
7 N0 L: ~* a/ p) R7 d+ |
gen vt=_n
" [7 F3 [- H, [; X0 o s
% ~9 ^) q f9 R- A" T+ E/ b% U tsset vt
: r/ N3 i' d8 i9 }) K* l
1 n# j/ \; o6 |/ g sum v5 [aw =avol]
% K+ v. V" x) s( @2 K" D! X& s
( }0 T6 t( F3 i6 L gen amean=r(mean) in 19 g# f; Z1 s3 U2 Y3 x( w# q' k3 d
, {+ Y: [& X) s w; j7 c9 w; j * 总加权平均值 amean: f. v% @5 h( K' i# R
8 ~1 h X6 }6 E6 z$ y
: w, X( s5 b) `4 @2 {/ B1 ` keep in 1/240
7 G; Z) d; i' L1 t% M
% ~+ [ r9 r# ] sum v5 [aw =avol]
3 I( Y8 J2 A$ t9 n+ j8 ?7 t* M! Y* b
S. ?" \/ J$ f gen mean240=r(mean) in 1& G5 ~& O, ~. s/ Q
7 Q0 I5 f6 t& X1 m
*240加权平均值 mean2409 V2 u' d8 w; h; d4 u8 G
8 R. E( q$ d' H/ i set obs 500 : l3 J) B; C* i" a# ?8 W
& G% I% k9 C3 V0 s
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph- e, G' N! W- \' O/ u4 X7 p& w! Y
/ r3 X* U( l- p0 s( e
*240 kdensity(dx240 dy240)
& S4 o) T7 G. |* ^% f7 Z . m' V! n N, a% S4 b) S1 [% Y! s
sum dy2403 }7 _, G: ?, b0 P, I
/ b1 P7 a7 h% S5 H: G7 D u+ z
gen yxis=r(max) in 1- A" ^( r5 s1 _, `
4 O r! J" X9 E; F; R+ \ gen yxis2=yxis/23 ~: z, u. k; a) K
3 J4 T7 A& ` o *yxis
! T1 Y" i& `8 x* l H
' l5 w2 I2 E' _7 w* w/ @ gen dy240max=r(max). o/ q% `" m! U7 f2 ?
3 x" m! U# c8 a. q0 F8 @ gen dy240minp=r(min)4 j x l# M0 }
9 U4 A6 c4 `1 x6 l1 n
gen vtt=_n( P9 g* B& O i( L/ b( P2 a) K
) H9 r: Q8 C+ }' M+ Y* i3 q
tsset vtt# x% o! l4 @( ?; l! ?
0 X" {" @. A' J' t* L3 Q
gen ddy240=D1.dy240/D1.dx2407 y/ z- h' ]4 b$ D; b% q
' e9 h. m. h8 b" Y+ ]9 O! E9 b sum ddy240
4 _( M" r% Y- j+ ? ) u! d2 {) h0 |+ i% R) ]8 g; P4 A7 c
gen ddy240max=r(max)
& B+ ?- v* L% ]2 t0 t' i
/ S7 r: P! I2 T# x/ L6 A gen ddy240min=r(min)% F. |3 y* _& u& n: r3 h4 m
8 k& l; |8 A! K& ]; G- @ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min), J3 [5 T1 q9 n' }8 n/ b" N. P
9 \6 G5 R; w" q. r4 c; x5 ` sum ddy240g
# w8 x8 L. P2 v y, n& ~: L4 z 3 J& q, N: l( t' g, |" d; h; e. t3 E
gen yxis3=r(min) in 1
2 c' H" \* s7 [ D% w$ D, C
$ T! E6 W0 i9 o9 K% U. | gen yxis4=0 in 1
" n- w" g' T$ g0 _2 b; N# \ 8 d! k' b. ?8 D
*ddy240g
* n j0 i4 M8 _7 G. B. N ' m5 P8 m D; d- Q" C" M
' K" |2 j7 ^* C* H( e preserve
' h$ r( X$ [7 m4 p+ J/ M
9 a. h4 E5 R: ~* m sum v5 [aw =avol]
7 o" |1 O) n0 s2 n; \
2 u( R; G" |* P9 M( u( N keep if dx240<r(mean)7 M. W! K( @" ~9 h. K. P" q
6 Y4 Y, K: r2 t
sum ddy240
' F4 w2 ^2 q8 L( g. [, t% t( i 9 M% b' X/ r# X5 P# g
if r(min)<0 {
0 b" |8 A6 i: B$ J+ h
0 |( F3 X$ ^+ o% u keep if ddy240<=0: s- `' l- N: n' M
0 s; B! {0 P% Y; }3 _+ h& I count" G, g$ z- u- {& A6 I, T) k
" s. z1 H! e- Z1 w' f& u
if r(N)>2 {6 y0 ?& s4 {3 F4 n z
4 c9 Q' f, x3 t2 L' B/ e pkexamine dx240 dy240
4 L, Y) w0 p4 Z2 W) r8 U* f( B* [% }8 L 8 ]- P: [' ^2 ^5 s$ J4 ]' c9 W" B0 J
local tempminp=r(tomc)
7 Y- h4 p& [ z0 L restore
6 h: L: i' I% [ }
, Z# }/ L" Y/ D
* ]( \ R6 t& W$ I else {& G7 c$ a( R# |7 y2 U" | E
/ ~! c" s) t S# Y, y di "cannot find minp"0 L7 \* g2 c/ [9 H2 S& k8 Q
2 t; R4 g/ G0 {; P- @, ~; @3 ~/ ] restore
) r5 q* ^( s8 N( u+ X" Z$ O4 y' \ sum dx240
6 m, O$ d5 ]+ m* |: J' b8 _2 M. d local tempminp=r(mean)- q( I/ z+ [" W/ J! D
8 r8 Y/ ^! H* L( L ] }% \3 `: ]: s- ^) ^
}# L, Y7 u3 }) \% V- m
else {/ L5 H" Q3 z x
! N& P) Z/ E+ v( `* C keep if ddy240<=r(min)" ^) }& ~4 e& W/ C
3 i" y/ y' R) A$ x4 c
sum dx240
5 m: |( G* W, V' v , p6 A* I6 K+ I7 ^9 y
local tempminp=r(min)( ]; q8 I3 V" v1 N( X) Z% k% z. Q* u& K
restore
3 {8 K! r, z3 @! C, A }# @. u, f) |) o2 x. e% A, y# T
7 v3 m, C* g) K
% ?. U$ \" ^' |8 K4 n' _, R. g: K. s5 ~! O7 u, W5 R
gen minp=`tempminp' in 1
) T3 G2 p$ U0 g+ }; C *240 minp
2 ]2 M* B i' I4 Q6 ^, ]' o7 H) {( V. n& B/ x: z
, }, D+ i4 w A1 ?5 F! _% w% E
1 [6 U) B3 Y' ? I preserve 2 v6 q, X. {$ {5 C& q- U
8 x0 j/ F0 P. ]6 a: D sum v5 [aw =avol]' j) w6 v" R7 V" Y6 O8 X7 o8 F: o
" i! s8 d. z' L! ~2 I
keep if dx240>r(mean)5 @, P0 Q: n0 c/ u* `8 k% f+ O
) J+ A- H* Q0 Q' y( b! l
sum ddy240
( O* F1 ?+ b5 ~( P$ x( h4 r ) @7 Q5 w6 ]* Y5 i
if r(max)>0 {
- U2 S+ y; ^$ s
6 u! j) ~! p- Q1 L: {1 f+ W# } keep if ddy240>=0
2 @8 J4 q% {5 E; T $ Z) o! L. U4 h% f: N3 z
count
+ u2 {2 G0 |8 T6 k9 k1 B, [+ t: t& b
# T. }" R9 n/ H" Y' g if r(N)>2 {- ], B1 u3 ^) w) x L8 w0 u/ m8 B
6 q5 h, |$ T1 q
pkexamine dx240 dy240
# n( i% ]7 U$ g! W+ U( f
* a1 y9 E/ c. T- w4 r local tempmaxp=r(tomc)
$ S2 Z g9 x* L. c& g& ~5 W/ n% M restore
$ c5 o! H2 b% w8 o7 @ }
% j! O4 j. E% {8 z2 H 3 T J2 L6 o) q& C# E' F& Q2 u' H
$ o( b& |: r* Q8 U
else {. h) H' Y& U9 W
restore
4 f9 ], H' ?' R. _( ^0 I" F di "cannot find maxp"
5 u; C5 H# Q; \9 E' Y 1 ~9 ~3 I$ h9 u0 ]+ F! u# L
0 K* z+ [8 q; l7 Y sum dx240+ @# [% x* y: f# ]$ i, N' v
local tempmaxp=r(mean)' l- Z) S4 ~1 U
: l- I+ k& `6 W
}
$ c7 B4 Y% A/ o' R) Q% v# J
9 `; Z8 q, ?3 Z }% Z$ b6 Y, I. [4 d. z
4 J& R. D! E" V- O9 \) t7 E7 X* R
else {
2 _! \; a1 C9 S; E M6 n ' [' i+ u$ A; @8 d8 p
keep if ddy240>=r(max)) N4 a7 K# R$ q8 S4 m3 o U
" x9 O" }4 V) n9 z sum dx240. m# i% k* D* @& J+ o% S
9 [, T, A( p8 {; X4 \
local tempmaxp=r(max) # F* g# j3 w8 N5 \* E' _
restore
0 ~$ ^% U' Q8 m( d7 _5 U6 g }
- t- ]' i* X. @$ _0 N9 [$ v $ j' d+ \8 b9 f1 c1 T& g) D
6 i+ d( E: E- A: q6 m8 }. r; s + d, x" A+ ~5 ?' W7 l! j( _: I
+ U% [, O0 g3 |- Y+ ~' x8 c2 s
gen maxp=`tempmaxp' in 1
( i/ w8 Y: Z1 u& S9 J. z 4 H6 E* T7 c* H$ N2 z* G) C; I
*240maxp; x/ u! C8 k9 f0 s
+ N1 H1 ], T, f: R7 n" D( i " n e0 Y" ]1 a% Y, h8 b/ \( ]
*-------------ddy240pminp左侧高峰值-----# |# {9 [( H8 ~4 E* h; C
) v9 @0 d( T( Z, n$ o$ b
preserve
! r/ c: h- }* c' ~: O
) N' q: @3 O! N \ keep if dx240<`tempminp'
( M* V/ V( z" z4 X8 ` 6 ^! j' R: m- u! k% D
keep if ddy240>0 x& _4 B3 @; k. J6 x
. a/ n% ?& ?5 b$ @
count( A) f; N9 E' ?* I8 E+ Q
8 X0 V3 ^1 L; I$ W) l7 f q& P
if r(N)>2 {
, B9 V& `5 \2 x, `' x$ ` & V6 q8 S8 f- l9 ^$ A/ l/ R
pkexamine dx240 ddy240
% G- q" g+ e7 I8 q* N
$ L- R0 X9 I6 [& m3 L9 o p local tempminphddy240=r(tomc)
! S0 z& o! F! E restore; Z* ~5 Z, [! D7 _) P6 i j9 U
}, A0 K# F$ i! c0 s! |
, A; V' p8 P9 C( A else {
% }) j0 S4 r0 |6 `6 L/ o restore
* Q/ d( [) P4 R; D: q di "cannot find pminphddy240"
8 E0 L: I' T( T4 o; G: Y 3 `$ X! j m" ^9 {2 P) J: K. m
3 e# ~5 y- v9 [% r sum dx240
7 f& V' H1 a- |, w. i5 D local tempminphddy240=r(mean)
+ k# W2 r* V( ]7 r) g% b# x 4 [+ Z$ M$ X8 E9 l3 n$ w
5 G- M# \4 N* ^' o7 t/ z4 n }& M5 T: n" X6 Q6 x' d* ~* @
7 I0 I3 X8 l1 F3 P
; [( X. m8 u: O% t% a
+ b3 }+ G$ T' o7 k/ K, e
- y( s Y" i& Z9 Y" u; p ; S& E8 Y, \8 e4 Z3 G' s
2 ~$ G8 d; A: ^ }1 T, W
gen pminphddy240=`tempminphddy240' in 1
( D0 l3 k3 ^( h) s ]' K / Q: r) i. @- f, b: L$ e* ?% B
& W+ {! l' J$ h. K' s! X) L *-------------ddy240pminp右侧低峰值 -----------------) z$ I1 R& p' p* r- \, |' m, x
preserve
1 j' x% c" C1 e n/ U
3 `, ]9 l `" U0 N! h4 \/ ~) u keep if dx240>`tempminp'
2 ]8 y0 L% _/ H( Y
# P! L5 O: Z5 a& o) V keep if dx240<`tempmaxp'
4 M2 R) N; w b! B8 y0 C( x
9 a) B$ ? t3 }( }5 V1 J keep if ddy240<0( B6 E# Z; K- d3 X
4 ^. s; v. z' x
gen temddy240=-ddy240
! x' W' F. I. \" l5 v" J8 [
) V' [( [/ J1 A8 Y count# _5 [- n ~. w! Z/ H
, i/ C% i% Z( M* t. X# l if r(N)>2 {6 B/ f3 R- ^: a) X7 t: L
3 f* ~- N0 ?3 r8 N pkexamine dx240 temddy240& K/ k& Z! q- L. I" I, l
( \8 _) ?8 P' N% t/ R
local tempminplddy240=r(tomc)
: }3 K) R, `+ L4 s- }5 _$ A$ c restore
$ p% k+ f$ j6 m% p, V$ \( n7 c }9 }3 L, J9 E" m# L3 Q# E# \
@0 c3 P" F- u else {
) K) A- `2 m( y% h. ]1 ~+ v
/ O- Y* ?4 O7 y( @ di "cannot find pminplddy240"+ {8 B* k- l4 r4 N/ _
restore
6 B. ~1 r* w! A) Z- M- A' n * S4 {9 s# j: y$ _4 V I7 M- a
sum dx240# |& s# n' ]/ F1 Z% U
local tempminplddy240=r(mean)% x! [/ K: t4 W
7 M( `/ J6 e% ^+ \+ E& s
: b2 j' o0 f# E
}& [$ z9 L. w# r6 `
( I* j" q% [/ x! ~2 G% C( k
& ^( s6 a W* \. x! v( w& z ! d6 Z* d9 x+ D" c0 A( T5 m& O7 j7 H
1 d+ S3 _8 o& }; Y
- d, q# l6 g- I/ x* D* k gen pminplddy240=`tempminplddy240' in 19 o' q6 }9 E5 o* G
7 k/ K( |# s: d *-------------ddy240pmaxp左侧高峰值 -------------------
& \0 c- W/ U' f. E
3 j: j, e: q; e7 g preserve
& B$ V" W. d: g0 ]' ?5 X 3 l; J: p% r# g* |$ q( e4 @6 f2 z
keep if dx240>`tempminp'0 p1 z4 G( U, x9 B& l L) P( C! l
1 `/ h. J' ^& p0 h3 Y9 v& U
keep if dx240<`tempmaxp': b7 A! M% ~7 t& {
9 v5 v" n* z) y0 a# b- u6 ], r8 o2 J keep if ddy240>0( z# i+ p/ [' D& v9 ?) L
count( s$ ?7 ~; E# P8 ]$ F- l
v. ?' B, q) f# J% g. V1 T; o
if r(N)>2 {
: {( L" k1 b$ G, q& x 4 P1 e9 Q1 F x# k1 F9 d
pkexamine dx240 ddy240' O3 d+ ^: {6 Y1 B/ b, L& n, q0 Y
5 ~6 B; b+ B) r5 n/ l. w
local tempmaxphddy240=r(tomc)
6 h8 Q6 M9 }9 S. a# w. n- x + T: j4 s: ^9 n3 k. }) W8 c$ B
restore* R% y. m% g4 V
}* B# N6 o/ K" C. C' b) b5 ~+ F
7 q. K Z* l; i# R- i" @, u
else {
) G1 j- \3 @# ~ f$ {: a: c( ~7 e
* A( Z+ J) Y2 g7 K% U di "cannot find pmaxphddy240"
+ x7 H+ a: M2 Z- S7 Y' N! ^; B2 Y restore1 Z: G( Y# g6 t& N
% L) M* U9 g; ~5 t H: p4 H sum dx2403 I% R; y8 p$ q7 _8 w
local tempmaxphddy240=r(mean) 5 s; h5 ]' j* P
& R7 ?6 H& V+ O2 X" b
4 |6 a: m% r# }" r- X# o- k }- K. h+ t6 w; G
6 H, i3 u/ a# p7 t
$ m; `! K4 f+ f' r& z3 P % X; n" H% w- Q$ |* Q* I1 G# v
) Q: d: W' O% r* A: E7 r
& O6 u( F$ }4 e; g* G" M $ v# o: c+ W0 [) r$ H
gen pmaxphddy240=`tempmaxphddy240' in 1
- n' u, `3 U3 O* `3 I + b: M: Q0 G9 E: E5 @, H3 F( \
; v. b$ C2 q. e0 e8 T5 M" Z *-------------ddy240pmaxp右侧低峰值 -------------------% p7 @/ Z; J9 W5 u8 G8 ` [
0 E2 e$ ^) J$ m" I1 M7 C
preserve * p* ?7 r! k% `4 b# x" Y A2 L5 b+ n
) N, O4 d* J) L `8 a5 R0 d
keep if dx240>`tempmaxp'
' M* A4 ^! C2 M% I. D6 c 1 L. q, V9 D& D; k! W* s
gen temddy240=-ddy240! \: L2 a. c9 F" O
, `4 z$ E; D: p y/ u4 m keep if temddy240>0
# @: a0 Y* G- z' w$ y' C! \$ z+ \5 {
+ d8 Y9 R: l' s: M# R count
( w2 i+ _3 \' d; `
; v0 z) D' j5 z+ f if r(N)>2 {
( [; K+ K) l4 H2 X2 i& w+ p# b
3 |4 `. K4 I H pkexamine dx240 temddy2408 v O* _" Z7 v3 D7 R8 g
6 _# V" E& ^% O' R: X, V% A! H
local tempmaxplddy240=r(tomc)
( U: ^8 u9 G/ P' u/ _ restore. p, g' q. h1 h) Y
}5 Y4 {+ p0 l: E' o( @7 L+ m
% }& C a( z/ j W! v2 a
else {
! C2 ~) r1 C1 ~& o$ | restore
# |+ L: j) ^% S( h4 ~' S4 z* b di "cannot find pmaxlhddy240"( L3 o7 R* w. y+ P( W
( {( ^: ]# b% A: E) d2 Y
5 r9 A" Q/ W6 w. k" U8 J sum dx240
) P& l, x8 |) b+ [# s' b3 f3 K" Y9 K local tempmaxplddy240=r(mean) in 14 c, g' t$ Y/ v+ L) G0 V: I
$ d7 p3 e# o# F; I3 l! t+ c
1 s+ g) h* e% ~( t, k/ ~- E! _8 O }1 A$ J4 \- J( C S: _+ g/ \$ o
6 _ q: L" x1 d) U) a
7 B0 \" w8 J8 V' b8 D
2 |) I# X4 S5 U/ a0 \ 8 [, W/ o+ Y3 P8 _: N8 a- l
. S6 Q, e; Z% d% i5 F
6 t) J% K, E9 Y! O# b( S% b
gen pmaxplddy240=`tempmaxphddy240' in 1) ?4 S! X" ^" T" W: o5 O$ @" ^. B
% X: a$ g" G) I5 R/ [ *-------------------------------------
( x" O4 j8 \3 x ( j& i+ Y$ {/ `$ e
gen price5d=v5 in 1/20
- ] y; }. Q2 _1 m
5 F# p4 S% |! ?8 S q, J' G) |% ] gen price5yy=_n in 1/20
' @, {! |8 d4 t9 Z* E# X. } 3 P2 Z0 y4 `7 L: {" u+ Y. K
gen price5y=price5yy*(dy240max-dy240min)/20; I* ^# K2 z c4 @
]' j, \) [5 s' t) i7 s6 a *price5y &price5d
. h+ s& h! r L3 G3 l! N
9 a3 d$ O2 l; J; f7 L, Q# N% i. C gen priceny=price5y in 1
) f! Y, d2 L8 ^+ e3 m2 L 1 Z$ E0 y+ }8 m
gen pricen=v5 in 1
) q& _# t" H# r1 K7 }
8 J, w' I* I$ T( P$ U6 L9 B) F
- {! x; \) N4 M8 s) q. _+ O *priceny &pricen
. W- x" Q' M0 g+ ~, e$ \ 5 S; n$ V. z# h0 M3 P7 P
) Z) R8 e- o# R4 f
*-------------------------graph------------------5 W% e. l, Z5 _& Y. N
8 F/ T) o" {5 B; N" a 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 v- u/ |. o) C' ]9 b" ]
% w: i8 u* S# ~* ---------可选项目----------------------
9 x/ L8 j f) n*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))8 _$ l% e: f8 v: D; f* ~( h# m* ~/ i
}% n& i: f+ @' E$ n; R: Y
end X& h! L! `% f0 _6 |, B a) A
|
|