|
maodeng 发表于 2013-1-28 13:13 3 B! L, p# i2 E" |! j" \' n$ N5 z
. hello 300236
* }5 Y5 o9 e; \- j" Zstatement out of context
/ P$ Q: I; N: g- p, m. z" O& or(119); , ?5 R5 ^$ s+ A5 g
抱歉,最近太忙了
7 Z' s/ j6 t' |* ?) v9 _2 M
+ R4 B" ]2 Y5 A) ^, S: d300236 我用下面的程序试过,没问题
{. @$ F* c. j0 n
9 W) g6 D# Z- |- v& A你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
0 T9 u# t9 a0 L7 r8 Q7 h" L' }( n2 g
capture program drop hello! v7 a; v+ r$ \
: ]+ l. U8 o9 d# b# Aprogram hello
5 t7 L: D$ }- q5 z! v/ z3 z$ ^
/ L9 N) p- Y' o& h quietly {
% T6 n* k+ H, C' k$ `2 |, C
- l9 l2 Q" d7 @8 Oclear
; G! o% G8 x: ~" M6 d
1 {8 E$ B' L/ {6 B. Ucd D:\stock\test\source' f, K6 U9 Z3 y" k7 a
2 |2 [$ r; h' ]" e+ Rinsheet using `1'.txt3 I$ D7 |. l. y
' i3 }1 O+ Q* ]( P0 p) P- N
keep if v5>0& a) i9 j) e% q
- d4 N7 U0 C! F4 t+ f; g$ k
gen vt=_n p( i6 w/ Y) I- A H. C+ m
: M0 P+ O% `+ p4 j4 U tsset vt8 Q) ?4 n6 c7 ?: \: \5 j
, z( }/ a+ t3 e, w) J
gen zf=D1.v5
3 k6 G7 E v7 F% _& z- D9 t* W1 d s" V# ~' _! t
gsort -v1+ ?3 Z. B9 |& ]
. d4 |+ z( t. O$ V2 v3 j: [! w gen avol=v7/v5
& ~: `; M5 H4 C1 ~4 N 7 s3 E* _8 ~3 ^( L# g/ q/ R7 O
keep if avol>0
9 m! h8 _) Q8 H/ f; [0 H- k1 O
; [4 _8 t7 `3 ^5 Z) v2 Y drop vt. ~; g7 l) J8 R8 Y# L0 h
: G2 c# n2 |( V7 x) O/ p- ~/ Z8 |
gen vt=_n
4 f% [, A1 P9 b" w' I9 S - B' r" r0 N x7 v( j" y# D6 h
tsset vt
. w o; |, N' g( i" s/ ] ( s% G( _! b, f* S; J9 B* R
sum v5 [aw =avol]
9 x6 V8 X3 u) U- O$ _4 m& N& L6 L. `! A. D
gen amean=r(mean) in 1
1 ~7 K) i& D) h3 N
2 g! K' V4 \5 ?( m+ ^: _- A3 J * 总加权平均值 amean" ]6 D9 g4 |" ]8 H9 R$ a/ t
; o5 ]* j, P' t % i( t3 C6 r5 s5 Q9 r9 ^: |
keep in 1/240
. a# r+ U5 Y* E. ~$ W; _4 P
" f+ h* ~' E, j sum v5 [aw =avol]# j$ v% O3 p9 B7 q" {5 {( ~9 p
& U P; }: c8 J5 E( B1 P
gen mean240=r(mean) in 15 L: x6 k& n2 i
% H# g6 Z) H( `
*240加权平均值 mean2400 d4 ^$ U3 G8 P) g( q- n
+ |( j3 D( Y3 f# C% x
set obs 500
6 n" D% H0 k/ p8 e " P$ @3 Q& V8 l; c( Y
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
. ~1 N3 f3 T9 r0 M
9 q7 h. T! f7 G *240 kdensity(dx240 dy240)+ |* B6 `1 M" l+ v! g! M" f& C
3 Y% d$ t% Q3 w9 s sum dy240
7 E& x4 k/ |, e, P % M9 K3 ]) b' @: t
gen yxis=r(max) in 19 g3 F2 t. f/ c5 L$ D6 B
5 O$ U: j' q5 E& J
gen yxis2=yxis/2/ T4 D1 U* D' n, R! a
5 i8 \( b! \2 {9 c# f9 G *yxis
9 n% Z/ i) N; b! I 7 Z d% s7 M0 i3 @# A3 S4 A6 H
gen dy240max=r(max)
3 a* ^1 r7 ^1 ]( N ; e3 l9 R, [3 x3 n0 p/ \# r( s
gen dy240minp=r(min)
' {: v7 t' ^8 A( j5 l. o0 s- |8 y% M 9 }8 f# O- |- @$ Q: Z1 S! a
gen vtt=_n) }2 q+ ]7 F( D0 }9 k7 \
, [+ i2 f; n5 c8 I3 n: Q6 M8 d7 H2 m8 Z tsset vtt
* u" P; \( {7 }8 @# F3 D
9 v5 z: X1 N! `1 ]% {3 A( {3 R gen ddy240=D1.dy240/D1.dx240
; y3 J& j& Q, f& w _4 Z . @9 V7 a5 j0 e( A4 r- w. B
sum ddy240
; r4 t$ Y) I: M& @
4 A" k9 N- F. ~6 W gen ddy240max=r(max)2 a6 J- K2 U: }/ ^+ O
$ C, Y: v# [# [. C6 `
gen ddy240min=r(min)
; a* k4 y+ X; u* W6 U, L ! r) E( V1 D" R+ K4 P- N7 q
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
* Z, r: ?0 O9 m D3 k, m! s, }
' l, f6 p2 U5 n' C t9 X7 h8 q sum ddy240g4 a, m% c1 M" P+ g ^! x. S
! w% N3 f5 D7 a gen yxis3=r(min) in 1; @3 t% e4 x7 N
* p/ G( U; ~9 x; Q/ }( G5 r
gen yxis4=0 in 1 I+ a# k; D& |8 a- \5 E5 p% B( y
. u" ?) o) s8 d
*ddy240g
" _ h+ ^" |6 t7 I$ Q $ {$ N& h" l4 H5 Z9 `: g
: ?- M A0 V" g$ {8 y% m- b8 m n preserve + M- X) `, S5 V7 O# P
. \( C1 p; `9 h9 r Q sum v5 [aw =avol]4 H. @0 [$ }' Q |) Y& a5 @* f% a
& f+ H9 h9 Q( r1 ]4 n" ~
keep if dx240<r(mean)
3 Q+ p* e# z' q/ }6 M# R
/ s4 ^) T# X+ a" e3 X' w# S3 `: q* l sum ddy240+ h) T2 j2 l2 b! c% F, j" E! }
: J# [" p5 y7 k& K
if r(min)<0 {
( ^4 s0 I+ k" w
9 s, V8 ~1 A7 ~0 F& N7 [: B( @) { keep if ddy240<=0
% X" U4 k, N, o7 { 4 L/ ]5 l! ^; V/ y% Q
count
5 v/ M; ^: Y2 R) h: Q 7 h' u& e2 e+ D5 `5 r
if r(N)>2 {' z5 |) i' a- F& T
% W5 u; Q; {: m- ^7 O8 g
pkexamine dx240 dy240) H, M- Z# `; `
- a- p% [( E2 `0 g x* S local tempminp=r(tomc)) q7 ~6 j! k9 g6 b# D" A
restore 9 I+ K: {7 N; n" a8 g
}
* _, m7 v5 w1 R
, H4 N3 J; e4 X/ s1 I else {
+ [! u y! J# C7 R
$ p B$ c8 ~6 Q: a di "cannot find minp"
; U% z" r" J& ]1 T2 v7 X0 F ' ^) D& G9 N$ H: ~
restore 9 ~, ] v9 z0 T
sum dx2402 c( X6 h& y( m0 A1 o; F/ @
local tempminp=r(mean) R& r% k! e. C- ~: H
- g! I" c' l7 w% b$ k
}5 z) T2 v \3 S0 _, B3 f5 I
}$ i& C! i' H. j8 d: \ p2 H4 P
else {
' d9 }. L9 y* S9 _: f u; w) h4 v
- u! }5 W7 s. R) y keep if ddy240<=r(min)
4 D$ r* _% |7 t8 y ! }3 w% h! d: G0 t' t
sum dx240
8 r# L" G" V5 @2 t: K7 L, T
2 a* \: H' X! [. n/ E# _# O | local tempminp=r(min) [3 O6 Z" s3 }/ w
restore 4 F7 {( z% T* a/ ]3 ]% O) _0 S
}' d6 B7 b' E* R, p4 f( M) R
3 g; w! H9 Z$ F8 x. j; J# o
8 U) b5 R" e& I& @* H
, ]% C; N( d. A) r gen minp=`tempminp' in 1& J4 {; L5 ?( @ m7 {! M$ {8 x
*240 minp
( B5 \0 Z. _6 d' P- X7 d5 U
( d! _2 t7 a" t
; ]4 P% [7 b9 N& t. p& J
( N; \7 A0 T! t, Y" q preserve 7 w7 X W- A) \
5 @# r4 e# y* C& J. ]5 P- z
sum v5 [aw =avol]& ]6 S+ {3 T& h9 c3 Q4 U
* E# k! S; D# G
keep if dx240>r(mean)+ z1 x H3 B( F/ ?+ w3 C/ `
5 ]# M0 Z ~6 j, |$ S
sum ddy2400 O% X- _; `# Y: B, j( c
( p/ h( i# {3 u6 E9 |2 r
if r(max)>0 {) G$ |" {( ^. y+ F0 a; Z
4 o8 x/ V4 ^. E; _+ H* e& V
keep if ddy240>=0
! n2 H$ k; t8 s
: c# \6 l6 v, J6 C; \) ] count
# H4 V. R8 ]6 _' W. J: r
: [" g+ r, f$ l if r(N)>2 {
6 g4 }& o% X, b 3 e' g% P& v6 h* m
pkexamine dx240 dy240
; x, V4 f/ G4 [1 s 6 u/ m A2 Y7 r- N* @
local tempmaxp=r(tomc)
( ^, A& s- a- W# I* Y restore " c. [; E8 j+ [! q: L: {& f+ i3 g
}+ y8 U; e8 X1 ~5 i# d
. P6 x3 m0 d4 e
8 A( D+ q* I: b( x; g' z2 U else {
3 } g: }0 \) d' e0 e5 X6 @7 h3 f restore 2 D1 w0 i* p4 d" U: L5 f# F( X
di "cannot find maxp"0 I1 B5 {' l9 c. m% H
* Z; o" F8 U' f* Q+ Q/ Q
, Q4 E7 w- \: H# L! w# n0 X& {; Q; i sum dx240
4 z2 p8 L8 I! Y- Q' X6 \- } local tempmaxp=r(mean)
; I2 k6 N, P6 N% ]8 ]0 n
! m( M" ]& Z" i/ n6 u3 v- o }" G% z5 A" P' l
7 P+ J" E0 k2 [ }" o$ l" d" _* y* ] X
8 |" \( ^5 J) n3 w( c! W
else {9 b1 e9 a: F5 y/ O& \
& n6 z, `0 O O keep if ddy240>=r(max): \$ M2 f" ?: x* ~5 s
+ o" E% {% f L: ^: r o
sum dx240
! U" V% D: j3 d
: c k. D3 H0 v local tempmaxp=r(max) 6 F, v4 i$ @% n7 v% M1 N$ x
restore
1 D! l7 q: R+ k }
' ]0 ]' t# O$ N; b5 Q m; y; n; I' R
, R( B5 @" l: T3 g. _- r1 ?0 S4 g7 S8 O# l
% m4 b( N! c4 j0 a0 X2 Y; s) _' z: L3 L5 Q' ~0 N4 e+ M( a8 V9 U& E
gen maxp=`tempmaxp' in 10 d+ x$ D3 Y$ {
$ f1 b4 v( H1 ^0 V *240maxp
# _4 S' E9 x# W& w# x! q$ I
- n: F9 [, X, q4 O3 { # t: s" g; i5 p0 b
*-------------ddy240pminp左侧高峰值-----
3 Z# f4 K }+ T9 L# ? ) U* d) ]& W& s3 W
preserve * \5 r3 ?& U( b2 D/ G" H8 @5 P5 C
6 S; s$ w( v" c( f5 y keep if dx240<`tempminp'
) _- N5 S6 X4 w) g0 _ 6 U1 E, ]2 S$ a9 ?5 j2 q
keep if ddy240>0 p' ~( t2 ?0 n: x/ I$ z
+ |: u$ b7 G s& M count
; i8 ]8 a2 b- Y1 J: S; y
. A$ I0 R9 g# ?4 F9 n. d if r(N)>2 {
* U3 [# j6 H/ p) K! g- ]# y
. O5 R: N7 f2 a4 A pkexamine dx240 ddy240+ R$ O1 _7 h, S+ }
1 C: t5 w/ s# M, ~, a6 L local tempminphddy240=r(tomc)
2 g" D1 o& V2 j! o/ Z restore
# V, G9 y' s' ^4 K6 B }6 F+ o2 D' w( ]5 k# D
3 T# g8 f7 Z9 g/ J; r% l4 o
else {
+ ~4 |' x& }; {9 `0 H restore
8 J! |4 [6 ^3 g4 H di "cannot find pminphddy240"5 O5 r% u1 ^" f7 Q/ U5 _5 L8 A6 d
% L2 J, o3 V0 c4 p8 @# a0 }
+ A9 ^: Y* i) ^2 \3 H
sum dx240
5 W( a& q6 @. l7 U9 p1 l; f$ { local tempminphddy240=r(mean) , L7 U O0 y9 s1 w# ?) w2 _
4 Q( h1 Y- R9 K' J4 o
9 T$ _+ K% |& X+ o+ [. l }
; G' e5 E2 m, d ) j; d5 _+ r! K( t, z8 h+ ]
8 u( y$ V8 C8 u
" i0 {+ ]4 q4 @. f0 G a2 I7 b' g: C7 `$ ?* ~+ @
6 i2 n% f2 b0 y- b! z3 J* a 2 M. ?; s* O. t2 x
gen pminphddy240=`tempminphddy240' in 1. K( p/ p' C+ b7 a' G% `2 w
5 X% R- S1 y- c' m
! @$ M( n) L2 ^: p" Z1 D *-------------ddy240pminp右侧低峰值 -----------------1 k4 Q* ~4 Y6 _& [# _9 H3 Q
preserve % J, q {' ~, _9 z! Y) R; k
( b7 Q8 ?8 O& A0 K% [$ L1 J; M) T keep if dx240>`tempminp'
' _3 I3 E+ {/ c" n% [+ C5 [/ T7 l* x
4 I$ x( X, M2 Y8 C' G/ g4 D keep if dx240<`tempmaxp'2 A7 }1 z! E4 n" y
. N% g& K3 y4 P# m% z% { keep if ddy240<0- V2 T# H: W* u$ u% `: o
3 i$ z# ~6 B6 O; V2 [; v# r) n
gen temddy240=-ddy240* r" D& b1 {3 _6 w
# F5 o; E8 F( d% c; w6 o# \! ?! c7 Q
count
2 [ u4 e$ R- h7 ?4 G+ V+ d / P& K' t% |# W$ m; i* e' ]2 q
if r(N)>2 {7 r& [( ?; Q5 y6 L4 p
( y& \+ E9 l$ Z* G
pkexamine dx240 temddy240" c# U; T D+ ~, {6 \! a$ P2 o
( @" `' P9 p( I* k6 |) u; J- |
local tempminplddy240=r(tomc)
) {3 ^; Y, ]2 E) d8 [ restore
! Q" a: O5 {6 B' |5 _ }
$ |6 W. A/ |8 _- m2 M$ M
; R6 {3 g R) e( E; N5 F# g else {# p1 y2 v" F @2 v! M, t7 u8 l
& m# q9 e& m5 G( V5 d( | di "cannot find pminplddy240"
- u4 E, l* l1 ]1 Y/ F4 k restore; ~' S+ k- e2 v# @
- T' S% p% n2 W7 H5 |; U0 p1 P sum dx240' O! \4 g1 z8 x/ v4 F
local tempminplddy240=r(mean)' p! l/ H5 u0 ^4 F
[8 a* X: m& h( g$ _# k( J. u- V
' q- x. C) ^; Y7 E/ ^% c& w5 J
}% k- l7 N, S9 {2 C/ b* E9 C: j8 a
; E( w0 L5 c9 D" k$ H1 B: A
7 X' Q" v. h$ M+ C$ Q$ [ # F3 }: j) D7 m" z
( F9 S& N' k: @" b+ c: O
1 ^# Z+ Y; V e' q" e/ d8 i' q
gen pminplddy240=`tempminplddy240' in 1
2 s7 C5 ~) Z/ i; Z3 c$ w
" {" h: A; @3 B( |/ i) t1 r *-------------ddy240pmaxp左侧高峰值 -------------------$ d4 K8 ]: ]- B
9 b1 L+ |) _- o' K2 b8 I# G6 T9 \ preserve 5 I( j6 l6 ?& K1 P" o
6 H! { f1 ^* q, C9 i
keep if dx240>`tempminp'
; U, ^) h3 L2 k7 T6 A3 c# L8 w6 z
) Y |$ A1 K6 W! M keep if dx240<`tempmaxp': ]* l% s; H/ O1 r+ L$ r' K) a
5 n" Y. ?) X( k% h
keep if ddy240>0 C* q) x: j& d& `
count
% o$ [8 b) t7 k5 T1 T" R- M0 W
8 P& g$ k5 y5 a+ ^ if r(N)>2 {
6 f8 |4 q4 W A9 m3 n$ D! ^ ) t0 [& L+ i' F% c# x( k1 d$ I$ F
pkexamine dx240 ddy240
4 Z/ e/ _/ d% I# g! e( T; v6 r + y! d3 I8 F' m: R& w/ C: M& j
local tempmaxphddy240=r(tomc) / u% G$ ]8 P, }* t
" [, y( j0 B( [# D2 @, Z# N
restore
" o6 E- E) O8 o" B }( W6 D) t0 s0 @; @
0 L6 J3 T$ d. N: S- M3 O6 m/ K else {
4 o; j5 ~ U2 d P% ` , U8 }/ D, h$ t% z0 ]
di "cannot find pmaxphddy240"4 ?+ a; ~; v9 d h+ o- ^, c
restore0 B/ i8 _1 I% V) F! J# U
& @" Y9 M7 ~+ Y8 e) L+ S1 d B
sum dx2408 a, i5 J2 C r; H _ ]
local tempmaxphddy240=r(mean) ' p- d/ Z% u/ K/ m
8 I n8 w3 S, ~! x% K& H! A9 Q: Z# D/ X* B
0 Z' v) @* `! c }% f/ d" x3 k* D# Y( i
- S: R, ^8 P7 W m1 t8 j ! g7 m6 K. y: ]$ g
( c$ E7 O: B( O- v2 A5 U5 w
- m3 O0 D: s+ d6 a
$ c5 k4 j( Z0 p) h& i4 U+ a! H) L & d) `: }; A# M' T5 t) J4 d9 d
gen pmaxphddy240=`tempmaxphddy240' in 10 x& V1 J+ S- i! t+ ]
9 K3 x' a" _. \; [6 g3 X; n
, c1 w8 ?: C4 g3 f
*-------------ddy240pmaxp右侧低峰值 -------------------
- A$ J3 k- z5 \+ y# B" V" H6 ~
" D4 c* [( U3 V4 ~ preserve
: M+ [& F5 C) t: P: l4 o
" i! t3 i! _7 x9 n S# W( p( d keep if dx240>`tempmaxp'4 n6 }' g8 s) k* w
0 w( Z/ [* c& B, i S0 a5 y gen temddy240=-ddy2405 t; f, C" S) S: `8 v1 [
, P+ C0 Z) O2 Q3 W6 ]3 f. W keep if temddy240>0
' `9 m# ?( b, W( ` . l. _8 z8 f) o! C. F
count* p- p5 E7 S1 K3 s
; L, H6 N8 {8 U3 L, ? if r(N)>2 {
# s7 w- ]5 L+ M , `( r, ]5 M/ {$ D
pkexamine dx240 temddy240' o% A5 f# e- r( r' G) N% p
- ~- M$ E g+ |- g Y) r$ l# H& J4 y local tempmaxplddy240=r(tomc) , q4 K* }$ w" W, t3 \: v% W2 Q
restore
, @3 @0 ?, L1 U; h1 s' X' m }, [3 ?; @8 H/ g3 N9 w* w. l
7 o* j8 W. ] o! L7 Q* C else {0 g' a1 C9 ~9 f' |2 a! e* p
restore7 F; Y( K( b! m- Z% L1 l9 Z
di "cannot find pmaxlhddy240"1 B# j4 P$ J7 N1 n5 z0 I' c
- C; B% p- Q1 C- m9 T4 p( S$ ^
( W9 A4 I: Z% C) P+ U sum dx240
+ g% Y8 p1 q8 H, N0 A! ^, U& [ local tempmaxplddy240=r(mean) in 1
5 @2 {, }# N8 s" |
$ N5 v9 u: s- C
- I5 q% F0 \ {7 S }& S* d% v6 \* w( d/ W" H% T6 T
1 ~) g3 f2 j) R( d' d8 A
, {# V% M( ~! q ( C9 h" a: V. L
: p! Y7 W- N) _1 o, l, w1 ?/ A; z5 X
6 D0 L% p) I* S
. y5 w3 u% m8 B+ U, j, h8 q gen pmaxplddy240=`tempmaxphddy240' in 13 ^; m8 f( v9 ~! x/ j, y# g+ j. ?
4 I* T* u- y1 S
*-------------------------------------
; X, D2 `# K3 u( x) {5 Z" `& I1 Z
! ^ N% R. Q$ k5 I# m# _* F$ H' b gen price5d=v5 in 1/202 P6 c# A, W; U2 w3 j$ z X
' t7 u& _) x6 I; J$ U0 E
gen price5yy=_n in 1/20
& J9 _5 b/ w! ?' O/ ]
9 {* N& h* b5 y- I! D: A" S gen price5y=price5yy*(dy240max-dy240min)/20
7 q' V' |( N; U/ ]# W8 w
! {4 k; P9 y; l" S, q *price5y &price5d1 j7 ~ d) o) O
9 \% v' `4 A, a
gen priceny=price5y in 11 S! q! s0 P1 I3 b; z
+ g& R1 S& _) z% h gen pricen=v5 in 1: @2 W/ ^- J7 c: v) _+ f
( y9 e& b' f; G; h$ h+ c ?( w9 z$ F6 O8 U4 _ B
*priceny &pricen
2 L0 ^( H# w. G1 h, c ) ^; u1 D$ Q# t
2 e/ k' R1 j) `% l! n0 G* S& I E
*-------------------------graph------------------
Z/ j8 a( G1 A% Z
, X5 U# `4 U3 j3 A' p6 h: @ 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)
* n3 G7 I1 F5 ], c% O# J
. v0 ?0 E8 z. x4 k& B* ---------可选项目----------------------( c+ M3 T9 I% g; R6 F
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
) X5 l) c& ~( e3 Y) f+ \2 B3 H}
/ Y* ^: C9 E- I& B' t1 R+ hend
- A9 u: l: @, D |
|