|
|
maodeng 发表于 2013-1-28 13:13 ![]()
: N0 q$ B+ e* Q4 g0 w% B2 u. hello 300236
1 c6 r9 p8 S Y, r4 w2 P5 @statement out of context( c4 F& {& L; b: `: C( n& @
r(119); ) g; }' N: D4 s8 r) W5 W
抱歉,最近太忙了
, F: C5 `5 L2 ~: P( [, k6 ~
( O. x: `8 }9 a7 f1 P! Y6 y8 [300236 我用下面的程序试过,没问题. @' n9 J2 W5 |: ~1 ^) C" v1 \
$ G/ T4 R7 x8 C) X8 ~你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试, o+ N: v7 }5 O6 s+ O
2 a, O% M% _3 R- [9 o3 {1 o
capture program drop hello
$ e8 I$ ]# R$ e6 v. F
# c5 E2 [0 O4 d* A' b" S$ Uprogram hello, d( S0 V7 p- Z% q: g3 Z
, \' k) n( i9 a& X. ?8 W
quietly {
# @" ]- ?9 m' ], m$ F, m# S& V* o3 ?/ M) U; X: C. H( x
clear5 Z$ a; A/ P+ s- a. A+ ?
' w( D* W, q7 X/ x2 h% Ocd D:\stock\test\source+ n! M, d6 l7 c) T' _ q
/ w# e0 M) ?* ~2 M- g% L0 g9 t0 g, U
insheet using `1'.txt! E# e' |) W4 q0 E
. o" k3 h/ ]- Y2 k0 r3 I: \* G7 {% y
keep if v5>0
( D7 i1 M/ c2 A , |- G4 `( ]% A
gen vt=_n
B2 d, \& O% a* r9 q6 S6 J( V2 W
1 J$ X& ~' [2 {$ d q: p tsset vt
4 T0 i, D( \7 Q7 h: |) `! V( u2 b8 v- @1 n9 `4 I6 L
gen zf=D1.v5
* v8 j4 I# u, f y5 p3 Y3 s. x9 u" n; |6 @3 n* V2 v& v
gsort -v16 {4 _4 K, e2 T0 f% o% h
2 F' v5 ?+ |/ l# \6 i& F
gen avol=v7/v5
4 m! r1 x9 D+ c# {" s) q
' B* I) A3 |+ ^& x5 r/ `9 {0 ^ keep if avol>0
* Q( l( F( h X
3 Q3 N0 x- L! Z) Q" s. W9 } drop vt$ V& N% {- |3 X
, n( S% t% x+ A
gen vt=_n
; ~; i# L3 k7 M/ Y' Y5 v
3 G7 [ }6 e, R; B! P" i tsset vt
% I W1 h) c$ m4 H
& I/ e9 D, m A3 i1 E sum v5 [aw =avol]- G. B( Z, o% G' S- V' N
8 p8 @7 H9 U' F4 O1 |! p1 e gen amean=r(mean) in 1
- |/ z1 g) U* \7 X
( @' X1 r6 J& }% Q+ ^$ [ * 总加权平均值 amean `/ d4 ], z7 d+ M4 x1 b: F
/ O0 [8 u* p) v( C
3 g0 z' C' r/ W0 R
keep in 1/2406 [7 I' V- L5 @# N6 I
5 |1 i3 m# W2 Z* q+ r sum v5 [aw =avol]$ z; W; j( i2 Z" F4 P- j* A7 e& U
) q6 T) i6 p; H* T) v
gen mean240=r(mean) in 17 r1 b( w5 c* c5 O6 h G
& Y$ G$ U. h$ J$ {' m# |) s S. @) J
*240加权平均值 mean240
1 ~7 g: \( }) ^! n& k 6 F+ F k0 n. z K" S
set obs 500
7 S3 f6 E- j: x' x1 ]
- \0 |/ U& R- d; _( m- x7 k" e kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph4 A4 K! B7 e! v9 j: _' u3 W
( N( r, k: W9 W& U" ]# B- @8 T3 s
*240 kdensity(dx240 dy240)' C! t A6 R1 j6 }0 ^5 e) i
, u# K' j' U; Q1 M
sum dy240+ F+ e7 Z5 b6 C/ G2 x8 ]' @$ d% X
, k9 R- L- t9 R. w/ C gen yxis=r(max) in 1
2 s7 N. |9 _2 Z* m9 e" p ! v e) d! ~- O7 Z% s( ]2 d6 _2 ~
gen yxis2=yxis/2
2 b* f* f( J: K8 |
7 a# z0 \& d9 E1 ^6 U4 ?/ r5 g( ]- O *yxis
7 Q$ Q4 d4 A3 r( w* X) e0 z( w
1 T# P. l% e, o* N' x) y5 H! v gen dy240max=r(max)
9 n; Z' v. a/ m
2 Q4 V% |0 M% Z# [ gen dy240minp=r(min)* G( h3 C# b+ `: M
9 v4 I$ J- t( M8 w; D/ M
gen vtt=_n2 b/ U! n+ s" r
& Y5 C& b% \ B P tsset vtt
1 W- Y% k' ?" E+ d
. B z" q3 [+ i1 z5 v, y gen ddy240=D1.dy240/D1.dx2401 a. Y* ~4 ]' G
: O- I P# e: o5 e3 _
sum ddy240/ H3 J) `0 A5 Z! P3 m4 |4 { R
& K$ { ?$ R2 |2 s
gen ddy240max=r(max)
4 L$ w7 p1 O5 k- ]+ \1 X1 T. D: n9 y ; w! J( e5 Z0 t- k( S
gen ddy240min=r(min)
. H) O- f9 d! d# N3 J% H! u: l 2 F6 N+ @8 [% y7 |0 D5 ^
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
- D/ I8 P9 j6 }$ A: s( `1 H 7 w# T/ l& x! n& A/ ^! L; l
sum ddy240g
9 ~8 h+ ^* z2 a" N! z3 Q. H$ z
$ R2 Z5 Z+ r* g5 x k% c( O! @7 D gen yxis3=r(min) in 1& V: G. Z Z' |+ g: {0 J
7 V% F+ _5 z# C( d M# M
gen yxis4=0 in 1
7 V2 O; a+ J5 n, C 3 x* R2 ]' ^9 _, `. N
*ddy240g
: g7 y9 Y3 r) D2 Q# o6 I ; p# a0 c& }) Q3 p, Y
7 U$ E- t: N. ~: {* S preserve
) r% y. Y/ B* u8 f ]# u7 w 3 K6 s9 L- ` z7 ~4 {8 ] z
sum v5 [aw =avol]. d) d$ O# L% t, M0 z6 }! K6 `* O
5 e9 w2 i- ?4 }: @ z( f
keep if dx240<r(mean)
) D& x3 p7 k4 q8 y! D$ y 2 s7 E4 s! [6 N! d5 S$ V( ]2 d! R) Z
sum ddy240
0 t( I4 z: H$ r 6 G# i' k8 x( _3 z( Y' f
if r(min)<0 {
6 s% N4 Q! N& K: r7 O. M
3 n7 o) L" {5 X7 R- H" l& Z. H: x keep if ddy240<=0: v. s! T# Q' N9 _9 C5 d2 [% Q. l
8 c% o; n' E5 X3 Y/ x3 @" B count
u/ Q3 e5 X- h+ i8 {- I& n5 n 4 Y) m- N' m" t0 G; V- x8 E$ A
if r(N)>2 {
) n/ N& h0 v; n" ^- G: m0 i% s
+ D/ A% J' Z6 i, }- K pkexamine dx240 dy240: o5 P, e- |0 V5 C
" z% _: O) B/ r+ k: R) u; O
local tempminp=r(tomc)
9 q0 M: q3 q0 W" a restore
# Y0 \" N% k+ ?( t: m) g% ^: z }7 L: E0 K9 U" I5 \
) i d2 @, P! l* b6 v% d; R: S else {
* r; B& Q z0 s4 G( [ R/ a
9 n! b! q. b0 t4 A( f di "cannot find minp"
% X9 z7 y, X! B2 q% u" G6 \ " _/ B0 @% X3 `
restore
" e) C! j0 m% q3 A7 L7 L: A sum dx240
- l1 y9 H; H" D7 J6 J. }6 n7 l local tempminp=r(mean); g9 a0 E9 {$ w
4 S, g9 O2 E) d/ Q4 O9 r
}2 ]( ^0 L) U% s u. Z
}
; p. {3 e2 \: u# H% h else {
1 T, x6 j% g% I2 q: v
* M4 I/ u/ H- O4 J keep if ddy240<=r(min)
' _% J! y6 z. c) t 9 X9 [$ K6 Z3 k. W
sum dx240+ N5 a& c" ~5 ]1 P0 Z2 b8 G+ U, T
, f) I) v$ W6 s/ K1 x" ~9 l
local tempminp=r(min)
* A! ^: r0 G* Z. f restore ( R) q$ ?" u. G9 S
}1 F! b6 C( c( l# Q: U& O
~; n* o, _0 Z7 B
. K: W$ L+ T/ C+ [/ g
& B3 }/ I# ^3 D7 h gen minp=`tempminp' in 1
( k% q: X3 ^3 \ *240 minp( B7 H/ [$ s" A; a [
$ D. b' f& V: ]
# `$ B1 b- \. b V2 S% ]
! l J ?" s4 b z8 `* P1 r/ U+ Y preserve
; b: |& Q$ p2 `+ V$ y- r
# P0 G" b* v5 V& h7 B- c& S sum v5 [aw =avol]8 K W$ X# [. ?
H% c8 F+ G$ d5 ]
keep if dx240>r(mean)7 B% d0 c4 M, @; D7 ]" o# x3 X
X* i" |: w( ?& i sum ddy240
9 u' f! n# }4 s/ n! h# Z & s2 w. P& U5 F! A. ]
if r(max)>0 {
' X+ k( @3 U# J N- f& z! q
2 t& k, C/ o/ N d& ~! x" B keep if ddy240>=0- O" H" }# ~, \& {- |
8 Y' j2 k8 H6 Q A
count
/ s) i J/ Q! U* i9 \4 y. v& n0 M9 o % a' b7 b! d9 W; y$ ]6 r
if r(N)>2 {% [# N! j% p6 C+ P& p& i
! ?; N( o6 x; d" F
pkexamine dx240 dy240' d! `+ l6 O l0 x# }
: i }( c' m$ Z0 a
local tempmaxp=r(tomc) * f& A" V& n; M4 k
restore - d4 L: b: S# u" V& m
}
3 U$ y. m# X8 F) B 1 E) e$ z. a v+ {
/ U+ k7 C. q: c1 O, x8 ~7 \ else {
( {- b1 X0 f! a/ d restore
1 Y! Y" _/ x( S' W. M# M di "cannot find maxp"( w2 m1 h! p# @' b; o- \4 t1 V: t4 g
+ }. [3 W" e5 W% I) \4 U
- s# A5 w; p; m, m; i sum dx2407 n r: }+ W k! l0 |0 W/ f( R5 p
local tempmaxp=r(mean)
2 r. k2 c n3 m- M, s, B# y7 v# W 0 w: A' s8 l. i( f1 E0 V
}' x4 U! }5 o$ {1 }0 g
& p- @# l* D1 }* T+ S2 C t }
, |' L$ ]- O: F/ @! C) U+ q
4 T% z6 J2 @" ] T7 y; K else {
: Z4 C, V; H8 N& p
b* M. S2 X* J. H' |, d keep if ddy240>=r(max)
& c) H% V V& l: c* u
6 C; L0 v" m) O7 n sum dx240+ v7 f! ^; x! a$ p- G1 r/ q
1 M7 j; w5 F+ r% C, q7 f0 h
local tempmaxp=r(max)
& ?5 A( z) b' Q9 m& o8 G restore " L* O0 o1 h" H! N8 o, C: o7 Y
}
, z7 F- _6 v1 s1 j) @( x) t' e
) S0 m# X. C/ s- Q: `5 f0 V3 @+ `& @! J& ]2 @
: ]9 b- p) U: o3 Z
% X* Y4 g6 M/ @- U9 w! B, m
gen maxp=`tempmaxp' in 1 O$ B6 E2 D* v- K! ?
- v- Z5 N+ ?7 [( R/ m% d
*240maxp" b" w! p6 ~8 W6 }* h9 i
* I3 L/ ~7 E: i
+ a6 _& O7 M$ [6 b" C5 ~) \ *-------------ddy240pminp左侧高峰值-----
( ~. l4 v# _" h" m, A, a: W
& H* [1 X5 \9 F preserve
9 T( J# |; G5 G, G. V: X
# w9 V+ T1 B6 w3 G) N0 e keep if dx240<`tempminp', d9 w, H% j+ K) u8 q B; f
' l7 c% F; h0 _: a/ \7 a2 H keep if ddy240>0/ W; e/ r! ~( R- Z' @) |
6 N3 X1 {1 O0 l! y7 B1 f' q$ O
count8 b) D- @1 Z$ @. P
5 D' I+ e7 {$ J% k if r(N)>2 {
# X& P1 j0 @" T( o4 w- d2 S% Z & F' I" i b/ a2 \. _
pkexamine dx240 ddy240
8 H% S. ?1 s# O2 l3 \ . Q' m' d0 n* r5 H5 q4 P
local tempminphddy240=r(tomc) % i2 o3 h0 ?& o6 r
restore
" Z5 i) s" f d o" S }
1 E, G$ Q* q7 K1 Q4 N 7 j/ j3 |3 W# |) E' J( k& h
else {
' E3 n$ } i0 a restore
" k% ]+ `+ t0 ~. v' q5 p+ o6 g di "cannot find pminphddy240"
/ I+ `. y( W' ]. `6 d8 b ) r4 T- ?( R- k0 m! D% g
# i6 ?& r4 z+ [" O! g, k& g! P
sum dx240
4 J! B6 P0 o& G( X/ \. g$ N local tempminphddy240=r(mean) ( u1 K+ x$ ?3 y: u, _$ J
5 M, R! S+ w6 z, h0 T4 N2 p+ Z; b
7 i! n% v0 } Y/ j8 x! G1 y* }1 a }
* d) J v! J& Y+ d % {) Y: y' }* V/ }" ]8 A; S3 h: z
P* d. @8 p8 ]* b1 d / g4 q# }$ n& ^ w r
# e5 |2 }7 `% x0 J7 d
. p' j) M7 y) A7 \2 `1 n$ e- G/ u9 N 6 T+ b l- t* p0 ]0 L! e* A, u- N
gen pminphddy240=`tempminphddy240' in 11 s! D2 K1 K" d6 D
6 L" A. t0 w3 ^( H" `
- I" X; U5 x" c$ a+ g
*-------------ddy240pminp右侧低峰值 -----------------5 j4 e5 [2 k4 v: H/ r
preserve
1 _% c' i; G1 I: `
4 e9 r6 | R, I! k keep if dx240>`tempminp'+ K& B& m6 _8 Z& }& _
5 I, B* N! p4 N
keep if dx240<`tempmaxp'
2 H4 Z5 v1 `' X( m+ Y" d; j + Y% }- ~5 I$ O' Y" D
keep if ddy240<0
* [/ S) b) p+ j3 `( g4 Y5 K& S
# Q, b. E- s7 H0 K S gen temddy240=-ddy240) H/ Y e+ A3 X* {5 W: Q
; D. i8 b$ w- ~* E* u7 x& [ l% p count
. ^& u. k( g. E% n- K 9 d" S9 S3 `% \8 |- G
if r(N)>2 {
5 _- |8 I; P' S R8 k
! F2 Z u! j* E( X" F pkexamine dx240 temddy2400 P8 C# q' L' z; f0 |
h {3 s% J: `
local tempminplddy240=r(tomc)5 T% k. F8 f1 H4 @/ t4 ]
restore
2 U+ y7 @3 t& ~. w( i% P }5 T! P, l3 W y8 w& c2 [* m' ~* c
( T) ?4 c1 J$ Z1 ^3 d% ]3 C% {; S& U
else {& ~4 w: y! G6 i
1 D- S% h( X0 q+ [$ {5 Y+ ^' d
di "cannot find pminplddy240"# z% S) V- }' T; ^# A# Y
restore
" {% M& x& I* ?: o$ i, ] 3 r) Q' W! o2 x
sum dx2407 Y7 w; m% \7 t$ y# k8 G
local tempminplddy240=r(mean)1 L8 f% b* o- _1 C- M& P
. M, x6 i4 Y, J/ B9 Q, b
6 S. W& Q7 u7 n, m
}( }5 B! @) k! e! K" q" z
+ m* c" N- Q* t- Q0 [2 {
% j+ d9 z4 `/ g! S" M* |0 b
) | C' z8 x/ d$ Y; g1 N' y
c# u8 f P1 ]) M5 O
" @3 o5 V0 k$ G* t. C% o gen pminplddy240=`tempminplddy240' in 1
3 H+ q/ r" |; `1 {6 O$ @
% f8 J% O* O3 Q3 N N7 D8 }7 v7 x *-------------ddy240pmaxp左侧高峰值 -------------------
% h1 _" I( L4 B$ ~8 p/ l$ C5 r* \
# D' G, }( b7 S* E: Y! n preserve % L1 ~; e" `+ d6 y
4 f1 I, r6 c# a4 z: B' O: w; f
keep if dx240>`tempminp'
( N+ k8 @! K% P( h& I( Z
- P6 f; [8 I' u: R keep if dx240<`tempmaxp'
! N: ^: v7 I( l- `3 S' z5 w 5 z, X( S) B4 i4 q
keep if ddy240>06 R3 x. a, Z) h( q$ z
count0 W! i( P3 q1 b2 V9 u( T# X
`: ?8 t+ Y. c6 | if r(N)>2 {
3 S) @5 }0 z% P! n0 r# g# W& k/ \ 6 \2 h3 w; I/ c2 ~. ?1 v
pkexamine dx240 ddy2403 C# _6 j0 x% C. J5 U1 F8 u! k
" T+ i, a" c3 P( K
local tempmaxphddy240=r(tomc)
& A/ u7 x1 B, q" s& T7 f
) W$ @' k7 [: a+ D) h( k H& l restore) f6 f$ e7 I! w1 o
}
: k& N, X) G" N( M+ l5 C7 D : O8 C7 q$ F: ], L" L" }+ N6 o: V
else {
5 D+ g! S' |- c & B* R1 G$ p6 j2 N7 | }8 @9 R
di "cannot find pmaxphddy240"
3 X+ S: |; O& R4 [ restore
: ~( @: ?$ L" A; N$ v
( f* r- u' w' I) s- { sum dx240
7 f# I; u8 l- g3 R1 A local tempmaxphddy240=r(mean)
. W; M7 \- H2 g) A6 C - K3 e- a( Z3 H. @- \! m: s
& l4 u& Z+ ~; L o, p- b% D" }
}' t- N% U5 ^7 K6 e' R
9 A7 a/ |9 b' o; {* _4 _$ Y
+ j8 e4 O& l' i3 z" v& a4 X
1 b8 n _! v6 U: o2 C
( {2 p7 C& j# V% V 2 ^% m3 d" O/ D
# a! q) @- q7 t- `( L+ d$ d
gen pmaxphddy240=`tempmaxphddy240' in 1; e2 j& H7 d3 E! {# a9 h
- M# E5 A3 I& ~3 {
! B/ n* R% @# T: l/ E# z *-------------ddy240pmaxp右侧低峰值 -------------------
% {! ]( N u8 f7 H" O ( e" t$ u" D5 Q3 r/ y @, L2 L$ U9 ?1 P
preserve ' ]+ g5 L; `4 ]/ B; J9 L: g0 {+ A
! S) w% B, |5 K: r H: P5 ]
keep if dx240>`tempmaxp'
D! T% a; O5 u2 D. n
" _. I1 ?1 g1 m" i. z1 H% | gen temddy240=-ddy240
. f9 O& u- L9 A O+ i' R7 T
$ @% c: P# n& O0 Q. w0 |# e L keep if temddy240>0
; s# j/ q0 g4 h2 J; F7 [( Z v: W
+ ]+ }7 M1 v$ M. \2 t& o count* D2 r) `1 E& Z% ^( H
/ C6 L* W2 P* Z/ ?( i2 \/ \/ p
if r(N)>2 {
5 L0 D2 t( i! A, ]( s4 f: _/ c
5 g6 ?8 c" d" A3 C2 q pkexamine dx240 temddy240
; f* p8 U! o8 n! M# X 1 m- C* j3 z6 C, g. T) {
local tempmaxplddy240=r(tomc) * {7 M4 U7 L, M1 J$ w7 g J
restore
. C9 H* c$ q+ ~2 Z4 F0 `4 L }; m+ `1 O- j* K- s' }1 s: i) E
2 C: H: c* `5 h# _. m0 m' Q else {
2 i0 x) e0 h" V restore
0 D4 N3 J7 V& }: B4 D) U di "cannot find pmaxlhddy240"" s; |9 F9 c$ F$ z3 k
% H! |6 E6 h, v; F( e
& a, L% w" d& y/ J& O8 s: s sum dx240' [3 `& b# W' b# V/ R# O( _& E/ v
local tempmaxplddy240=r(mean) in 1- `- B( K; L8 q% J; b
' M. g7 _* r1 t& ]" g7 e1 ~- ?
9 ~( d7 O: ]0 h: J' c/ I1 N% t" X }/ I0 H! V7 B7 j! Z" r1 F5 H
' T) w$ Q" H( g9 j+ V4 v
2 F; q, r7 n/ ^4 Q8 y6 z% w/ e
* o: |( Y8 F8 b% c ' i/ e+ C) M9 {$ _
& a9 p k4 z% Y3 J$ [
8 H) y0 `, S% a8 K8 a4 O- x: q9 c gen pmaxplddy240=`tempmaxphddy240' in 1% C: A* o7 o2 i1 V0 K1 a
8 M% m% i3 b+ G/ j* R. v *-------------------------------------
* y \& c- i, p9 u' {5 j2 x& y$ W ! o$ o2 B7 a$ \7 r& y" c
gen price5d=v5 in 1/203 t e5 @9 r c7 F3 v) S& y
5 P6 p& D5 t5 o7 o gen price5yy=_n in 1/209 F2 F" S$ J' w
5 A$ Q: f' {+ ]: T/ Z
gen price5y=price5yy*(dy240max-dy240min)/203 X: A: I: T3 Q" t% ], m' j, Z5 K9 \8 y
: K; K0 s4 x/ P d% u. W- u *price5y &price5d) B# d% I# N O7 E. i
* [9 g4 ~/ Q0 `- V- M
gen priceny=price5y in 1
( }! k/ o/ X) k 3 e h5 b$ ]- `8 t
gen pricen=v5 in 1% j& H# p6 t4 E: q
$ U" S! V4 I6 `% I
, z+ c: e4 j1 j
*priceny &pricen8 v0 k6 ?7 u4 \. E
% D/ s1 |- |9 T# U+ y! G! y % B N8 F0 c% o5 R/ p {$ B! W
*-------------------------graph------------------( D) o: i; n: {4 [4 W
3 Y" N! F$ l5 S+ P$ v. Y' B: Z 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 p4 H; F2 n: d ^6 C {; ~" } S
/ K8 m* q+ w& j) j7 n" W* ---------可选项目----------------------5 `& {/ t* R9 C1 r7 J
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
* w+ U& n3 M0 a& a} w& v! h7 s. b: Z! e9 J
end6 F/ `( j+ x4 w* \$ T. e
|
|