|
maodeng 发表于 2013-1-28 13:13 $ x4 Q* t+ v, [5 S! V4 U
. hello 300236( Q# q. n! j" O k
statement out of context
/ p3 q; [6 f2 X* G" D2 N y5 Ar(119); $ N2 g7 [* N9 l
抱歉,最近太忙了- k" b1 x; Y6 h y
. e7 ?. G# t e+ D5 F4 A. D300236 我用下面的程序试过,没问题; K3 ]% j6 {7 `5 v* W
P, ^7 V+ k! Q* `$ ]. g7 K+ l你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试3 e+ }$ Z8 I# f+ R5 B' F) }
- D7 j0 i+ M# B$ K% Rcapture program drop hello* z. L" @. }& ?$ k8 |
! z1 A& d6 D1 V. x0 m# l
program hello
, u/ J! P* @/ e2 M7 @1 M: G
- g; C. z) {0 g quietly { W! P4 Y2 U9 ?2 N
# { \: q/ Y1 z, K7 tclear
* n1 C. N( N0 }5 ?5 R/ e' w' e2 k0 J
cd D:\stock\test\source
. p! t0 Y& n/ w8 w" v7 J0 t% R5 c% q: l3 K& f6 T0 x7 B
insheet using `1'.txt( j) J0 ?3 a6 q* ?# r& A, t
( P. Z. K! k' h9 T, Z8 C$ Y keep if v5>0
/ N$ l; g1 F0 a$ Q2 ~: c0 p- v" @( b! Y , @8 e6 _! w5 w$ F" b" p- S
gen vt=_n
2 W" q( ^; ]5 a$ f; C( q# i. n
- }4 A1 W& e7 }6 J# C9 e% ` tsset vt
% B4 U' W T- ~0 k6 g; `- I9 j9 V/ g
gen zf=D1.v54 M4 \- h# A q* }' j) y1 R
, ^! I7 J% }6 B, L% U2 W gsort -v1
# l5 ~) u1 U% k3 R
! w' D8 Z4 d0 g4 _ gen avol=v7/v51 {1 C' [7 N# ], r
$ N( \+ J% x$ m1 r; z5 M2 F keep if avol>01 @! k( Y2 J& \: D- E. o
8 e9 u0 P- X6 v) ]6 M
drop vt
1 T9 q3 d9 ]1 u4 K5 ?9 N' j2 z
! @, A# r. g' q$ F gen vt=_n
3 i5 E- G% M v# ]( {0 ? . v5 j% v% K/ c5 t6 i0 x) e% P
tsset vt" h8 j' h. I' L
' j" P: b% W$ _; e4 D
sum v5 [aw =avol]
}+ A) z" ^) V
8 F6 G2 z [6 K3 K# B+ Q) n gen amean=r(mean) in 1
% I Y2 P$ ]) w9 ~) j. _
7 H' ~( `8 ?% Z * 总加权平均值 amean/ w3 X \" | v( ?6 H
5 f# t* L4 H0 V% z 1 [7 V/ _% f$ u, v
keep in 1/240
6 G9 j, \% a7 Q/ N5 K, q7 G" ]! M! X* V6 R
sum v5 [aw =avol]& n6 g, o" D2 R2 b
# n' B, y0 T" x/ p
gen mean240=r(mean) in 1
2 H( w' z. k- h/ O: f ( x p& t! t0 B0 J2 h3 E5 T
*240加权平均值 mean240" w$ N5 o* n1 G I {
) d" t- a; `1 Y) H2 J* i set obs 500
; }8 V u- p1 M5 ?; f8 n
4 T# j' _2 B. m5 T$ E+ I kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
/ V* f. Q, v% g' e# d
/ I% J. |% i5 N/ W3 \: c/ I *240 kdensity(dx240 dy240)) p. i& E" Y" t1 s2 `' j
! S' f( h$ @3 C sum dy240
) Y) n6 ^3 u2 e+ r4 W/ ^
/ ?# U% v: x/ h/ g3 |2 z) `. } gen yxis=r(max) in 1
; I' J+ c& I2 ~5 | . R6 Y R: j* q( V3 u: Z$ p1 z" h
gen yxis2=yxis/2$ y# ~+ f, _" q1 D1 R
3 \! T X) O1 c* \
*yxis7 ]4 T$ y: S \. \* a
" s" C" P. J: i! k; r' y/ ~: h gen dy240max=r(max)7 _% y, T' J4 Z+ Y6 G
' y/ _4 A8 F& J: V4 r gen dy240minp=r(min)( r1 d4 J* U- m! W- a4 B( b4 p
\7 F: t5 s- z" z2 w gen vtt=_n
4 N( ^! S9 |. n6 o8 U( ]
) g8 C. S) W) d! | tsset vtt
* p4 D- @1 _% h2 r- {: J9 S2 a+ ? T8 t0 U- p- j. T! p; e3 t
gen ddy240=D1.dy240/D1.dx2408 G; Y9 N* U8 w' z/ f7 g2 C9 K
9 ?8 V& @% G! m0 | M sum ddy240
% k; m, b* \" l0 i1 l
" N$ m5 @# {% C; y' E7 D gen ddy240max=r(max)
/ t3 S& n' F2 h 4 s1 L: L6 O% y8 O: R
gen ddy240min=r(min)
1 a& e* Y& M/ T+ S) G
9 N% B+ r" x; ?+ J) G gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
' x |! _6 U" ^9 B/ g1 L0 K4 ?
& U# }3 g9 A/ m4 x sum ddy240g, _4 n5 M' g& c* o! [" d) h
) P+ _$ C% A3 {# G( c
gen yxis3=r(min) in 1, `( c( {1 t2 s8 H4 p) Y4 w+ C& }
: U6 h S4 S0 R( Z% \- Y, D" u1 W gen yxis4=0 in 1/ i- _1 v2 b8 x8 ^
- ` ~( U4 u$ L% d9 J9 c7 q
*ddy240g
6 g6 f9 J! M* X$ } ' o5 i' S1 {1 e; q# ?% w6 ^. e
- C k4 J: b9 `, }9 y0 ~ K
preserve
4 g2 M# j2 p% t6 | 7 ^ T' g7 y& B6 g$ B! p
sum v5 [aw =avol]
^* q; m0 P& I, X7 X 5 {" L L6 @# {. O4 }. Z
keep if dx240<r(mean)% _1 y* Q" n" E- f
" j9 p3 T5 `- ]( { sum ddy240
+ ]2 R2 o% c" e2 W8 q
- X5 G W* |& _4 x' \0 U o- | if r(min)<0 {
7 B1 i* C* W! y" _ |, T! g4 }% U 7 J! i& X5 E( j4 g* Q
keep if ddy240<=0+ `- O7 o: K( _' |& D6 O# c
; ]7 |$ a, C# |- u2 Z/ n count
5 S& v' n3 t3 X; | k $ W# C. I. S3 |7 ~/ x6 x
if r(N)>2 {1 e4 C" O+ K3 E) j6 S0 V
8 w. d* C4 f; g) L* i0 |" { pkexamine dx240 dy240
7 B0 B) p w( D! z
1 C N: |, C6 `+ u2 _2 V' N local tempminp=r(tomc); K/ }5 {- e1 s# A, C4 y, F0 q9 A
restore
5 B' T: {" S) C7 T9 p- A" l }5 l, ~% U2 H' _
* M$ a2 G1 k$ ]8 P! t else {+ t3 x' i; j0 o9 }
8 l/ ?! `% e1 c/ K# u6 i8 X di "cannot find minp"
) r3 N+ J3 ~# S: J7 T5 d
+ }% S& k6 M: w1 j restore
/ q2 n) \' e6 B: m sum dx240
0 P9 o# ?* A7 y6 H6 w; e: G8 W local tempminp=r(mean), j' m7 x$ y" r' ~5 e0 s
2 c2 d' ?; W4 m
}
7 _9 |8 D Q, P }
1 S$ c1 N1 ^" c$ o: G/ W9 F( _+ u else {
$ _8 x# ~- \: J' E. l) _ 5 a- c, n* g6 Q6 l
keep if ddy240<=r(min)
^) A5 s* q, z( q0 _. x7 `! o
) @" D! `2 D$ T2 M sum dx240
% I0 x& o, x5 y; ?: J. q0 a" q3 @
) J+ l* y' b* y% W3 [) r( l5 n+ ~: W local tempminp=r(min)+ G% x& e1 {$ F, ?# S9 A5 z
restore
! o" z) `4 J# K2 O, w6 _; \+ u }
( J' k/ W$ U0 W8 F; M. c% Z9 ^( U6 @9 _" q% j4 |
8 ~' l5 A _( l" ^6 ~3 Z( Z2 a: o1 F' O$ U) A: E% D
gen minp=`tempminp' in 1
! ~( F& Z0 H) z+ ` P8 ^1 d) k% @ *240 minp1 p1 ]1 ]1 T J- g0 A, g4 Z
# b- Q5 N; _$ ~$ b# o; @
1 f* f& x+ d% Y6 U- G& Z' h$ t
! K: b. w- k+ T1 H+ w% F) Y preserve
9 W5 d: ^8 v1 W( C. k( D6 ?4 |7 s + I* `, p# M( r9 y+ k
sum v5 [aw =avol]& j. s% E( B9 N
# ^. q0 ~: E. t* ^+ ]
keep if dx240>r(mean)# S2 `4 x2 O& {& y" h* X- l" l, Y4 C
5 ~) D; A! {/ c sum ddy240
" L K0 j* N/ L2 c8 ]- V ' x' j' k) |! l" \* W
if r(max)>0 {
) [$ R/ m- F: ]# o 8 ^: {. y2 l. q
keep if ddy240>=0
# `& v" ]; [. i' h) q
" P: {! Z! g$ u5 Y. I7 e count
# a# B- l9 n: J K! Y2 n ' b/ j6 G* U4 E6 }7 Z( S
if r(N)>2 {
& j; D# k) h5 \3 t& f
8 s6 c3 _! r4 ?2 D8 c" a9 b pkexamine dx240 dy240$ ?! s- y$ I) ?6 a. U; I' R6 U j6 r
9 u" Y& p* e& N4 D7 b# Y local tempmaxp=r(tomc) 8 u) Q0 N' Z; I: u( \- s& \
restore
2 `0 O- _3 W0 a! |6 @ w }8 r& ^* l; ~9 [9 d) S
$ i A! g' S7 J, h, x/ Y
* r! M H! ~+ @1 S5 I5 {. l else {! p* h( I4 i7 X
restore ; S$ k5 l3 Z& o1 y6 g) ?* a
di "cannot find maxp"
8 v6 k# W2 r) A1 Y/ g1 J4 O: a9 B
0 [' H0 G. Z& t
6 _3 V- N( m2 k sum dx240
8 t& r: ?& C" U- J$ B2 W& W local tempmaxp=r(mean)
. ^& b' j* o2 D+ w ?
8 a! M) S0 E# s% C }' U2 f, ]2 g) F( |/ \, [4 @
) G0 @# l3 ], O6 f
}
" q6 f" g6 N) k& @1 Y! P % A# p# x- {# ^. n8 a
else {
2 r; N; y4 t5 c* E6 V7 M4 v 3 I. u0 f. G/ D$ e1 a, o
keep if ddy240>=r(max)/ ]& H1 Y- t' N: }
7 h, X9 A6 D" ?% h sum dx2409 ]( b9 s+ p0 j# c/ V
9 b1 ]$ Q/ o S* X e8 e' I+ q
local tempmaxp=r(max)
1 y# A$ }' X" d. J4 U4 d" D restore
7 F2 f4 }0 M- `+ P }3 W8 F" z6 v6 C; e% ^# \* y
' ~8 }3 w- D: p2 e+ e) [
$ K6 V3 m- ~+ o) q6 p0 L
/ v4 S! c( h8 n/ l9 J1 ]; U. r' E) g) J3 t7 M. k
gen maxp=`tempmaxp' in 1* O% Q1 ~, z: L% I2 T
$ u; }0 v8 K. e+ l% v
*240maxp" Y/ @8 ~0 b. B
) i/ i9 |6 z, L4 M* ^0 k
9 z5 D( N$ B& K" H# y4 U+ ]+ U) Z *-------------ddy240pminp左侧高峰值-----8 [2 ]# W, t7 T/ r W1 ?
; Z/ y+ n% a" c. d0 }) e$ L
preserve 5 F$ K% `* x2 ]/ q
- h E, i6 M% I% B! Y keep if dx240<`tempminp'
# Z# P0 t# m# j" V% R9 R # Q9 s" G0 j7 Q# e
keep if ddy240>0& G+ g* \+ R3 P* V( \3 i( }: V! Y
7 D: _* M. _# Z! B3 @8 Q. J count
6 v3 ]2 E* x) b( }6 H: p% Z; p
5 h8 m7 m, }* v9 [2 e1 Z3 O if r(N)>2 {
' {- g% \' e2 |$ \# M
$ X$ P$ ~( S# D& X1 H pkexamine dx240 ddy2402 G Z9 z5 }: [
* n' P1 V K( f( m" i' s local tempminphddy240=r(tomc) 6 [$ m/ t; Q9 y) `( ]
restore
' S- Y1 }& k' Q5 U8 l2 S }
$ o7 w0 W/ E0 o2 [
& G8 h+ P& z+ N4 U+ q: O( R else {! `3 `- W8 o9 }6 z0 Z9 m2 |0 g& A
restore
+ u% D& I! u& T# f* V% D di "cannot find pminphddy240"- l1 x( L2 s; S8 _, ^
, G5 c, b$ w% t, G( F$ s$ {* `3 J5 g/ Q ! G9 B" z( `; m$ B% p1 B
sum dx240
$ t" l X' m6 f2 @% v) x6 ^% o. j local tempminphddy240=r(mean) $ O. [4 }5 N( e/ q
: z3 |- B3 n% J; Y5 N) V* Z; ? 4 ]$ d0 R* `; M0 X' Q: K! y
}
( X% E; G2 s" a/ K: G+ S9 Y
S( s9 [, G. d' z, t - C# C5 v& Q# g- Y. g6 o
! {0 S" Q" Z; A& Z7 r: w: D + f8 C- D% C) g$ W/ c- q4 z8 X1 a' H
E- Z6 @ ]. s * p0 J8 e' {. T; S+ R+ w8 d
gen pminphddy240=`tempminphddy240' in 10 V6 z& |- H- M) [2 A" C: @& Q+ ]
& C3 y( u* |- r7 [8 b8 n
8 ] w) ?+ T9 |: s *-------------ddy240pminp右侧低峰值 -----------------
* X6 _' W( Y8 s8 z1 y preserve H) w8 `" h6 U( h% B; k3 s* ?8 x q, W
1 F; _& L1 j; y
keep if dx240>`tempminp'+ D1 W5 I% e% w4 L% J! D
$ q, `) p4 ]( m5 j! s2 Z' m8 X
keep if dx240<`tempmaxp'
( ?4 @5 |. v5 l" m6 k . F9 ~1 M! R0 @5 |( g# j# w! p2 D" `
keep if ddy240<04 I1 L. O% X, N6 C9 L% O
) d; P# }, M, d
gen temddy240=-ddy2402 N6 N% w6 x% r, K/ E1 A
. \2 R p J" y2 N
count x3 z) j3 b1 ]/ Y% X# o
; P# h8 s; p8 b; d( A7 q3 Y if r(N)>2 {2 {3 a( E0 P% }+ d: Y' X) r
5 ?6 u" q' t: ^0 h7 [ pkexamine dx240 temddy240: {8 D( h& Q2 z+ Q0 B& M0 r6 K9 D
- n' l0 i4 T: a1 _1 } local tempminplddy240=r(tomc). f9 Q. z8 F+ m2 m' f+ s* ^
restore
0 i( ], W* |1 r9 S! S }
9 }7 z/ Q/ |2 P 3 I; m' _+ e3 ?3 @4 i2 ~3 {0 r
else {1 F% g m) T$ w3 j: A4 T' Y) m
' Y1 @4 M- y) `/ O; p, g" T
di "cannot find pminplddy240"1 H# s5 I4 B7 \6 Q5 [+ F- M
restore
% N. ^" l9 R$ s6 y2 n, ~ 2 B3 J7 l5 H) ~$ j
sum dx240" V5 h% b. n3 x$ X$ Z% G- {. o
local tempminplddy240=r(mean)1 J' }! r$ R, s7 i
- r! C, V. @- \! O9 Z$ L
# `: Q) y) m5 J5 G) M) W% j
}
! h$ J/ {8 P$ l8 d/ J4 t 3 \- _- }; d- c) a- {
8 ]# m; s" @4 B& P+ J0 w
M8 u" H @. D) \% ]! A
1 a# T. l8 k7 a8 o! C! k : b2 Y3 v) }, d- j) Z D. E
gen pminplddy240=`tempminplddy240' in 1
! R% }- a& d h U" i O( H. Y : f m( V4 {& ]) ~; L8 j( |
*-------------ddy240pmaxp左侧高峰值 -------------------5 E, {2 A% X/ y8 M M; g' Y+ e
; y! t1 N3 R* G7 S- K! s2 y preserve
: ], v! ^- \9 Z- O
$ h( b; U* ]3 W6 R3 l" u) ^8 G keep if dx240>`tempminp'
$ s1 n2 ^6 K' i9 g9 J7 S
+ V. u$ G- R: s2 C4 v keep if dx240<`tempmaxp'- K5 v; n) j6 O
( F# p# X, |+ z6 J: n* U
keep if ddy240>05 D( ^. r. \- Y
count1 k* y# b8 `: I8 t1 k" @( K
- q2 J8 o0 ` s if r(N)>2 {
) \: T$ F# [: } . z# |5 H! s3 B8 _. M1 Q/ A3 e4 Y6 @
pkexamine dx240 ddy240
0 W8 E( F" F+ ]' ` 3 U/ \3 N `2 {) R2 } G
local tempmaxphddy240=r(tomc)
' z8 I/ ^/ U$ k P % x$ j4 D; a6 e, f8 w
restore" h. v( @( y* k0 j
}' ]' v* e7 U" p- V
: G! t: J# Y7 m( D, L& |7 H
else {) t6 M+ a1 q; N: \7 y
& X; ]# C4 l0 p# S0 B/ W! ^0 h! D
di "cannot find pmaxphddy240"
3 v6 Y3 @, s0 e% w2 C/ @+ g4 {: c restore
8 N; K0 H9 t" b/ P+ o6 o/ t8 O C" v! U, \0 k) T( G: a
sum dx2401 T' E. }0 I* L) r$ o4 ^- P& X
local tempmaxphddy240=r(mean)
* H7 L9 {8 r7 ^6 D + A5 w& D. m% @
& u% _* ^) B L
}, K! W+ s4 e+ H0 F6 F% S
2 F! h8 z8 P% e3 ?7 c# ?# g, t
6 ?: ~0 \* H$ ?7 Q8 J! Q
- b0 v0 _8 r4 J$ q) J
# G, R1 `0 @# z A ! E$ ^# q; I; I; X/ `
: K: Z9 g7 x$ @" G! w7 T gen pmaxphddy240=`tempmaxphddy240' in 1
# G0 D/ W% T- V) _) @7 N X! B 3 z* F" |$ T e! M9 O% k
3 S# b! V5 S& P( P* E) T *-------------ddy240pmaxp右侧低峰值 -------------------
* x1 I7 ?) T( O8 @+ F 2 y3 u0 l: O" Y; ~ M& s* X9 j
preserve - X2 ~: E0 M; d/ n( T
% E! |' b, m! `/ d: B5 T& H
keep if dx240>`tempmaxp'
9 b5 i' H1 Q" O0 _ 7 W5 t$ O9 l7 [! a7 y" y
gen temddy240=-ddy240
; A9 h J( l+ L, s. N( q% I' G + q8 Q P$ O4 |7 _
keep if temddy240>0$ v1 A' i1 T; ?" C
2 k. d* b" u2 T7 d0 M3 D
count
9 L7 f; i: _$ c) B- q0 S2 z8 Q # I- w6 z% N* o$ e! }
if r(N)>2 {
& S, o, Z4 }; R% N
* R0 A' o) z" D7 }% c pkexamine dx240 temddy2403 f8 m6 d; u6 l% S* m7 E# {
H: `5 v% {6 y& \
local tempmaxplddy240=r(tomc)
( [* A) {; z$ p1 ~ restore
- m# c) i! z" g, J$ ]7 I# q: v }
7 d0 `, s, M! J C$ w: m
, o& d. J0 b+ d else { F! C. D$ V1 p, X, d) m- x
restore
2 B: r! @) Q: E6 K7 P+ g! G5 |% u, X/ U di "cannot find pmaxlhddy240"
% ~" a5 |, o" E% ], J- r ; `6 U0 N; R$ m, @: n- b
* j! p/ V/ T. p& p+ p
sum dx240
" v3 {/ C, X! z! J: K+ L5 j local tempmaxplddy240=r(mean) in 1# W8 P2 Y9 h& Y
# ^, T+ V2 Q/ r0 k# s2 v / a) ~* M# V `! y1 S. \4 I, c/ ^
}
, X, Q5 F# O v+ |( k* U 3 `: Z1 S3 G# Z' T1 R9 o8 v
- C) e* m9 e/ _* Y: k y" y
0 T. s% w% R$ V* v) E2 U* d. J$ L 4 e, r* m$ w3 F* o
V4 O% x- H6 F- D8 E
5 m2 [. V) o& @# W8 T( u9 K gen pmaxplddy240=`tempmaxphddy240' in 1
3 I4 L" |- ?4 j3 Z1 |. p# Z* {- v : H. F7 p% G8 z/ u
*-------------------------------------, q+ l& I% U" J7 }. b s
6 T8 J- Q8 O1 K3 f2 v& [
gen price5d=v5 in 1/20
# w% f6 p8 I& M0 p! E8 R4 @ & e s" h7 h! a1 g3 @# i' q4 K z
gen price5yy=_n in 1/20
) `8 g6 C- A* w4 @ , D( L* t! [5 C0 T/ D7 v% U. X
gen price5y=price5yy*(dy240max-dy240min)/20; Z# {8 {# f9 j, w
$ t# I6 C! [$ r* B# j! _: P
*price5y &price5d
2 d3 j- |3 V# Q2 Z X' J2 L. x2 s) c( G3 _
gen priceny=price5y in 1
0 A: J' j' v9 ~- G2 D' w
; _- f6 L' [6 S P( V gen pricen=v5 in 1
8 k( T3 @0 u- @7 {0 F( `* V1 a$ _1 Q+ T
$ j9 P2 \' a$ c7 H7 h& v+ P' }
*priceny &pricen
5 J9 L- C% v) D- W
U7 v, ~1 ?" ?: Z" ^" P5 ~' W0 @ 8 @/ B4 t. P4 P1 n8 |) c
*-------------------------graph------------------
& R5 b) M8 J1 b/ w
! n1 M9 \- P1 [$ ~& s$ p; o" y 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)$ Y1 d( V- d1 h" ^8 }
: d d: Z3 ?% r1 E
* ---------可选项目----------------------" D0 A0 m% K% l& Y
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
1 |+ E% |$ B0 `( U} s$ X: e5 X C( V! n3 W! y
end
+ _5 n% O/ a- Q( x8 m; Y; c2 L |
|