|
|
maodeng 发表于 2013-1-28 13:13 & }' f8 F, p) u( k
. hello 300236
9 R+ [1 U' a& }* @( F6 S- h# P. e" Astatement out of context* d) q$ S% x: q! Q7 V0 A# k
r(119); 3 |; F6 M* ^+ d) x/ t- M
抱歉,最近太忙了
4 _7 R% j1 c, _# K( \) ^1 `9 |" T9 |( R7 V% K' ?
300236 我用下面的程序试过,没问题
$ {4 C$ I# |5 h2 {8 q" ?* d9 ]1 Q D9 s$ z4 Y- @
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试( _* L& Z4 n# o- I* [% P
# l% U8 V$ J( E: v: @5 w! b
capture program drop hello
; d9 K: N! I3 {1 n4 B. X0 ~6 E" n6 w% G6 h
program hello/ \6 ~* V6 }" ]& g e/ `$ X
1 y; y7 e! @, j
quietly { e2 ^1 z. x V" f! B0 {( W: r$ b: |8 \
- C, z8 n. h( ~/ G
clear' V. n; U# N; J) v$ P4 A, u2 }- K
; N5 W( E% K, F/ Wcd D:\stock\test\source
1 X1 W- X; K5 \8 p r( S) w) T$ g6 y5 X. a6 {- b- F/ I* j
insheet using `1'.txt0 b" v/ X4 R; v7 x
1 k5 K& Z M, i+ ]4 B
keep if v5>0
* k! {% m" @# o2 k- I( m/ Y# n, Z
, C$ ^! A2 L7 r9 @& Z; u2 e gen vt=_n# h/ A r" Y2 p5 ~# L) i
S: {' r% i1 f$ f6 n0 J tsset vt) h& |: _( _& ^/ w5 p9 u
5 F5 ^# d$ `5 F6 r7 v! T' g; `2 L5 I
gen zf=D1.v5
' v* S- P( {& L8 k: R
O1 y$ f$ _' g& v gsort -v1
- G+ A) l ~) ]8 P: B
$ |# X( @' S; j" G! B } gen avol=v7/v5: J V2 Q7 g6 W5 ]0 C) T
% H/ ]9 B1 |- d0 L) | keep if avol>0% `& m8 ^% H" m5 A
5 W' w' C) r+ A
drop vt
: B( U* o: {& {/ U$ Y 3 y" p* t, l# Q4 D
gen vt=_n* b7 q" n% ^# a& y' S# o
' l0 B& p! l& p4 J5 U+ o# T! }7 c
tsset vt2 h6 W+ w5 X% N* F: z' A3 B' C
8 _5 O& B- A1 h+ o
sum v5 [aw =avol]& O: W" Y) _6 Z# S% e$ G
# \& R3 Q! K+ C9 r0 d$ u% H5 Q, A gen amean=r(mean) in 1- n! }6 D5 G6 A8 o( R
4 [+ ^* t; G4 {/ M
* 总加权平均值 amean
: Z2 B8 n* o: Q% K: ^/ M : x( h Y' b: r- R9 E
; y! s+ c* u ~- P keep in 1/240/ P) ~) S+ j3 d; c
. E1 Z! C: i0 V6 M1 U+ z
sum v5 [aw =avol]+ }& }( z. w6 @" X' Z4 S9 D
6 B/ E; d* v2 M7 o gen mean240=r(mean) in 1
/ A( { e3 y, }7 g
1 c0 l$ R( U! K4 J( z# g& X: R *240加权平均值 mean240
4 j1 H: L1 U3 P( O: M ; Z- m2 C% S0 b( V$ m
set obs 500 & e; R: }+ j j% H5 _0 R) I' `
6 T- J2 N9 A- V4 ^+ d0 O5 M
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph* C) q8 Q: x$ ^: Q8 B
: D7 u5 U5 Q7 a *240 kdensity(dx240 dy240)& X2 M4 Z; X) P; u' b+ J
d: r! E' A" b( ], Z6 O/ {
sum dy240+ N2 W$ w" K8 j" Q- \: x* s
) G* ~4 U2 Q! w6 Y gen yxis=r(max) in 1
+ e# r1 w) A$ i+ Q+ j
1 B1 j; \& O V; O# |0 Z2 n- z" ], q gen yxis2=yxis/2% ?3 `; p, Z0 a( U9 t! G6 \
1 o6 M, ^- t" \$ i: l- i *yxis
: p5 U8 V. l m+ E 2 f" ~. B) D4 v2 D$ ]; _- q9 B
gen dy240max=r(max)1 e1 ?8 B; s/ _- ]+ v/ e% i
, T8 z4 N( O C: h gen dy240minp=r(min)
* t5 s x5 g- z" Q 1 ?/ s; k8 N& x5 T$ a' R
gen vtt=_n! `8 t; D- A3 ]
* g/ x# e2 g' _% F0 X tsset vtt) v6 g; m! c5 p0 t' n5 I p
9 r9 ~/ J* R4 i. L. V8 Y) N$ J gen ddy240=D1.dy240/D1.dx240& {6 n( @8 a. A4 e" R" {
0 }7 u) v& r3 H- j& j, e5 O6 B8 v$ b sum ddy240
0 f z( T- [4 c& u$ t# Z) S0 M
- G& O/ u! S) |- p6 u gen ddy240max=r(max)9 ~* c& M: o! x P5 e2 g. r. @, p
2 s q. E: M$ Y5 Z gen ddy240min=r(min)
2 l0 b8 d' v1 [0 |4 Y . V. v4 o: y0 i% i+ U0 w
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ f- \+ I- g0 D( o; V" E
$ f6 z/ D. `5 G0 h9 k$ l: }
sum ddy240g% [; M7 `. ?- ^8 B
6 b. D! H7 l8 x6 D* ]: s gen yxis3=r(min) in 1
; b$ O% u3 y8 @/ H5 J, T
. d) _) W( k: f, [& b( S/ d gen yxis4=0 in 12 r$ n4 l* o+ H$ A# _* `
; G6 }: R4 p5 k5 g$ g9 R7 P *ddy240g . J- |1 E3 @ B- P; v' c
6 n7 `0 N# F+ m8 w5 B' S
/ K' \/ `" R5 I9 g& J6 n# Y5 l
preserve
]' x) u4 Z, m. @# b; q; y9 m @1 Z8 O' ~7 m$ L( {/ T! I
sum v5 [aw =avol]
, ~4 V1 y7 t" t* z& u) k
0 i0 w3 m, [8 D& l8 K' @" k keep if dx240<r(mean)
3 C* v2 [9 a W% h5 @. M: ?- e % H, [. p! ~6 B" y9 o( p, d
sum ddy240
0 u W, l# Y& J- t+ O+ M# { , {3 U# E4 b/ `+ S* m7 |" _
if r(min)<0 {8 v+ z3 u: J& L
! W- M8 R3 l/ R3 ?( L keep if ddy240<=0! Q# y9 v& u) w0 B' O1 @
. y- E' F' ~/ c count, ?/ j, k$ z1 }' _5 r
& S1 C+ `- Z6 q9 F- |. y if r(N)>2 {
* O4 E. O6 P+ u9 {. P! }0 d0 f * K* C- o: ^, `7 }3 Z ?: v
pkexamine dx240 dy240
; v2 u+ ?% h! R+ N
0 J a$ i4 N- m E local tempminp=r(tomc)- a; C- l& z" c$ Q: C) x3 [
restore
; H# g8 L4 I: l' a3 N( |' L# i# r }- h6 l" x6 o/ a0 x' r0 N
( k, c' m& g1 \! _/ U
else {! F! B. K* g' R+ S6 J
# G: v& O2 }2 \4 K di "cannot find minp" h, k) G3 ~, J
) L8 @$ B) ~6 i7 i) i) a7 I6 M k restore
3 a0 g3 i' x4 ]3 o# q6 t" U sum dx2409 a* K. G( U/ A& Z2 Q/ B% s
local tempminp=r(mean)$ Q: y& W) M5 z5 ?3 H2 [
& }7 v. {+ r$ r6 P1 `
}
9 \# L+ k$ V6 t5 K8 n }
5 D3 w1 u0 e" T( B- R: R else {
/ }( A! Y- F/ g c' _7 W9 {3 c
! B! Z8 s, M" W, U keep if ddy240<=r(min)' f/ j' b; ]8 }9 i: ^
9 N% {0 H3 r; t2 P& m sum dx240
. a, E P% g. E! [, i5 E& O
6 L% R9 K: t. ?: t! ? local tempminp=r(min)7 u6 `8 o- E. h- K
restore
# r" M- z, Z) d! Q. A }
2 B& X/ u% m% P- e9 ]. a6 i# E3 d) u* t3 Y7 k4 v6 q9 k; l8 N X2 b/ ]
) X: E+ n2 h, X( ?$ h) K$ t% V2 d* m
( [3 e E: l: x% m gen minp=`tempminp' in 1
0 d2 B5 s7 E9 g. v/ k5 U *240 minp8 Q1 F; L8 R0 m% c# K8 r
0 x5 a F; Y5 N! O
0 w2 m6 e' r0 f& c5 l, p - Z. M* y4 L0 G
preserve
! S& Q7 _8 ]& O$ X7 [8 | o
! z; O. }7 h5 Q0 i- D sum v5 [aw =avol]; U5 A* A- {: F6 b; O- ^
- m* t) H3 p- w
keep if dx240>r(mean)" a. C$ r9 u9 w7 Q# t q
. Y" j4 X7 {- N* h
sum ddy240
* ^" a! {# y. d* ~% H) I ! C8 }2 Y2 e1 U: R" B
if r(max)>0 {- Q3 D; }& M) [0 p e# r
- \' [# m8 i) P% L2 T _ keep if ddy240>=0
2 L2 c9 Q. Y" ?2 Q* r" B( M
C E" J' u+ T' ?6 N: e count
& E! i- V1 o' E0 z9 d' B 4 P4 h, h6 F* ~( _2 B
if r(N)>2 {4 a( @1 {$ Z2 y* H) C
. G. w$ u# F- J; A pkexamine dx240 dy240" t W/ K% T6 L
6 h' x% {$ e: I4 [: m( ]1 F1 w( Q local tempmaxp=r(tomc) : w9 n* n5 P. C. q) A+ n, |1 P
restore
7 c& x, q7 k. T) t }
8 z3 l9 ^0 D/ y* Q' _1 |$ c
7 s) y+ S& ^# O/ U7 F4 @% c T
/ f7 ?$ V h- {$ z8 E else { W8 E! T9 [4 r3 I! Q' j8 x+ U! q
restore % ~. h/ W6 O* a+ D3 A
di "cannot find maxp"
1 a( ^$ ]9 U, y- ^; F
6 |7 l5 R2 w& H: B# p) f+ D8 r 7 t+ C, H0 n9 ^7 ?" b: `
sum dx2404 D# V% h/ r- L- D7 c4 ~! F; p
local tempmaxp=r(mean)
) l; u) T* e0 o5 _ n1 N* t4 B 2 T) J6 V, o5 A, M: ?3 p
}
0 l. E- t- q0 [7 L' a0 X , w. K6 a9 \6 l/ k. Z8 E& |* l
}
z! o- n% ~2 C M2 U ' p- W3 g$ _' W6 A- R, M a9 Y
else {
0 g# U# U% n n ' a6 n1 x7 n' v# L6 ?/ r& {
keep if ddy240>=r(max)$ ~; o9 W# L5 s/ Y# |
S' Y' ~5 G( K
sum dx240* J7 h1 @% y4 C( R9 P- F
! _9 F5 S0 i8 u' x3 _4 n
local tempmaxp=r(max) 0 N5 U _9 Z. X% I5 S4 Q
restore
& H0 Q6 ? T5 o+ Q5 b } c0 Y: p5 p9 } v& p$ D$ f
) Q- ~6 A3 w" I2 ^5 ]7 }' L* j" {. {6 b W$ M& _
: l, _: a, J' Q3 Q" u, r O& E5 B# q9 C' s+ c5 c. R) l
gen maxp=`tempmaxp' in 11 o8 I5 v' y% l. M' {# m
! q" d% L1 |: T* N
*240maxp
/ O D- Q& b( N1 Y
5 G- G9 h6 d+ i. J7 ]
/ l' x5 R$ ]7 U; y *-------------ddy240pminp左侧高峰值-----+ n- l; C$ ~9 G. l
+ w, F3 [! O+ A8 G" O8 A preserve
4 t9 O* n$ I* J0 m + P \) }' M# A1 T# q
keep if dx240<`tempminp'
! g/ E8 I8 r5 D
2 U$ n" l9 _- V7 s keep if ddy240>0
& ? o' b \7 P4 X 2 q- c: _$ k5 P U Z( S* b
count$ d' V& l: p7 C+ a1 y
2 y4 U E! a0 V, M, T! q
if r(N)>2 {9 e5 D0 Z7 o! @
& m9 y, }- n4 N/ P( F
pkexamine dx240 ddy2403 V: }# z! R4 l) j4 T: m3 v) E E
5 y9 o& C. H/ k- r+ d, ^ local tempminphddy240=r(tomc)
# e" K6 y% l4 L5 C- n/ _) D restore' I5 Q& R6 a% D! T
} x+ H& Z$ w, h0 r3 F4 U
5 r+ }. j0 a Y8 \ else {. C* T x$ ?, o3 B$ W+ N' S7 |
restore
( T- } C3 M/ d: F \0 V di "cannot find pminphddy240"6 v: D) d! |3 T
& C' J& S) N- e8 N
! A+ Z: g. b( u; c( g sum dx240
: S) v% F1 \- q3 J" ~ local tempminphddy240=r(mean) 8 L8 Y8 ]6 N1 J3 F, M
" Y# r& }% Q4 K6 X" q. B( s
- {( g0 R2 L3 ~; I
}4 {' V: D+ Y) M& h3 z6 G8 d
' y! L4 H# i0 K) `( W0 w0 X
! p) f W# C, G% I5 v/ G: k3 E% { : ^5 I5 w0 q- w: c- r+ |. U" f
! k# ^ }+ y; K3 v+ B
1 Q3 i) {/ V s7 A& i: }6 T ! s) S5 i1 F/ ]4 ~5 p: v
gen pminphddy240=`tempminphddy240' in 1( D; d1 j% H0 j. o9 i; O
6 f& B, S1 i$ ^ P' [ , m4 T) f" C& ]7 n4 d. L8 f
*-------------ddy240pminp右侧低峰值 -----------------
" e s; X) T2 Q$ H/ A" ] preserve 0 \- Y& N) A& w# S& ] A& ]
$ v( W/ M" R. V; x- @! J+ l9 o
keep if dx240>`tempminp'' O: {% r O- |" A
9 s$ j1 {) D" J# R keep if dx240<`tempmaxp'
( t- E s8 r( N( M 9 C! _, H: k5 D. n, `- C1 |
keep if ddy240<0 N( {, i7 b# }% C- s* y1 m
# J, ~1 d' {# {
gen temddy240=-ddy240
q8 a0 C% }" U3 a+ z8 b 3 K5 j4 ^* P$ V* ^" I5 Z1 y7 F7 c; j( c
count* W; ]4 R; k' l/ b! Z( T4 x) c8 C
4 q, c- }- J- D! B
if r(N)>2 {
8 G9 |2 t' l1 X5 t6 F$ g* `
6 c* c: H% ]1 m4 u& t pkexamine dx240 temddy240; q2 v1 m9 o% b2 m/ j
) M/ E: c9 b) z1 x local tempminplddy240=r(tomc)
, s/ e) ]7 g I5 @2 q$ c restore
8 u/ E/ f1 c0 T: T }
: w# R0 t' h# V7 H" z ) [: s3 z* T% @& R ^- ^
else {
% M/ v3 _* Q6 {1 B" y" { # j3 i3 k. a2 v: ]( l
di "cannot find pminplddy240"
8 B( x9 p; ?6 ~4 h; B restore
- a8 `4 n3 X4 E
3 _- B1 e. g( u$ z4 L sum dx2408 e! V# r5 K0 S; n
local tempminplddy240=r(mean)( ^' C5 D6 N, Q4 S( \- Q1 L
" n7 g0 r/ [3 @1 j( b' G
) x- _9 }+ }" [/ F }1 \" h. M1 a$ U: s0 C
0 b" W2 [9 r$ h0 D; b- l9 n0 V6 S
) M/ K& e% s$ F & Z; Y _4 [: u% k0 u! X0 R1 q
" a9 b1 E4 j- B6 W$ Z2 x
8 z. i4 P5 x: t" F" \# a5 ~+ g5 w9 k
gen pminplddy240=`tempminplddy240' in 1. a1 Z) Y B' Z7 _7 p! J6 a
) P' H& J$ J+ D& E
*-------------ddy240pmaxp左侧高峰值 -------------------1 C$ y" _ v, ~3 r6 ^: w
" Y7 b6 P# z5 ~9 F preserve 3 k2 Z8 j5 Z5 S
0 i" h) u" _, I1 }5 n5 @& _ keep if dx240>`tempminp'
4 _) R; r1 V7 H; X8 y 8 x$ _ N' V; ^* p. G
keep if dx240<`tempmaxp'
- j% h9 j) O9 d8 N& g 3 ~) |1 @4 B4 n% v. D7 ~: X) w9 i
keep if ddy240>0
) f0 v* |' ^1 g" n* L! C6 F6 d( B4 b count0 Q' x" w! N) E, G
& i' ?- O+ z! ]( D2 t6 @ if r(N)>2 {
, u, p4 t+ R+ P5 E 2 f% Z5 o3 k/ W$ V9 f# N
pkexamine dx240 ddy240& I* ~ ]: k; L6 c' m: f$ v
" A7 `! `4 J8 M6 d5 J local tempmaxphddy240=r(tomc) 6 ]- E7 S2 p9 `: Y7 V# y: q# L
* h% I& v i6 x: x restore
" c6 u a1 _. l& E I }
4 U6 |# x5 s3 l6 h# `6 H) I* l
! h& E K# k1 U. z else {
7 n0 ]9 ]' a) S' k 1 `) y) l* v% K8 T: h$ j! A$ G5 @: k! u
di "cannot find pmaxphddy240"8 @5 Z: j1 U( F3 ]4 Q1 v
restore7 B0 n$ ?/ \. n( y& x2 x" M
: e* s4 o+ W' V2 e% Q0 i/ H sum dx240
, ?; j# ?. N4 s5 u: i& d local tempmaxphddy240=r(mean) + H5 U1 @) J) G3 _1 g! ~
/ K0 x! V- z2 P
9 j1 j( H2 O" q+ U& f* w% x }
# H! e. `7 d0 \8 d) B9 M) D$ O - a0 a+ f4 s+ ?% \- M
8 V/ A% c, d# U2 K
" k! Q; ?1 Q H/ m ; N! s* ~. _7 y) O7 [% _; t
9 K- F9 G" s: |# h, ]
- m7 Z6 N8 M4 n5 b gen pmaxphddy240=`tempmaxphddy240' in 1
" C, n6 G8 X: m3 U. j9 A9 b" [
Z, o7 t6 F1 U. [- W/ S
* [0 e7 ^$ O% Z) ? *-------------ddy240pmaxp右侧低峰值 -------------------
. a+ R7 O0 v( j3 |, T P/ L# Q
+ b4 w1 m% \ F2 h& @/ T preserve ( N( F @: m1 y* ?; c! \
5 Z: d8 I* M' L# Z
keep if dx240>`tempmaxp'
" p/ E* @: y% o! t7 U# s . @; _! I. X% d% p) i6 F. x2 ]
gen temddy240=-ddy240. x9 t( R2 r# D, t2 C- S
1 J$ W& [# e5 l keep if temddy240>0 }& N# X' z/ S. u5 [$ K
* d7 L( Q' Y% v, U+ A count
- c0 A1 `1 H% w
2 B( r0 n/ j P H: e" m if r(N)>2 {
6 W; ~( Y8 R& I3 D/ `
' `* B ~$ w. [! i9 z$ X pkexamine dx240 temddy240
7 @% f* |, z1 |2 s8 o- a: E* g( b, X , q3 Y, Z& s( I$ @( |* e2 m
local tempmaxplddy240=r(tomc)
- Q6 C% z0 [% H; ]4 m! V restore
. T+ \& J' M/ r/ k2 @6 l9 g3 |' \) c- r }$ j# R) @! K5 D, p, E8 `1 r
9 x# ~: `% V) D& i* H else {
! S8 C# _, z) V2 H restore
6 ]% J5 t" p; m$ } di "cannot find pmaxlhddy240"6 k! o/ E* M6 q
- |1 _% A9 a+ F% k+ M* M . I, n) t/ L! i1 r6 G
sum dx240
" O, Q A' C$ x% Y7 d0 L* ]$ j local tempmaxplddy240=r(mean) in 1
9 k0 A" r+ h2 o# E* V" B - O' W. I% {6 z( I) l5 @
9 ]/ T7 e, V) _7 x! G, ~5 Z( t+ N }
$ p6 O" F7 ]2 o5 G. o2 ^
3 m1 n, @! s$ e) O3 K+ W
* ^" ~ D/ _5 ]9 Y9 {. r! [2 h $ e+ H. n' L( `6 U
+ L1 ]6 L8 H: ^7 ]0 I" P
8 o! K3 q0 I8 @! J9 Q. k ' Y9 W' N5 K j
gen pmaxplddy240=`tempmaxphddy240' in 1
/ W) x/ q+ E6 v; L 6 e' N7 p/ @/ a" A2 j5 W
*-------------------------------------
1 f" H1 W8 B& H @9 k8 A; C
, {2 f8 @ }/ h) y% T gen price5d=v5 in 1/20
. }5 D% k! D! }3 s e+ o8 G" X ! r T, P e( `2 ?1 ~7 L! `$ }
gen price5yy=_n in 1/20
6 i2 B: T' v8 J* e - N- e2 s3 G- ~) J, _" C ]
gen price5y=price5yy*(dy240max-dy240min)/205 u( f8 U" M8 v$ N2 g
2 s* V6 ]* t4 ^ l
*price5y &price5d
3 p0 u+ J0 I; r# q/ Q7 a 5 T2 p; n* M1 r: ~
gen priceny=price5y in 1
: J( H; W6 \3 x! w; z4 Q ' E7 ~4 }( h+ _7 U/ }/ [
gen pricen=v5 in 1
, Q# ?" U( ?1 m7 S# U2 G- c, g
+ c, i* W8 w# c, f& b$ g% a 0 v3 p" x; p+ h4 f* E$ E N
*priceny &pricen
w8 T4 H+ { Z- Y3 x
8 c1 d- Q2 v4 ~, a- S2 X) T3 ^ 1 t3 ~% k, |6 {+ J
*-------------------------graph------------------
7 B# E1 v( o7 {
+ y- \0 F% k3 W" `7 k 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)( Q( b7 g5 o6 C1 g1 J; F( x
U% }4 f* ?- i0 B4 L e3 f* ---------可选项目----------------------+ x* D5 q; a `+ a3 `
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
" D9 b; z& B; ?" e5 |" s}4 u$ A I& H4 D3 F3 f
end+ G3 Q) O: l) L( G- D1 r* M8 x# z
|
|