|
maodeng 发表于 2013-1-28 13:13 ![]()
8 }2 U, g8 \; @7 N! ]. hello 300236
4 M/ o; M/ r% l( d& Jstatement out of context
5 k& n |6 u1 Z- rr(119); 9 c( @9 ~# B. l/ U5 h
抱歉,最近太忙了
# A, n1 r+ T) o8 _3 Q/ [) [+ @2 F9 d6 ~0 `1 k
300236 我用下面的程序试过,没问题" T6 O9 [( l6 H% z- _* U9 d
0 [) K' |- Y* f. ~ {) L* G
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试1 ]) m( J6 P* z( k# q0 Q
4 F3 Q* V% q) F$ {1 `9 V6 v
capture program drop hello6 w+ e, S G2 E4 i8 J
V9 b+ D" O( Z5 S& F( W
program hello1 c: Y' E9 k/ J) l: H
' X9 c$ o [, H! b' B6 M$ d
quietly {
7 Y- F. \8 R4 s8 [4 G$ W$ b
% |0 t1 `1 r2 I, n3 aclear
3 c/ m$ k0 z3 r5 n: s6 a0 j* G, v# D Y5 E
cd D:\stock\test\source. k4 S* U7 r/ x+ k8 t
' X# h* }1 p3 S4 z; p
insheet using `1'.txt6 a% `4 `& G8 n+ _) F2 K) W' z, V
% f! l4 I4 R$ C
keep if v5>0
- s# k7 B( X a
! I' c; i" T p% _' \3 j, f9 T gen vt=_n, r* v( Y3 q9 K o7 D$ Z
/ N" ^# N+ `1 r0 X# H- q0 d ? tsset vt0 N. T: G3 U0 q; R) q* t/ Z
: H! f) _' [7 ?# ]) s n gen zf=D1.v5
$ }6 A% y- f& Z0 _3 N$ a- |2 t0 n9 E
gsort -v12 R5 S- {, m7 X
& x! m6 D3 r: g6 k: |6 X
gen avol=v7/v53 W6 }0 V* _- x- p
4 i4 _9 Q0 B. i& n! d
keep if avol>0$ s: m! g' W- y9 C, Q
" k3 U) o0 k9 _$ S4 D% {2 R
drop vt
- ~6 E: L: K- R0 t/ T" w! Y+ u
) K2 ?/ L) L z' k8 j gen vt=_n
! K4 f3 D6 z9 W8 w2 }
. v7 ?' X; t5 n tsset vt; A7 P* [* b5 e# v+ I
( h+ h3 w8 d- ~- y7 e& E
sum v5 [aw =avol]
. H: l" u6 e) Z+ O2 ^
% q% I5 m2 {; C& X. ?8 _ gen amean=r(mean) in 1$ y% {) B! e, n0 D
. ^. J8 x2 e7 U * 总加权平均值 amean+ y9 t- \8 f! U l, b
$ }; j! c% D$ [0 j- V% P
: b) O$ ]; ~3 f# N keep in 1/240
" W! z, ]0 @8 b4 ? q0 S% }* \4 j
; t$ R$ {' y; G1 ^ sum v5 [aw =avol]
/ ]: w$ v0 c! L! a, B
3 M2 \: d- W+ j) o8 y gen mean240=r(mean) in 1
" e2 M1 T8 Y8 S9 g+ [) ?+ E8 S& U7 {- @ 4 k" {1 U6 W( B- e1 A' {7 o
*240加权平均值 mean240
$ U( p6 t- `3 p& a$ E
, ?& F' x& k2 J, }' g* E set obs 500 ' _, n0 n0 R. q$ W, n6 i7 o: a6 ?
# |/ @% s g9 Y( x6 F. `( h7 y
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph; ~+ q% q3 ?& D
; M) _0 [; _* E0 O% n4 e
*240 kdensity(dx240 dy240)
f! E" n& Z3 _7 N
, r7 \, F3 {9 Q- b sum dy240
' g% F4 b# |4 d/ R& D/ X ! L+ G9 H# F1 X3 g! w
gen yxis=r(max) in 1
& }7 D5 J& }+ M/ {3 f4 t - Q( q$ l" P! J1 a. z0 @
gen yxis2=yxis/2
% \& o1 [$ m* | : i# ?2 ?* P/ j9 A
*yxis
5 e& h3 g" |6 A" V' C
( q2 |" ^' P7 Z& u gen dy240max=r(max)
; w% G' S) S6 @! f- q
+ `' Q( ]6 |8 a gen dy240minp=r(min)
6 ]+ E# n9 T9 D o% [7 ^
" u* e |& I" O0 \ gen vtt=_n
" ?$ o; W; A, x: h6 u$ Y+ r/ I) z9 Q, l! k: p* K4 e
tsset vtt
" ^: C/ i4 Y: ^: e% X' H. a: m
& @6 }, h& B! s5 b2 R: \" S/ a- w" ^ gen ddy240=D1.dy240/D1.dx240& Y; A S3 }: c1 L* h
+ C0 _0 H. E- F- Z
sum ddy240% b, u: y& q0 U2 B. [
) s. J: O5 j3 E gen ddy240max=r(max)4 z% b7 M1 i, G8 q( O
7 n4 G$ _# n7 I6 n5 \; E gen ddy240min=r(min)
& x6 s! u2 c* K' ]
; \6 y9 c4 ?3 T' o; S% Y gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)5 `5 D; j" b4 D& h- N* k0 @6 X
$ Z7 R6 |9 w5 V% Z7 N, }- O sum ddy240g
' m# O- ?/ J6 B& _2 ?0 G! H& d9 H
' I* {, t/ l8 L. t! n0 g+ K gen yxis3=r(min) in 1
! U: j, q1 c+ u2 \ ) o2 G4 I, l$ |7 x+ |+ v
gen yxis4=0 in 1' |$ g6 d* x" e; R; e7 A8 ~
. ^- |1 D/ J# X5 M! j( s
*ddy240g
* ?' n, Z9 I& i# d# Y- O9 W / F/ Q( }* A) V) q& W; \9 X) T
$ p8 \3 R1 j5 R5 x) m
preserve
0 ?5 W0 m' Z) E/ Y. v# h ; M' G) _* d& `4 Y
sum v5 [aw =avol]
6 u! O# Q% V9 j2 F) ]; L
& r5 w% \& L( S0 ?! F keep if dx240<r(mean)2 h7 p2 V F7 P
' t2 H/ S" x6 W" c! C) K! L' y! _
sum ddy240/ q4 L9 | j1 ?
! p( J( O8 ~# G: H
if r(min)<0 {
" x. q `8 v! ]- ~) c% `6 e. u8 J ! T7 P% K' U% g! ^3 K) f, |: {
keep if ddy240<=0
0 x; p' l) e/ O1 U8 B+ b 2 w# O1 @' F3 J |# H7 D7 r
count
1 J1 C( J) Q% G9 V6 k) z
7 x- v' Z/ ]' N, o2 N7 G1 n+ e @5 C; X if r(N)>2 {( @# C+ X6 O( {- N5 F( Q
' S( v1 R- ?/ W o7 F: _
pkexamine dx240 dy240
1 a. U4 k; a- g+ w9 J* @ & ^. Y1 |* X4 x+ e8 r% s
local tempminp=r(tomc)
M d o. q4 O restore
) T. q p2 q0 h% i }# D5 [( t2 C# k
) j" N% d7 u" i4 t, r1 n
else {
" B4 [4 t9 D+ a/ c
) c7 D. e8 s& n# Z6 c di "cannot find minp"
3 }; E/ B! p) t5 y t, J " z7 c- K3 w7 {
restore
# B7 ~* z' q; c+ T1 n7 e sum dx2407 ?( g+ n) ?, f
local tempminp=r(mean); L: Z% C$ w" W, l7 `
6 i) f$ `! T( i X }
! M, ?1 @. \1 u/ h. B6 k' `' l& r }
( k+ M; l# p) [9 m; Z5 s else {/ f+ F8 Y% v# R W7 k
a6 h* V. _/ n
keep if ddy240<=r(min)7 z9 j B+ j6 B
$ ]# G) m2 x/ j: _7 I, V
sum dx240! T% o- l( _- q
6 y8 B' _: T' J9 L9 {6 J. L- U, _
local tempminp=r(min) t2 K- M2 |4 {! s7 n9 p9 O- l
restore & N3 _: f6 ^7 y, _ W9 m5 O3 H
}* j# g5 P; Q' k' [( q
`8 u' |% p( K* ]% |! `* P# _ [. a9 t* B# p J' }' I* g4 W
& y. e, S% C, e; V, E gen minp=`tempminp' in 1" H4 ~5 e: j& J* k2 Y2 \2 C
*240 minp
1 L" u0 V, D0 ?, A; z4 g" T- x' F& j, \; N o! G. n
5 F3 J" b: R6 I1 M
1 V+ ~6 R* Z' o preserve ! u& T. S T7 c/ e$ I! R. S# `
P) Z! t" H0 Z" @% f sum v5 [aw =avol]
. q9 G0 z% }; B ) l; h+ n. b# @ a
keep if dx240>r(mean)
. d( k+ r% S. b2 P6 m
1 \9 g: A! d6 N% ]& z7 O1 B0 j sum ddy240
: _4 d% n% I. X" B2 Z$ @
4 p1 k* q$ Q) ]" @( l if r(max)>0 {- a4 e* Z4 d) F/ S) p
$ o% n! p& ^+ b+ |
keep if ddy240>=0
7 G+ }; G9 f! A2 G
! a" J4 e) ^4 Z# E count9 N+ l1 V; z0 C( \( K. {
% r. n: n' [9 C
if r(N)>2 {
# K$ O, X7 z1 T9 `3 }
5 _& }" x. N" f) G; U) ] pkexamine dx240 dy240; L1 ?9 m2 ], ^. T: k. \7 i
5 P: x3 V/ n- B9 U. \ local tempmaxp=r(tomc) & e3 L d9 @( T! B* y9 R3 J* ]
restore
a+ k1 f5 a$ H# A# T3 f5 p }
6 _5 Z6 q4 d* e& H0 j1 n 8 e& I: ]$ E4 S+ j' \9 e
2 h4 A5 C- X: w
else {
) |+ t# j* _, [; v- a0 N! H. c restore 7 X8 {+ H* F& L. r9 a: f \
di "cannot find maxp"
% N4 n6 x) A" L$ G2 r( z
/ t/ G8 m$ h& C3 W/ K( a* M4 T3 s
! E ]- |6 R# X0 f+ ^8 Z0 E9 i sum dx2407 m3 `/ n# L4 w: R# Y/ S
local tempmaxp=r(mean)
, A% `- M* E4 f) O+ W f1 I $ U t# H1 q0 U* N# W" p+ R7 c$ {
}
* g* ?% B' w u 4 b, I. K0 }' a# q/ H9 b2 s
}
( V% x, q7 U3 ]7 ]
7 X* F/ p! D p9 L3 N& D0 k0 P else {* n8 N4 Z. {5 n4 @
: M4 s- B: G' Y$ U
keep if ddy240>=r(max), M$ {2 G! W# ?) {% T
) ^3 x4 T9 o" V( J6 }( i
sum dx2403 Y6 q; {' N. t3 Q. ?4 `
. ~7 _: J; B7 q: k9 P0 A local tempmaxp=r(max)
9 m" G7 R8 ?) b2 y. z/ `1 F restore * r) _7 p2 l) } x `$ t) r( j4 d
}& N8 F0 b3 B7 s* f; h
& M1 e+ _6 T3 ^( l0 E! }& w+ U3 B. y( l1 b! L
4 p: u% C9 i# l' O/ c/ ?# Z0 E
9 j8 u0 k( Z0 ^- Z0 K
gen maxp=`tempmaxp' in 1! _$ y: _+ G: Z8 k! s- Q. ^ a
) T/ ? i8 Z% {# _! z *240maxp
) s) Y; f- i7 a) X, t
7 |7 r( s+ y6 N & r2 m) E$ m S3 b7 P
*-------------ddy240pminp左侧高峰值-----3 Z# o: F# g [8 n) [$ ~# G
4 r- S# |5 ], ]. a5 _8 ~ preserve % R! f; t+ R8 }# O4 E( u3 Z" B
5 J- m, X8 i6 L+ R8 S, } keep if dx240<`tempminp'4 o2 @" G1 [# s& y
6 N2 X8 f& g: F, {2 P- K
keep if ddy240>0! d# c. u% S. j$ y4 B" a( _ H" G
" S' C$ _7 w, M0 H6 C- O
count
/ X' F. _/ N2 {% X) {
# N7 |# U# Q0 V; E if r(N)>2 {
, L! z5 Z+ b% O' }2 Y& n) p8 i2 j
3 H+ e# x/ F3 N' E% A8 J- ~ pkexamine dx240 ddy2405 G1 V0 q1 t, d1 [
+ w! w. e1 |0 S9 ^) K3 S+ w0 k, e# } local tempminphddy240=r(tomc)
: D9 i( z6 x/ E. ^7 w4 a0 w# ] restore! n; b9 F9 K6 f
}
4 {$ _6 ~3 a( V3 y9 ]' { 9 {: @1 M1 U) ]6 a
else {" |7 c7 S. K, V" |6 J6 N- s9 V
restore
3 f% S9 o8 \) m! V$ d di "cannot find pminphddy240"( {5 I6 U7 u0 U8 n# U, w' U' {, x0 e
' A3 b" X9 C2 {, b o# V, f1 D
1 K% X4 [3 \3 M. z+ Z
sum dx240
Q0 B1 ~+ F8 T6 I$ l local tempminphddy240=r(mean)
* Z: S! m% f3 N3 p2 ~ % @4 ]% N3 X2 X4 U
8 |! X( y1 T0 @4 N+ s/ B# \- C9 q3 J8 p
}9 B% B; T0 d$ `3 W* b" d
8 y% D- p2 A3 q; ^! W) c$ b
+ M- }" |: a D5 @& n& y n2 {/ g& d$ X
- C+ q- k) T1 h0 y- l0 ^: O( Z 5 G' a3 q4 j' d E+ Z
7 |+ O6 V T( I, g) M1 j( \+ P6 f
gen pminphddy240=`tempminphddy240' in 1) [. b5 W) p$ u: {0 N& {3 t% o6 _6 M
) M* I( i3 s; [2 B A 9 V8 q, ]# k2 M4 p. U* @! Q
*-------------ddy240pminp右侧低峰值 -----------------
! k U" Q( ^ ^1 R8 y preserve
- i2 M" p `* u : w% h) I. n6 j- {
keep if dx240>`tempminp'3 V- n& F \3 ?0 e
" Z% {9 m" x2 f# a/ Y keep if dx240<`tempmaxp'9 w6 x# Z! b% y. A; W
) G+ E# ]9 e& h |/ y2 x* F keep if ddy240<00 ]$ V. k/ g, L$ G& P- E, D; x
- H2 M. ?) ` n0 P0 q gen temddy240=-ddy240
i& Y: _, _4 q& h: p& e
3 s+ d& j6 {! Z1 {7 Z count% M5 P8 k4 @6 t2 Y: |. N
% y; j C- `. Q# j! f' ~ if r(N)>2 {# \2 W) K4 j _4 T0 Z
- |' d/ ~) l# k+ t/ y$ y' [ pkexamine dx240 temddy240: n* |( }6 L+ W3 A' q: |' t
9 f2 s7 X/ _3 R' t local tempminplddy240=r(tomc)
, ` C9 k5 u5 e1 L" D x$ l restore0 {5 y% l# F& P6 V: ]
}9 c8 t; {1 v$ w) x: h
2 m8 S* k# F* l) `! ` else {
+ a5 q. J# C+ Z8 W, [" N6 X% h/ s $ y) h" u: m+ }
di "cannot find pminplddy240"% o7 c3 P) ?' Y/ r
restore
; L( M8 T6 w6 H5 { 9 M- P' c7 p: N2 G7 j
sum dx240
2 C4 z% @8 k0 _, |6 ?6 `! r3 x local tempminplddy240=r(mean)
( W m9 h2 F/ F. q8 p( z# p
! Y$ x# d S0 Q! V0 \) | 8 F' {: q% ^& ^! a
}# Z9 B: [3 u7 C2 m3 k) r W% I0 e
8 M ]$ g/ J5 L) B% V + `; X7 C: i6 V! v* V# U' Y1 h
1 x4 t4 G& q$ T7 b % @( o& v( d) _# Q0 T
1 N' J6 N( W8 D( X- ]2 w gen pminplddy240=`tempminplddy240' in 1- ]6 m0 z u% P; ]8 e! u8 @
9 C f. C2 i3 s- b *-------------ddy240pmaxp左侧高峰值 -------------------) q: i! f& _& A7 `; B
8 O& p( j2 ~& y! d+ v! Q( G preserve
) D- ]3 o, _) l6 z0 P 4 t/ _- \/ Z2 b- M. d( e/ z# P
keep if dx240>`tempminp'& a0 o9 Q5 c8 C2 N3 |' Q
3 L, T4 f: `3 k. W" }3 p. Z keep if dx240<`tempmaxp'
; w" C9 X. j: j, d # Y$ M. \6 V5 p! [
keep if ddy240>0
, n l# t5 t1 B {$ y9 j. S4 b count3 M' k0 G/ p+ A, A
) ^# }$ u* `! g# l! _
if r(N)>2 {
8 h" q4 r4 {) K+ W 9 Y3 Z D1 n* N3 E) t) M' D9 C
pkexamine dx240 ddy240, r+ V' Y$ z. B/ L- s& j
8 V8 b/ ~" c, k0 l' T9 K local tempmaxphddy240=r(tomc)
5 ^9 [& |2 w8 d( F
1 ]' p9 s1 j5 D1 A+ s restore
3 V6 I1 `/ X% J( ~( g }3 K; C! n' y7 E
+ u0 F7 Y, S" D. s+ d# X else {2 l% `' B2 a% y
O. ^2 f0 ~8 W2 V+ P) N9 b
di "cannot find pmaxphddy240"* U; a6 G" I3 o* ~& f
restore
5 j7 x& V4 I! j2 F2 f7 o) d: B . O* N: a/ x3 q' @ w
sum dx240$ N- s8 I, P4 p/ n5 I" }% _/ w: S
local tempmaxphddy240=r(mean) : f0 H& o+ ^2 \* a& |
( @. s& I8 o7 m# d8 |) y7 g2 w
, T5 Y% W# W/ ]4 | }
; _- {5 ~7 j7 a; h" V% b; h 3 {! M6 ^3 O7 U; \" l9 }' M w% d
. `$ w; y/ O5 n( i
8 x, T. g- B3 k5 _7 |4 l8 }
2 x5 Q; ?$ {: L$ l- r' F1 ^4 z # E* e/ J d9 W: J: w
N+ k3 f' U+ v0 U* Q gen pmaxphddy240=`tempmaxphddy240' in 1
P( g I4 ~4 p8 _" ~; }. i ; @6 ~) p6 j" R
( H; B" o# m% x) Y9 m
*-------------ddy240pmaxp右侧低峰值 -------------------0 C! C! I, H2 X+ p& C+ d( c
) I9 T! x& X& Y2 F; {
preserve
/ U$ `5 R; Z% ?% p, u6 ?! k
+ O# y5 n. g8 r+ K5 t keep if dx240>`tempmaxp'
7 S. L1 M: _9 m4 J+ T! g s/ ]; C7 X) Z
" P1 c8 e% U$ E8 Z& l: E gen temddy240=-ddy240
1 d9 _1 P2 K0 x# G
; y9 j6 d- l+ }9 i9 l keep if temddy240>0
6 [+ R) R5 P: Z2 P, e9 T
F I: o( E) O9 ?& O- e count. t* O4 q9 I( y* ~/ m0 x5 U
, s; u, f: x/ T! I/ @: y$ o
if r(N)>2 {4 p/ S# {6 m! U5 {; v% l
+ j& H: z. p. `9 c( f% p" s
pkexamine dx240 temddy240
; X* k3 N; t4 h" X& L , ?; E9 H/ M* O5 {- j4 \3 N
local tempmaxplddy240=r(tomc)
3 X9 ?, K4 }3 k7 \, c$ V/ D8 \ restore$ x" t q) J4 u0 [0 q6 X4 t8 g/ j
}9 h2 u7 }0 s' B
, h) t* J+ f/ B. k; l4 d/ `
else {
. _6 O" i! i" R3 x: d( G restore
5 e# |( p6 w; K. X& o di "cannot find pmaxlhddy240"; h( m V9 C2 W: X2 `. x) e8 D* Y
& H: i& n+ }5 f, ?5 |! `- ~ ( F6 _# y1 E# E0 u6 V5 g
sum dx240
, [9 q' ?5 N% v" u3 h3 G$ \. [ local tempmaxplddy240=r(mean) in 1% F+ W4 {4 J1 e. _: [* b" N" T
& ?5 G4 }) Q! C$ \& c! N
$ Y9 `$ v/ T0 x4 R }/ U r5 l- I. c0 X
+ N5 q" Z, W0 Z# f+ J
0 b( j. w3 J5 n, |- V4 a7 w' z
# c: E! g9 A( Z- R: T( r5 H/ I 9 p( Q/ @1 f% G, J8 `, ]$ V+ w
5 Z- x' d; V7 m4 C
7 C" n* I; y7 s _ gen pmaxplddy240=`tempmaxphddy240' in 1. ~/ h+ r* |1 C2 b4 }9 v
2 W- V' \4 h9 @# S$ B3 F
*-------------------------------------; T2 O4 [) r" u9 U3 X( E
# e6 u" d, T7 I4 n r3 p gen price5d=v5 in 1/20) V8 _5 U w' K" \+ n
. n0 ]: ? O; u! ^/ [6 O6 H
gen price5yy=_n in 1/20
5 ~& Q: S" P8 r, Q) O. G ' x( x8 B2 n! A0 m& d1 ~
gen price5y=price5yy*(dy240max-dy240min)/20
( C/ w: }; S1 `% H) C2 }& ? ' B i8 H. D2 A+ G: E: m9 W
*price5y &price5d. I% [0 N4 r' {4 b) h/ i
0 b4 Z2 E6 Z7 r2 I gen priceny=price5y in 1
3 w$ O, y+ }" G0 {9 R . b n, w2 C: n' A" h
gen pricen=v5 in 15 a; c Y+ z6 O/ p2 a& L( p
6 m& ^) a7 f+ r( L 8 v8 y3 _* U! T- a
*priceny &pricen
8 v8 Y1 E. ]) [& f" c
, N x$ P: [7 W# e) L2 G! n
2 @7 V4 G% i7 y" b" A *-------------------------graph------------------5 Z' O2 A d1 h' \- D
+ I$ |( X' n( S 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)# S: I3 b% c8 e4 x( C$ D$ L
, B2 C$ q y/ r, ^: M) s* ---------可选项目----------------------
- v) Z# I5 s; l6 f+ E: ?*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
3 C! h3 _( t& e* t$ ]- O$ c}
~% p8 _& H/ M' x, l: }end' ^; t/ f* d% `3 j. E4 o
|
|