|
|
maodeng 发表于 2013-1-28 13:13 ![]()
0 }* B+ E/ x! I) G. hello 300236
" ^5 Z5 b& n3 v9 }statement out of context
- E( J1 g0 L# h) `( O+ E$ b- ~r(119); / O- H4 u7 @- r) e6 h2 @
抱歉,最近太忙了( Y: v4 M; h, ?) t& a$ l
% j# k# h& u: C) }" f
300236 我用下面的程序试过,没问题
! a6 W1 _& {, {# @3 _, Y; Q3 M4 ]0 B6 R4 R+ ^
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
" z8 I( ~# F [4 u! ~6 i" m: q- d7 C( q$ Q0 q4 h, b
capture program drop hello
, E( W: s# |/ I0 A, `& |4 o# A( a; G+ [
program hello
; E, ` T) ]) [% N: K0 D! ?$ s2 i- h, R
quietly {) ?+ E, H6 S# v q" | P7 T6 z: g
: D: v8 Q) h" {8 _clear, t8 P1 E: P: ^% g3 M
6 E" u! v8 r* C2 Kcd D:\stock\test\source2 v; N, W* h# [
! H; k/ d& Y7 l {/ W+ S- R2 `insheet using `1'.txt! o8 G- j9 O3 u6 W; C" I1 E( r
1 a% o5 X- ?4 E5 r keep if v5>0
" Z2 t* R3 E q& V/ d% @$ E + N r# P: O; Z( W3 l* l6 [8 M
gen vt=_n7 U3 p/ Y. m0 q; d0 U
5 K' V9 e; V5 _7 ~3 y3 T tsset vt3 J, k: O) Y2 c3 n3 j0 [: G l9 U0 A
7 W/ X- Q' r, S: H3 i! e5 [ gen zf=D1.v5( [3 A) ~7 W9 M
[# f, R/ X! V" {7 O. D
gsort -v1
/ r9 Q6 d. O7 L+ d2 U* g" ~0 P% M0 Y" N( c
gen avol=v7/v5
" Q- ]* A: o+ S' m 1 H8 f1 ~; [# {+ l! H# n
keep if avol>0( E8 @# ~: _" Q: M0 s
# M' \8 ?% Y! L& {5 f% m; {& F
drop vt' [# ?% {1 `- A
: C# [& {/ g4 g/ F
gen vt=_n
/ T9 m4 }7 i7 }" Z! l* L7 d
' g6 Z; Y8 A) X* X tsset vt
L; O" f! {% i, S) H+ U ) A- @' Q2 O8 V- [! g
sum v5 [aw =avol]
6 R8 W4 F3 R+ U: V" Z
/ n2 l% r7 X; t# K: X1 L' } gen amean=r(mean) in 1
- p; q( p* U& c . _% Z( L3 ^* s4 ^ E3 Q) z
* 总加权平均值 amean& ]. E/ U; H- i* o
$ V. Z' b1 r3 @3 w" n& {
5 A9 a! t w2 Y: b1 E4 O# H keep in 1/240. k: o+ F$ j9 k3 J
* `" P5 e, O! g) T/ V* n: } V3 A sum v5 [aw =avol]
4 c" ~% |/ Y9 ^0 P& p C& |6 d H# g# L: m; U' X3 _" {
gen mean240=r(mean) in 1
5 c1 {- t$ n. Y; n) |1 z
* y& k E& P- \+ q1 \ y *240加权平均值 mean240
- C. n5 N7 F; {5 u% P/ m) G
7 Z \6 p6 a2 l" F set obs 500 $ b3 o* U4 d8 K; a% ]* [
6 U' v' e8 ]3 i! ~
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph4 m D1 w; W# o
9 @6 u, ~# E3 F2 s* Q) C, D
*240 kdensity(dx240 dy240)' k) P0 |# p. O1 P' Q
- `% K6 X2 B2 _6 b) B/ R! `! e* B
sum dy240
6 _; R. q% p9 w; n- j9 |9 R7 S
6 ?; @- S& t0 L1 Q" ]* M4 H3 m gen yxis=r(max) in 1" b }# b* k& F% _
6 N3 y4 ?$ r/ d3 q5 P. E gen yxis2=yxis/2
- J9 j$ i: C, p1 f+ r. L. b1 F, J& M0 @
- X9 T" @9 X0 k# m! O *yxis
# e! r$ S, _! @9 [% l & T3 @7 w9 J) z) c
gen dy240max=r(max)) f8 N* \. G& y8 [* u" L: y8 v
, ~& G0 |( N# z. b) c( E
gen dy240minp=r(min)) ? C/ [% g Y0 D0 G: I/ ]! k% o
) Q2 \* C2 V* x+ I4 j5 i5 R
gen vtt=_n
+ \: Y- W4 R6 O9 _, Q( V* C4 ^6 F* k, X
tsset vtt2 }3 K$ ]3 ~8 K2 I
( |5 o1 F4 O5 O
gen ddy240=D1.dy240/D1.dx240& F% ^; o9 Z& G% T V# A
, b, |3 p# U* \* S2 M6 k- v6 H! q. q sum ddy240/ W+ r: \& P) T! f& R) a5 G$ u8 u/ z
' q3 q& L; X( r; c# `. n4 ^ gen ddy240max=r(max)
/ h# _# C" ?: A# M. Y3 O' F % Z3 ]. ~" o; m$ q
gen ddy240min=r(min)
3 U, H; F2 N& c% S : f6 ~$ Y( v5 h+ r8 \" D8 r
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)& u# z2 B/ R6 n3 q7 X
" d7 d0 t) @9 h( j sum ddy240g" P" i9 E6 R$ k2 b; c
) g! _9 g1 Y7 K t; e+ I: r7 P gen yxis3=r(min) in 1' _( ]- I/ P9 V
! W! r% Z- K: r$ k& _8 n gen yxis4=0 in 1
' X9 ?( l5 |6 T; Y. [ * |) A- t: ^ h% W! J
*ddy240g ; D. Q2 Q& o; v K
8 z/ V' x- F1 q) ~5 g" {! n
0 G# M4 ]& o7 L; [, P0 T& m
preserve & u9 @4 }; @: \7 h% h/ Y' x
3 C/ v# W4 f: z3 z) ~# w* X
sum v5 [aw =avol]
0 X( |2 m: D) Q- N 7 u2 W9 I( d/ {& w$ A: U% U* h) y
keep if dx240<r(mean)
* {. O, s& Q% J
7 F9 A* G, E0 a: t8 p+ ~* A sum ddy240
. f* ^: V/ B3 }0 l$ R' X) e& k 5 u, k' s, y m& h9 k( i
if r(min)<0 {. p; h y8 Q$ {, l& K' d- G9 p
( z% `: q h* B3 k( P/ y( _ keep if ddy240<=0
6 f" F# v0 n; k( e( n5 i
" x% D7 k# f7 t* J: u count$ T! y O4 p8 T$ B2 y' f; s
& |. A( x- {4 |7 n5 \7 G: s
if r(N)>2 {9 |, o( e3 g o) S3 X
0 u+ b' r% z& w5 T4 f. C) F
pkexamine dx240 dy240& A$ o3 E4 [" w \( _
" }" r- ?8 p( P( R- J local tempminp=r(tomc)
: t+ m& A4 q |4 g7 G restore
9 t% U' v7 s2 C }
`% Q8 e9 m, G2 P) U8 Q: d9 `% ?1 a
: J$ H+ `- {( L, D' E0 @5 y else {9 a2 p/ H2 J" D3 j, \$ Z! f
! Q# [/ K+ e0 K0 K; Y9 _ di "cannot find minp"4 k* u0 d. u6 O
Y: `! J0 D9 m9 [, H$ l restore " d& S5 ]& f3 j$ \' T# q
sum dx240% \+ P6 L# ^# ]% i2 O/ T t
local tempminp=r(mean)! o% E, f9 ^/ _3 I& L7 n
0 Q# t5 V( g2 ~, w4 P6 K- A: N# K' ]& m
}
- P$ E$ Z) L$ J# M7 f2 x4 @ }: y! H. g! F8 W% v& T
else {" y- R2 @# q+ P# P8 K( x! E9 w8 B
5 Y7 r' t/ Y1 x: m9 N
keep if ddy240<=r(min)
# v; X& f: S I C5 s ! m7 } t2 ^3 {, }' }/ e
sum dx240
( Y) @) R+ u7 f/ Q- S
/ Y; L' ]9 e' ~8 e local tempminp=r(min)
$ X- P' }; z# Q" Y& G& l& X5 m restore & G2 ~0 o) Q+ X, t3 H8 s
}
% A' P, @; S* _) e
$ e0 A, I: V5 S( n# G9 V9 ~3 Z7 n c! s6 g; j! W1 q2 w9 G
! K) M) ^* F5 d7 Y( W( H
gen minp=`tempminp' in 1
- h; A% f2 h3 b! z T1 v s5 J *240 minp
: C9 a8 G {5 o0 i1 W
& R& S$ Q4 g2 n2 V& {: J$ w1 ? b
$ A% k. t- G: y5 _( i - J- s8 n: v) R3 w! X: Z5 g4 l9 F; F
preserve
# C0 H$ P4 w5 U |, Z- I
9 ^$ ?2 y: e" \8 t sum v5 [aw =avol]
2 r& i; w- _) Z9 k4 k6 p% H _6 F
+ r7 z* x; }5 V3 G8 {/ T' Y. Z; F keep if dx240>r(mean)
$ J4 E, i5 a: z$ l/ ]: l0 A n0 I+ S# x
7 m+ A$ `, t1 A4 a4 M- ] sum ddy240
" ~6 J: u& B( i' o! E' ? 6 s+ a# u) f+ v+ T, [) M
if r(max)>0 {" x$ W9 l/ S# U+ w% J
6 g, ` C9 g: k: H# L7 {
keep if ddy240>=0( c E+ a; @6 Y9 i c
( p4 V. i8 N, P* x( x8 n7 [* W
count/ b2 e9 y2 }7 s& v
9 D' K& c2 z* `! s R8 J; n8 e# ]) t if r(N)>2 {: `( A* W+ ^$ [7 h# ~+ I
. c" o4 Z) K; P2 g- H
pkexamine dx240 dy2401 b: E2 L( ~2 [% b4 F6 P
- G/ I' T5 |+ Q s e local tempmaxp=r(tomc)
" Y6 z* S% @6 r0 g; S$ B restore
( u1 Q8 h+ Z" Q" S e: m }0 k5 u' C0 Q, Q+ x0 E
. D/ ~) R8 I1 V* I, D
9 P# l: w& x0 Q. j else {
# h# V6 T: w! w$ Y restore
% ?8 _- x# g+ `+ m( _( A# f di "cannot find maxp"6 n0 @# v0 `, D+ D: M& P
1 i( n8 x3 K! v! l2 {2 t1 p2 R8 A
( ]! ~% K" a9 h- p8 n* J sum dx240
% }) S- ?+ R9 S1 e w8 v9 N" J local tempmaxp=r(mean)- Y) s+ d' l- R
' ^, h" y, i; x4 K" {6 ]3 V
}" H8 P8 C/ w7 i3 A
. U( N- [7 r q& s0 I- D }# ~. s: e* i. H. _+ A
3 _5 u4 N/ t0 i% M4 z
else {
2 V' I% C4 p ~! s# h + }( ?: x7 C- R4 i
keep if ddy240>=r(max)5 l4 r8 q# m$ t* R
# p7 {: D% R5 ^ sum dx2400 b8 T! |% M( h8 R0 o" ^" M
- S" R: d' a' I local tempmaxp=r(max) ; X- F, F7 r: q- T
restore
, o' {$ N. c/ d/ o7 Z3 ?/ Y }7 ~ b7 O* Q, K& s F, q
+ i# w7 n/ b5 M! J: e4 U* Y9 Y/ A- A" G( F0 Q* u- q, u
7 F4 q& w# n- F
) U- P. ^! w6 m! O5 T2 f gen maxp=`tempmaxp' in 16 I- J( H/ O$ s% a9 _
4 z3 D# Y3 b% r- Y- \' k0 z *240maxp
! N) K6 k9 j2 Z
9 @5 W# d' Y b+ \ `
1 r" F' [: J6 i# Z2 U, D- \ *-------------ddy240pminp左侧高峰值-----
- @' Q$ h* W0 U4 {. K0 t
: ?( \1 Q p5 w6 |; M9 h preserve
1 K+ X j! z/ |7 }( U2 C3 t 4 L T7 q5 n! l. W5 s
keep if dx240<`tempminp'# V) M6 A. v7 u) Y: [8 J. A
& O' g! w6 U* j! r6 x7 H keep if ddy240>0
5 E4 O/ {4 i* c" B n% i- D+ r$ ?% w
8 {! q$ m! U, S3 W8 R# [3 _, t count0 p+ l! @) n" p- P" a
+ N, J) {: G: [! V( \ if r(N)>2 {
: S; [( J9 q: c% r- s- b
5 n7 x6 H. t0 f8 a, y pkexamine dx240 ddy240
/ F: N$ |. `1 w0 I2 c; ~ 0 t$ N# s* k) T; S/ G# Y4 {
local tempminphddy240=r(tomc)
( M. f+ L5 ~! X2 L restore- A; ~+ U6 @# ?8 F; H. c7 t
}
+ J' A9 u+ V B$ m 4 b" J3 V1 M. x, v$ e( I$ J( q
else {( c" I+ N4 E p' |
restore
0 v2 C) a( T2 B- |4 V di "cannot find pminphddy240"$ q- d' O( F5 e7 _
4 O, j' J; t& L7 v! R5 C + U/ f8 h' K5 C! Y+ W- l( e7 ?
sum dx240
, l9 i" ~3 b* ~5 Z! ?! v local tempminphddy240=r(mean)
2 |. Q9 Y9 F K O O5 L! Y $ y9 ], Q5 _# @3 G" a; N
# s' x6 ~1 d% N# y }7 M7 r( Z2 ~, Y- O
+ K6 t/ B' |9 U0 R( E" C/ `- @
8 C$ N. P- h( ?7 v* y
0 z8 Y' o9 {8 f! b3 M; B , o: X: _* i* Z
}. v/ Q8 I. I+ k9 Z' ~ 5 [: y. i: k( R
gen pminphddy240=`tempminphddy240' in 13 [$ t( j# C; A+ D! s) v
: E+ X* |3 c7 C9 G
- u, F& S% p6 N8 S5 [ *-------------ddy240pminp右侧低峰值 -----------------& Z* D+ I* D% G* i V2 l# V& O2 f
preserve
1 E9 M: K: W5 h) a! |' R $ ?4 Z. d" \ Z3 a f! @/ b
keep if dx240>`tempminp'5 Q. B& L, D5 u, i- I. o$ O+ c
: G8 \2 A. f' S" y
keep if dx240<`tempmaxp'
4 l2 ^. B9 A6 b8 Q: H2 Q
3 Y ]1 X0 q( ? T6 B" e& D* j, U keep if ddy240<0
; p9 x1 Y: _9 ~9 { # a( x9 B) x* {, N
gen temddy240=-ddy240
1 O, A6 |/ @! s) z* c, ?' N
+ F' j+ Y1 K1 w. S5 E count
4 t5 U+ L- @) n: X4 L' z
* e4 b) l' @3 K8 D+ { if r(N)>2 {( S0 y3 o; i% p6 x( {$ S, ^
) X- }8 t1 w) ~& s8 V pkexamine dx240 temddy240
0 X0 x; H) Q7 B$ A9 e0 x+ S& e' \ - c: \2 k% c7 k- M
local tempminplddy240=r(tomc)
! H/ J: v- ~ c; W* V* ] restore, p" P& c( }' T9 m$ R2 j/ J
}4 C" [& A4 u# [1 W
1 j- c3 Z3 s _9 t1 x else {; Z+ e5 ~, [. T V- d
4 K# |& {$ E+ {- ]/ w# l9 a) l
di "cannot find pminplddy240"! _" z+ @( m8 e8 y
restore. |+ F, O6 Q2 q3 q% m
6 Y- i: R4 f. u6 B sum dx240
/ D- m3 |0 _8 O) l/ V; o0 b9 c! q local tempminplddy240=r(mean)$ b# u' n- N4 r4 ?- v- L
; d# k+ P& d: u# o5 `" P3 n2 V
, i5 a/ I4 ~+ ]" I l! A+ z }
4 X; z6 L0 x8 ?$ ?/ D
6 K3 |3 X+ e& g( h ; @9 U& k5 }$ |9 `
! u& k: V, a2 j- C 4 r6 _4 W8 S/ p$ V0 T6 X
- S, E9 F3 ~* N7 S
gen pminplddy240=`tempminplddy240' in 14 Z* W4 s' Y9 @& l" L! e9 u
0 A N% @- |& g4 s *-------------ddy240pmaxp左侧高峰值 -------------------6 {$ D g* u1 k
' j! l5 M: i8 h$ L, C
preserve 9 `* C" g) m4 }' S! J
, |4 w; j% E* ?* [ keep if dx240>`tempminp'
5 k+ O& [3 h2 J+ q5 `8 e + Y) P, S6 F/ f+ |7 Y+ `& ?6 F
keep if dx240<`tempmaxp'1 }( t! m6 G3 d( d) W4 p+ B2 H/ Y
! Q! ~& G) e: Z! ]
keep if ddy240>0
% J+ X5 r0 I* [! ?: K! N$ { count( J" d3 O) ?0 m
- P6 Z; Y* Y+ | if r(N)>2 {
2 ]2 u8 J& c3 @. J% D9 [$ g2 N6 w 8 V9 t, \8 w$ \2 I2 P+ x
pkexamine dx240 ddy240" [/ K& T) w5 k" \$ Z) K
* X8 K- p% j% P, U Z
local tempmaxphddy240=r(tomc)
6 S X0 S( Z/ L. ]( l# X: K k* a5 ]% P
W- A6 t1 x' ^# f+ @% A restore- K8 J& o' }# x7 z% n
}# ?5 C& N: [2 ^6 q7 K* I3 P& h0 E/ S
8 k9 ]& u0 k' H) T( ? else {
3 t, U* `! P- B% r: z5 l7 E ) }: V' L: U# f6 p! O( U1 Q
di "cannot find pmaxphddy240"
, `$ D& q' q6 O( H* W; A restore
1 G ~3 R" x/ b& N: d
( _1 Q( U2 e u$ P sum dx240
# S5 `! V8 q) ?2 ~" c local tempmaxphddy240=r(mean) 8 `: B6 z/ |/ l: K" O) d3 h! V
$ d3 l4 l8 a1 R' K7 p$ F% e
. E1 M, r4 n5 N }
# m7 ?! g5 g7 V; g% i3 f* Y " Q6 Q4 t; Q2 Y3 o" C3 @+ d
9 w4 G( K8 Z) o 1 V1 O0 i; P. ]: l" y
. O3 w6 o% V/ L0 N
; l7 a0 {' ]6 r ]
$ `' A% F( o4 N. X gen pmaxphddy240=`tempmaxphddy240' in 14 i6 Q+ Q% Y/ G' g% ^* ~
4 J0 U* V3 ]4 F4 f " P3 e0 N0 \' v7 K1 y* j
*-------------ddy240pmaxp右侧低峰值 -------------------9 y* z7 D( [3 k
9 v, ^( G( K' i& o% w preserve
# } _7 a. {' h( J / {& Q1 ?0 V6 ~. y' C% N
keep if dx240>`tempmaxp'
5 p7 ^/ A6 w/ w0 ]6 C5 e " k! U9 ~1 E0 W# _" k( a/ h/ j- }
gen temddy240=-ddy240
" k& \0 M" |+ Z1 y3 p . ^# L- a2 C' m: T- d, K
keep if temddy240>0
. m, n' V) ]9 _+ W1 U + d. K5 P! ]4 _' p6 E# b- S
count
; D9 i* u7 _, m2 l. D
, K q9 [2 ~* C if r(N)>2 {
/ k: s9 s3 S, {# Y2 p& ~' |, c. d; I
! `2 _" n+ _3 F2 L pkexamine dx240 temddy240; F+ P; T$ I1 z V$ q4 f9 m
) B ~& X) d9 }4 ]% e4 F% J- o" j local tempmaxplddy240=r(tomc) 0 Z! W) E5 ?1 K- E7 p# ~
restore
8 k% ]7 t" m% R# F. A I }
& w! d- ?. `( G: ^5 h6 A( Y 5 h2 U: ]+ f1 r
else {: m6 k% x0 \. c9 R: I
restore
, M# d Q0 i+ E7 b6 l7 I di "cannot find pmaxlhddy240"
/ k$ [$ m- B8 Y4 f, j! o , K0 y; Y% r& O" @
8 g) f2 {" x* \+ _" Q/ x" _ sum dx240
4 c1 b; G) s% T3 r1 N local tempmaxplddy240=r(mean) in 1$ a0 {+ E0 p$ {3 P
' [3 Q" N6 A3 B, P! p' C
9 |1 @- N, n( R3 Z v; R+ V- T }
& m% A+ O! Q1 C ' [9 _- A$ Y$ S& t! ^+ s+ {
% l4 G2 A9 p: t/ S& ^0 z. h0 o3 I / m! Y0 `9 }( ~. l
/ [( o" g- n7 C- L ' ^0 K' u& H( e2 e/ Y
! p) n. x1 ]- i0 e# \" \$ h0 @ J4 o gen pmaxplddy240=`tempmaxphddy240' in 1! \! M6 u7 D) {/ Q
$ J2 c; O& d- A' y- b
*-------------------------------------
# R4 Q8 c E- t+ v" ~* a
+ T' ~: v0 Q+ D! f5 G! d" G0 G gen price5d=v5 in 1/20
* f9 H$ v3 _0 I$ O
* M( c3 n# @. I& h+ V gen price5yy=_n in 1/20( b! X- M6 F0 t7 Y7 k( `: G9 I
3 B6 a+ T* Q' D3 T
gen price5y=price5yy*(dy240max-dy240min)/20
2 [' [1 `6 n6 p3 S $ g5 i6 Y1 j7 q8 y0 |: z6 Y: O
*price5y &price5d5 p: R( K& O$ S* U& A
. n' l; `. j8 f% m; c0 }
gen priceny=price5y in 1
# e+ u) K0 S1 j* L0 \" o" P ! _. H0 j+ b3 Z
gen pricen=v5 in 1
% K; c6 V2 K* h. o, Y0 D4 I4 P1 w' k- q
4 q5 A2 Z8 _6 X2 o5 r9 E! r3 H *priceny &pricen: ? _+ r9 K7 k, y, P0 _
$ C2 ?4 T4 J& @5 H8 s: x+ }5 [
$ S3 ^: B9 K7 Y' @) s8 i! _ *-------------------------graph------------------
. v5 x* c( V W% \/ K$ } ' ?. V. x! j5 F5 ~3 w, M
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)6 P. n0 m0 u2 f4 `
3 {! w* _+ c3 r$ e1 b* ---------可选项目----------------------
9 X0 M5 a( I& ]*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))6 r, v3 ^. D+ W! H
}+ [) }+ f% J6 |' \* H S
end0 `5 B! H2 R/ k& X4 `# {0 |
|
|