|
maodeng 发表于 2013-1-28 13:13 ![]()
. u# l8 x( H4 C8 W5 F; I4 W6 ~$ B. hello 300236
7 d# ? [8 {& |. ~% Estatement out of context7 M0 P: x% V Z2 Z
r(119);
% X, g9 [$ ~# @+ l* k% ~# x2 m抱歉,最近太忙了
0 I" l, i" x+ `. V- l7 b% z* H. W: b) R( w2 I G& i, X
300236 我用下面的程序试过,没问题
* i- @( N2 S- Q% Q6 B; g; ?0 D; V, v- X8 ?2 Z9 v: u% q$ P
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
1 [, J1 S! @: |; Y& Z4 `8 \- M7 u4 K) D7 k
capture program drop hello7 H J. n- [& u' s8 ?7 m& w2 b
- U! `! @! p0 l( b
program hello
' I- F3 v3 m, P3 Q/ J* F' }2 N y v! f; i9 a; y
quietly {
: V, _5 |6 d& ~* Z, D% z, l: z% M: f' p: Y
clear+ v' j3 ^2 M" {! g6 d6 W2 _
8 _3 E: u" \( k, w, Pcd D:\stock\test\source" B' ~3 e9 p. E6 T( |
4 I$ h7 D. p! e* s% E) c
insheet using `1'.txt
t$ J' e% c0 G( M9 f! i2 l2 u/ m3 |
; u) a* w0 l5 @& H$ G keep if v5>0
/ a% q$ k4 R, s0 _/ U4 D4 R
9 T' { S* f* N. f0 i, {7 x, p$ W" t gen vt=_n
9 p) q( O2 v4 e) h* {& } 9 S4 v/ c. H4 A# \6 u+ W( p
tsset vt
' V& K5 G( d5 Z) n E
7 l% }+ o. O( F5 Y+ A( r; Z gen zf=D1.v58 P* N$ m* ?0 ^9 V+ A8 e: S
) A S6 n* h- `2 x- L/ n: K* m gsort -v1
/ V/ H6 }8 ]. ^# {1 ]& S0 F+ W
1 R8 D3 x' P& S8 n gen avol=v7/v57 [& a- j! f# R# ]5 g5 K4 u: T5 J
: I: k5 z/ G/ u. @3 O4 U keep if avol>05 d( w" t( H& Q0 W8 a6 T) c/ _* n
9 ]- J: ?* ?3 C) G# O! S) d drop vt
/ E. c% w0 k( T0 G6 g5 N. @
) [+ i) n5 s, z! E- A8 T% I gen vt=_n
% V, O6 Z1 c% T; B# O
8 }9 d8 v9 n8 `$ _+ r tsset vt
- M( }0 Q1 A5 w + ]9 c1 A3 s( }. h1 p1 X% ]5 D
sum v5 [aw =avol]: S: q1 Z+ ]8 D6 \4 a8 @- V
/ w2 B5 F4 J7 Q- R2 {& l gen amean=r(mean) in 15 r' R7 y9 S6 t7 m. K8 d3 r
. |7 }$ z- @4 T9 T" x5 p6 i* n# c
* 总加权平均值 amean
0 r9 A+ q" M0 ^7 u8 _8 M$ p& z- C " t) B( g4 X: n! s4 D
4 u) l: n4 \# ~2 B9 W( @
keep in 1/240
i4 n! ]( {- Q) _ s
5 B l& x0 n" b: Q) x sum v5 [aw =avol]
7 \8 K6 s6 u- U, |$ @2 `- a9 r* f& O% j1 F- g% d: d1 t" P
gen mean240=r(mean) in 1* i P0 f; ]5 D9 j5 M* R
! R( n( M% H% ^- U
*240加权平均值 mean240
4 g, E- i* g; ~9 \- Z( s 6 K6 Y( C& u X" y/ `5 r( D
set obs 500
* v$ B% \* W* W6 V + K. D. q1 @ _' t) G' i% A+ S, r
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph3 f* B6 X: V& L# f7 Z7 V, ]
8 R# C# H5 G. ^' e" n4 M7 h *240 kdensity(dx240 dy240)
2 u+ E* w0 t+ |. T& O/ S( s
0 F- L B! i$ D sum dy240; Y5 f* i' `# a2 E
3 h5 H/ K- [% H) ]0 W gen yxis=r(max) in 12 q w2 T; l$ V- w
! y6 a6 i- }( N8 x
gen yxis2=yxis/2' h$ I4 A y3 l* q: W
" s) b1 v# T$ h4 W3 G9 I9 k, g3 Z* W
*yxis
7 l5 w$ m$ ~: L: }) ?. O
; \; K$ e) p. A$ y gen dy240max=r(max); k1 H5 f) i1 [3 r) g. Q( v
$ r' X6 R' W+ P' U# w9 ]
gen dy240minp=r(min)$ v. S8 O! ^ e) K; Q% F
9 J, `: m9 s' z& Z# u/ C gen vtt=_n
, r! o- W: q& p9 S: u4 I; T5 b! c7 a) k2 T
tsset vtt
b9 B" D7 M/ h+ d, ~
/ ?2 w& j0 X2 ]* h gen ddy240=D1.dy240/D1.dx2406 ]6 n0 K3 M# ^ J" `, C
8 a/ J0 _" _! S$ W; l sum ddy240
- Z. I! R) ~2 O1 G8 Y7 a ( G; k, L$ i' ^- m$ Y& L
gen ddy240max=r(max)$ a0 E* m i/ [2 B% z' I" q
# n# C' A% Y' o7 l1 i* a gen ddy240min=r(min)
% B" ?4 z7 w; b! ~- k: ~
$ u6 E: V+ w$ G L! c gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
) Z- X" j8 u$ f( f 6 E' q1 v! g1 b8 J- ?0 t
sum ddy240g2 {+ x) F. a a4 y
" c; m% f$ d9 p% b
gen yxis3=r(min) in 1
5 B' ]$ T' u5 i2 d$ z5 ^: F : E+ H/ l$ Y" e5 J: a- L; W
gen yxis4=0 in 1
/ W, {6 }7 A9 p6 Z* w; \' V
9 {) {# K8 m: W6 n0 E *ddy240g
) K# ~' B2 ]3 H2 }
7 w! X" S% o8 F* h3 N8 V$ I
8 {9 o" h+ e3 y: V- |" b$ Y preserve
8 y8 Y( e i4 i; r1 |4 f7 v5 h 9 J+ g- o; F a0 l
sum v5 [aw =avol]' D* E; i0 }+ W( r$ K4 a% i
: C2 ^% t4 b; x- h; n# x2 u2 \& o
keep if dx240<r(mean)
' f1 f2 f0 [8 C
" ~8 M1 Z4 l+ @. b( b sum ddy2407 I7 S. q+ E, r; v$ h; c; S$ ~3 u
5 |, I8 K! t( y6 M* \$ Q) Q
if r(min)<0 {
1 a" R/ \2 c6 @( m8 m, B1 D
- Y# f" V- I/ f keep if ddy240<=0
4 V9 \# |; E6 u$ N! d' k 1 m$ b/ `0 I! r" }
count* u( B. O% E. J/ s$ k3 y2 ^
% S3 |$ E" b% f3 u if r(N)>2 {
9 i* ]- Z/ t$ W, c$ b ; L( c x( R7 I, ^/ C5 D
pkexamine dx240 dy240- i$ C8 Z' I) Q( n: ^
8 R5 V: z* Y! Z, W3 [
local tempminp=r(tomc)
& U2 T2 r* T3 |! ? restore - c" e8 F% i5 V2 J
}
8 C+ Y6 I, h& H# B# Q2 c 2 c9 S% Z: k1 q3 Q* J" _3 K* T
else {
- e) d0 @/ \' M) |$ V " I$ X; @0 ~' t; C5 T8 W _
di "cannot find minp"
/ u0 p2 r3 g% B$ q 2 A$ I# u6 F7 ]/ L" D- H1 J. w
restore
* b, G( F( V# g8 N0 H sum dx240
% f6 n) k. Q4 [ T; S5 \( W0 \ local tempminp=r(mean)9 u1 A7 i5 H$ [3 i6 q
$ q- e# v6 Y6 x# o1 F9 Y
}
& X5 I, X+ z8 A$ `3 [; ]" d }
6 [& c3 b l6 w else {$ F$ O. [5 K4 \% e ?7 g. V5 _
7 ? G& z0 i, U h- w; q
keep if ddy240<=r(min), k% D! G) i5 S2 d4 Q3 P* m4 B
- a' U0 m. o& U5 o% z) a5 o3 m) @ sum dx240
" F, L: P2 N& {7 }3 S8 K 9 d% X: p3 E4 k# x3 ?
local tempminp=r(min)) k* F: N" @( |- ]6 o
restore . J2 P0 m/ d! A9 |0 e0 g
}( \6 S: i/ `8 B5 c( Z1 _
4 n& K0 V6 T$ |8 ~9 T+ \
, c" _1 B' q& Y9 ` ^( F6 i% v. ~' w) S5 g7 Q5 l, s# i
gen minp=`tempminp' in 1# s7 V6 n6 ]# d! [& E' f
*240 minp
B$ v! c, h* k: o4 z0 j1 X% O8 y6 i
1 w* _$ `8 t9 m8 K , u2 h3 N$ w# ]* R' u) F/ r
preserve 1 p6 S1 [' X. h
: R3 n7 X8 D: B% O$ I
sum v5 [aw =avol]
. y8 B3 ~: I8 O$ ?" S) ?
7 |- s, S+ z9 k1 J keep if dx240>r(mean)
0 w3 B8 ~4 S5 J& F' Q# w: L
; @* Q# X! R3 T$ d& g8 @ sum ddy240: I% k+ e$ I: ~& \; e. M, D
$ b3 S! r2 i: D# w/ Y# \. I0 N
if r(max)>0 {% I% u$ ~* s8 ?9 e6 i+ |
( Z! X) J; e8 M2 W$ d3 T/ u
keep if ddy240>=0
( M4 v: J* K& E( J& x, q- X; V: t y8 P v+ b; O6 F, S, g2 X6 Y
count) ^. v2 ^5 j9 s" R
' }3 j2 l# V) ~" P4 i if r(N)>2 {
0 h- Z+ `4 p! }2 |2 d% e+ z" V ' a) H6 X d8 O) J) V
pkexamine dx240 dy240% l% y- m+ C& d
, ?7 B4 Z% j% n local tempmaxp=r(tomc) ) X# U* k) ?6 F5 j2 @; f/ M
restore x' p% y0 A, Y2 i% r' X3 N/ N. \
}
5 w8 G0 `; S4 H2 R: W 5 Z: ^3 A, H% ^( y7 |
, l2 `5 u; a: L7 t0 i else {
n# K: [7 v$ ?* y* f restore
. A9 V" d, p- c" J. ^. ]6 D+ I di "cannot find maxp"
8 v7 {2 i5 ^7 h1 \! |* `) f ' U, C& k# T5 R8 V6 i
' H( L+ d6 j0 e3 [ V sum dx240* S0 D y' G; U5 E! P
local tempmaxp=r(mean)* Z7 V* Y8 t5 H4 J' s
8 x/ g% w, p Z/ f }
1 b2 m6 R8 J5 m$ a- j9 @2 z 6 @4 q5 p5 N9 G. R. d" Y
}
) ` \0 y" a6 B0 f / h& \2 A+ S9 K4 x
else {2 L9 D! G6 b% M; Q+ b4 ]
' @, E; i' u+ w# M+ ^# l9 x
keep if ddy240>=r(max)
7 q9 C9 Z. F: h. V3 x7 `0 a0 B& k 9 g1 h' v7 [* x% h- R4 k
sum dx240+ ?! i( T1 t' P
4 Z2 Q* F$ i0 r5 D! D( S9 w local tempmaxp=r(max) " B) f1 R5 D4 F9 d1 E8 K
restore - q# x6 {& |- P; O( v
}1 ~8 F: q6 e! i7 U' }
1 g0 D# L2 @, s
% ^& q$ b' e. H: \5 j
- ^4 b( H1 v$ B! L% i
9 E+ G) s3 b7 d: q! i% N1 O/ r gen maxp=`tempmaxp' in 1# N$ \+ o/ o) k2 p2 y
f6 Y. g9 z; ?, L) P5 t
*240maxp/ R: S+ d- J. N& f, n
$ ~3 n% P0 Y$ Q
' L0 D" z3 z& e6 {9 s *-------------ddy240pminp左侧高峰值-----
2 J8 t# ^( E& h/ s: n & r K8 O4 Z0 J: g
preserve + x" p9 N0 _0 {, V% c6 s$ r
/ ]/ S' b) J& x
keep if dx240<`tempminp'
, [3 m7 G- C7 Z 3 X, f/ b; `& A Q/ g0 ^4 q
keep if ddy240>0# i, \! I7 |# M2 }$ _& K; b
. b9 t6 n6 u W8 ~) ^2 p count: S' [/ }. E; z* b
& U6 i- Z* i c6 J if r(N)>2 {
' W/ F0 [4 R9 p3 v$ ~/ v
# \3 R6 K" G6 D) a3 Y1 Z7 J pkexamine dx240 ddy240
9 n: c; @2 j9 w/ y; b5 \ 7 Q4 V/ n3 D2 o& ~
local tempminphddy240=r(tomc)
" f+ L i+ X# L4 b8 x restore
; i6 H b7 d( R+ j% `, q' T) H/ \ }
* C/ F/ I. u" _; T8 u2 f( y 7 ~4 D, K, D/ h7 G, J
else {
7 I" c% Q! x; G* j restore
$ H9 f# ~. v% [& P2 ? di "cannot find pminphddy240"1 O& g' A5 h% R. Y% r. ~: m/ J' L# I
* P; j" F' ~- l) F, q
) H9 y+ `4 w; `- a+ | Z5 { sum dx240; A( x: w/ H: n" Q3 l' _
local tempminphddy240=r(mean)
: c! ]7 t1 e4 r. } 3 ^' [8 J: B6 p7 |+ K. n4 g7 r
; z- s0 Y! u0 F6 }3 r
}; I5 Z% a4 U8 ^" N
4 x6 h! f! t. }% P* e* {6 R8 i 4 r1 ?2 @/ M, A+ W6 T; ?" [
% O* v+ Z, [* ]+ o+ F( L0 i
) h/ ]+ W; k. W1 T% d7 k * b" {) O# t9 q8 V D) o
( D" i6 X7 \) J( P gen pminphddy240=`tempminphddy240' in 15 }9 w2 ~& w$ d! A7 J3 d
: [% i7 N5 a9 X" j* I
6 T' r8 Q0 B* m6 J% P$ @* J *-------------ddy240pminp右侧低峰值 -----------------
% F+ ]$ {) ^# O y- W$ u preserve
0 I+ ?) K5 \+ t& O & |8 c, v9 E2 \/ j3 X# w2 e: D
keep if dx240>`tempminp'6 s& {& L3 l E2 u
* d3 P( Z) X5 r. j% W, U
keep if dx240<`tempmaxp'" ^; s5 b$ ?! S' j" y9 n0 Z6 Q5 j
- y5 b, d. H, q3 {. ] keep if ddy240<0! y! D8 e; v9 O" i- y
: z3 J. v0 r& o
gen temddy240=-ddy240
/ ~" f( ]4 D* y; E& W! h- N! P
% k& E5 l `9 T/ O count
0 f7 y3 a' [* ]& M9 U
7 C. D4 e* T' c6 `- ? if r(N)>2 {
* x& r6 x& z4 O 5 x, D: q/ B( ?
pkexamine dx240 temddy240% R6 h) t0 l4 P/ Z, P G- l
, i' x+ m: ?, P' l
local tempminplddy240=r(tomc)
& U3 Q# w5 i2 N restore8 P" q: W& g2 L; m
}3 ?2 P7 Q: K m7 F
+ |8 ^, N" U+ ~! V else {' \' J! A5 a$ ^: S& s( s) U% U* E
# a. n" C) c4 H6 P' Z6 w- P' c di "cannot find pminplddy240"$ C- e6 F' h: Z, _& b$ O
restore' m2 T7 e* t7 G8 P: R
7 G! z5 L2 c2 c4 x) V- T sum dx240
# @) d; [! |$ Q9 c local tempminplddy240=r(mean)
" ^. ]9 k- D1 u5 |1 K
3 n$ D! M" K" |+ Z 6 D# y6 m4 m. B! F
}
P2 w: M/ J. o% r4 f9 t
9 V1 W: ]) m8 D: R- |# l / k( j) _# A9 C
6 H. T5 R( _# A3 m ) q4 ~1 V5 p' P0 f, }2 I' ]! P3 T
5 N! X, Y8 X( Y: g6 ?" N gen pminplddy240=`tempminplddy240' in 1
. y$ \; J" k% M0 [# b* N2 x* h8 }
& M( f" G7 S. f6 `$ a *-------------ddy240pmaxp左侧高峰值 -------------------4 d% W( v7 U) _0 c
2 R" w$ U. j4 T- [( E
preserve * x" S; S/ }# {) B1 z7 I
/ q- i& t; Y" u keep if dx240>`tempminp'% p+ \+ f. D3 S8 q
4 y+ @; C- M0 J* k9 D2 j
keep if dx240<`tempmaxp'3 ~" z% K' |+ a; j1 T
' d i- N" }+ C- o! k keep if ddy240>0
- M- m( d7 k7 l6 U& H' C% x4 Y count
" W# u! o& S/ A( m: M
6 W( i: a$ r' H/ C8 Z0 f if r(N)>2 {
- J$ ~$ o& p6 w! _
( \1 K; X' ^4 k) m& B pkexamine dx240 ddy240; O! X+ a" Y0 T
. a- C' p* O+ G3 E; D
local tempmaxphddy240=r(tomc) # n2 C8 w% H2 l7 \0 G
8 b% n/ m: I5 s& r% T; }- q( O$ M restore
# q$ v. z( Z1 \6 @% B* [( `! ^ G }
2 ? ^, w: m- z ) ]% `% C% G \$ m" Z% ?- g' g
else {2 g: v: I4 J- ~! N) D. m- b$ V5 e
+ Y$ c! }: ~, i7 }8 Z& `$ F
di "cannot find pmaxphddy240"4 w& X3 C* b2 l" g- a/ e, Q
restore. H( {1 B5 m; K$ H
. m7 s# C) [) }. R( o0 M" u
sum dx2400 j+ l1 @4 L* K/ E% s' T
local tempmaxphddy240=r(mean) 0 a# J" d( m5 Q; r& A: K
0 h+ ?/ I# r( }" ~( E" S" Y 9 c% H: B# S9 ~$ N f4 }& q
}0 c& g" d7 M1 F& o; D, ~7 X
: q$ v" z! T7 R6 S
0 f+ M% [# C1 I; G* S3 T: Q9 Q 0 \7 ]) G6 n; |* s
2 Y; ~# \) d; F$ H7 O. ] $ w2 M% E/ r3 W3 G9 ?3 D$ N: t0 ~
* [1 f$ z6 u+ N- L4 Q2 F6 H: v gen pmaxphddy240=`tempmaxphddy240' in 1
5 ^* j; ?% K9 { o5 I, V G& X6 V
1 V; W8 G* Z' T* } 8 ]1 K5 F; _* u# {2 t! z
*-------------ddy240pmaxp右侧低峰值 -------------------
0 }; y# J) I$ C6 v" v $ U6 |, r, t0 {1 `3 f6 f& e
preserve
, V# k5 s) J0 {( g/ e- h
+ g8 t! |) K4 O7 c8 h6 N u keep if dx240>`tempmaxp'( [, d1 H1 |0 r" w5 y2 s/ [
, O* f. g; ]) k1 i, P$ _
gen temddy240=-ddy240 O4 ], ?+ Y6 i/ @3 |
r$ d# ]- z& M# ?2 k T
keep if temddy240>0
7 P9 m3 A7 y7 R; u% Q* s. B2 \ & C8 m3 R6 E/ R8 Y
count
* P1 v% E, C- R6 x v: ? - |& \7 z# |" d0 O) S; e8 t$ e
if r(N)>2 {' n) B& }2 q* O6 [" w
/ }2 h! n- x- G4 g5 Y
pkexamine dx240 temddy240
& {, ?9 ?% H! _ / G" W1 Y7 H+ ^( U
local tempmaxplddy240=r(tomc)
0 C' c1 Q' K( s% d( K5 Q: i restore% k6 U: v2 c+ K1 Z* M4 n8 o! @
}
( \2 p' g$ T9 a: W - m, U1 C6 i$ K) g/ u
else {
* B# e9 y0 M! m6 f' J, J: e. ]3 I restore$ ]0 L7 w+ F3 e# O* O& \7 L
di "cannot find pmaxlhddy240"
) G( a* g" C' I3 a
9 L) O1 G, |' ]# `, R ( w3 }$ m6 q( N) k
sum dx240 L' d% M* n: Q# m/ O
local tempmaxplddy240=r(mean) in 16 H+ V, b5 o! M% \' X1 P0 t# a
4 V# v5 n( ?7 w! v
! H8 }) w8 N y6 s }0 `" R) S. b3 ?" [. f' ^
& I- e: _5 n( h0 Z2 u, S6 v
& U1 {- R+ D+ ~1 P" A+ K4 I
1 U, y3 C3 t. e9 O6 {1 K * W1 I9 E& a2 ~6 x" Z* A( b# X) U, w
( ~! O. G& I/ }& s# |
! \$ ^6 f. x' D: M, B2 N* q
gen pmaxplddy240=`tempmaxphddy240' in 1
7 s, N7 V3 w b: M8 ^. J9 @; N
/ Z0 y1 o7 o1 |4 }( Y$ z; A! C *-------------------------------------) R( B5 I) E. E3 {# j+ T- W
Q" M. ~1 y+ D7 n, F# R
gen price5d=v5 in 1/20
- ~- k5 f$ n# @: p7 ~; H 5 A/ `( }! Q r3 Z( e; }3 X/ b
gen price5yy=_n in 1/20
6 @" J j4 c7 g1 f8 N/ U4 _5 L
" W' u4 e A1 j gen price5y=price5yy*(dy240max-dy240min)/20
; J% u( N$ N" {+ K" N; L
( {8 q* h+ N/ U- G *price5y &price5d9 m8 |- E( e/ U1 j7 S) P
; W' K& S3 _3 s6 \9 j6 _ f. w! n
gen priceny=price5y in 1+ a/ ?# A3 d8 }, {3 @4 t+ a% T5 h
. A0 ^7 }4 L0 R( F+ B gen pricen=v5 in 1" ` B+ X# `, x% i
# a8 K# R0 P( R
+ M$ F X- e4 i; e% o
*priceny &pricen
" O$ Q: |. ?' J. r# u! [) Y( x
9 d! P1 D* M$ g; F! t
3 o' k% ~# r3 c *-------------------------graph------------------
' s! v! X; V0 K3 K 0 u& x& e3 H: `8 v" M) 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)
( B! G% M1 J5 j3 ^: m3 N o7 A/ h0 c% X
* ---------可选项目----------------------% G, b8 d' z6 q! w$ g- M/ B
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
, l$ F) X4 ~; k} s& g+ S, v5 A) o
end# u" m& | F& ^" v8 Y4 ?3 H
|
|