|
maodeng 发表于 2013-1-28 13:13 4 H& U" p$ H- ~( G- ~
. hello 300236
0 j! w9 l4 l* |* s% A# ]statement out of context- C7 n9 [4 P* `. e1 |
r(119); 2 D" @$ V4 u! S$ d0 }
抱歉,最近太忙了# }5 G3 u0 x! o0 _8 s
+ V- e, ?. N7 d) l& O300236 我用下面的程序试过,没问题
' M2 \- F8 _/ i
/ Q7 G9 G" Y. D: l你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试0 u$ j% C* A, `% x+ u# z
1 C& |' ~$ @0 q. l |! y" s. u
capture program drop hello. T" B8 x3 |" I! w2 `3 B
' c0 y& B) v& u0 nprogram hello; m; i3 ]- w& u1 f+ k; }# z
) R; @1 d) L4 d% D* t3 C1 T
quietly {
, w- u2 J# x% r' t& k% j! u% k! k$ U+ d1 z, ] ]
clear
8 b8 P' `; ^ h3 P( {% f z5 m3 ?+ a
cd D:\stock\test\source: W* s% P7 m3 r0 S' [
p w6 ]; }0 e( m: a8 ]
insheet using `1'.txt% V9 b' h/ ^$ Z, S5 Q& m
+ m2 N8 F& a2 i! C$ R# K
keep if v5>0
0 r, f+ m$ T3 g1 d, k7 W. X
8 z- x6 L& F, B9 @* S) [ gen vt=_n
( a9 i& g) S+ T- ~9 x% ^/ E* U( Q2 W / {' {) C4 j; h J: C4 [7 i: X
tsset vt7 @1 v) k1 m3 g2 \7 Y, g4 P i
6 ? o2 \4 L1 A3 l* b
gen zf=D1.v5
% R$ D6 b, X a
$ Q% a* Q0 U8 T+ \! A6 Q+ w2 H- E gsort -v1; `1 R0 a* x. X8 e3 Z# ~; m
7 L! s6 ]7 ]* |' m. { gen avol=v7/v5/ u. \/ ?5 t$ m
( T/ H2 Q& ]& t& c% A% o- m- e
keep if avol>0
9 J3 T' J5 c- Q 7 O' q8 ?' ]0 R, H
drop vt
0 _' b/ t' L* R" {& m/ U
3 M8 }3 Z+ b' K$ B0 ^+ X& J gen vt=_n
% y! y, W# V5 U l& v 5 D; C y; g% I
tsset vt
* Z! W! i; J! `* Z+ b6 @ 6 A! w" _& I0 G. @5 M- K8 Z3 h
sum v5 [aw =avol]$ g1 D \% g5 o
! v k- N, E! W, f
gen amean=r(mean) in 19 l3 B1 ^9 ^0 b( s! `4 w) [
" w# i# t h( s; F$ |
* 总加权平均值 amean3 |7 S/ `2 q- i% }7 T# B
# x# b' S F% y I2 h* ?4 O ' V9 p' n5 I6 ~5 B
keep in 1/240
) w5 j& N1 k: ?6 O
, Z* G+ z% x. w3 ] sum v5 [aw =avol]
& K9 D1 r' h7 p; k9 q
c& j1 J9 c; C; R \4 o1 G* |4 X gen mean240=r(mean) in 1* T. h) ~/ S; k2 e8 B
+ H9 o3 f, l2 x; J& D- D7 h6 S *240加权平均值 mean240, s; m5 s0 [; F7 V5 V1 u
3 r! P" x3 r( K& N* N9 l5 w. @
set obs 500 1 a9 v. E" J5 j% P+ ]8 q
) o- \! D) u: X" _
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
8 ^/ g0 j0 g4 q8 D& y; @ % u4 t' \7 q$ u2 M
*240 kdensity(dx240 dy240)
+ C" Y2 p, x' X* U+ W& b. P$ d2 x
# n1 g: @3 J* Q: S- K sum dy2406 c* U2 A" }( ]5 U4 I+ D* x8 N+ t
( b) y& W; n k: O9 s% T
gen yxis=r(max) in 1
: Y' w% J1 @: r3 _3 {0 Q
+ ^9 i& H1 p! r" H$ N gen yxis2=yxis/24 i2 Q* @; f0 v/ r/ N
5 ^ V3 A6 A# ~# t7 w *yxis( ~+ f0 ]. d, e6 {7 `1 D
- S$ V r) t5 S, }6 Y" R/ \1 _) @ gen dy240max=r(max)
) a; s y2 a+ W6 \ {! F/ g! O
( w6 V! E9 ^ ]) \, ~1 p4 @9 u gen dy240minp=r(min)
' }9 B5 q2 l, ]: f
0 ?+ k1 k5 H' R gen vtt=_n1 m+ ]2 [$ X: P5 F/ n
* \% w1 S' y/ \& f% i tsset vtt5 l1 b% T5 _/ i( ^
* W% q4 c+ C! Z$ i4 E) @) N" X gen ddy240=D1.dy240/D1.dx2402 H1 k1 ^$ R# B2 o" A q# J9 t
; V( l. p% B5 j4 } sum ddy2401 F. }' o3 j( V( Q
6 k! y1 o1 A* ?- S k5 x
gen ddy240max=r(max)
3 i9 z9 ~" x# l9 n 3 M# w5 B5 S& D" }; a
gen ddy240min=r(min)5 q% e: |! ^ S, f9 X: T
2 f/ d' k- |1 e8 Z- v6 y% ^ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)( z8 ~1 n6 [: P! l5 @, g) t Z
0 M, a, N6 C$ v: H9 l8 V sum ddy240g
1 o4 P1 u% X+ N0 X+ t+ G9 \4 L
( P; @# A2 i* _. I. e gen yxis3=r(min) in 1+ O8 F/ z) ]0 D9 e, P3 e
& a& B1 W% B6 w/ r" |. j
gen yxis4=0 in 1
6 w6 B" M; B: [% y8 M/ G
* [% A- y, X' R3 O7 D* {. E; m *ddy240g
z* @+ }2 A5 `& o # ^/ f" L5 u/ N2 w
+ ^; r+ J% x+ s, R8 ]; M
preserve # h0 v) R) ]1 [) e; ^
) {; E1 A0 p& L0 \ sum v5 [aw =avol]
: q. R# \7 A1 x5 Q, y0 c2 @0 S & a% J0 q. T9 L( K" k) M( G
keep if dx240<r(mean)
" l+ d+ R, b8 I
$ N' H) F6 F: s; A8 h sum ddy240
- V- \" `1 r5 R/ v3 R# Z
5 Q( }% A/ t7 [0 @ if r(min)<0 {, {1 J3 I/ A- |+ Z, i9 B0 O/ A
, ^- c9 h" G v5 H, W' @6 c2 H keep if ddy240<=0
# o1 W: T% G: F; O; x 5 I! D" g! R: o4 V
count
5 V) e. ]# B3 R L$ R" }% p/ E. ]9 N
" |3 X9 ^0 p1 v) P* { if r(N)>2 {
% @+ j2 O/ M0 u1 q1 u
8 x0 B- w z* g! n _ pkexamine dx240 dy240
) M+ w( X0 a" G t( ~' ?2 T8 h, S6 j
local tempminp=r(tomc)8 @$ v' A z9 i) x7 i9 h- ]
restore
8 O% H5 V& P6 g7 E- @ }% j1 b, @& v% s6 ~+ f
6 X# w. F# k' S% x
else {
% t& e7 I1 p' n% K1 J6 Y+ x
. O6 x. }! C- I: F' Q di "cannot find minp"
+ F5 s% f* J# c, b( M; w. x 9 i$ ?; H) G+ h* m: \! Q
restore : p* L! Q7 k; D$ [0 T; Y
sum dx240
' n& ]+ m' e( u) W local tempminp=r(mean)
: O% N H! X% E4 r# v
; W& z) l' [/ {" n! @# [7 o( C; h }' N+ h# ~' d. a
}
# @- H/ k2 l: W/ f else {
; h% j5 ~! M, W3 |0 ^
' `/ Z0 q3 i+ ^/ v& I. T keep if ddy240<=r(min)( |# T/ p' ?6 i; S6 f0 W
, J8 u& @% S+ K& H2 W$ I sum dx240
/ h1 w; t, H# I s$ i$ X# _0 p( v
local tempminp=r(min)
5 `. q* [1 J M! g: v% {) Q5 u/ p. D restore
) I' C( J; b) _# M7 z }* H* o! A5 y. z& |
* K' R* e* P7 d' k% U4 Q3 d! Z, m$ k! K+ L( y6 w
3 a/ M5 }8 e J3 a3 z2 l6 J
gen minp=`tempminp' in 1
: n9 e; x) t( P/ j* h! D! S+ {: O: ^ *240 minp5 z5 F3 W1 C2 D8 p' H+ S5 f/ H
: e4 b* F; |2 f* d# D6 [% L( W7 J' `8 k. q
7 C, T1 o% ^4 n
preserve 4 P2 f3 X$ y6 K8 G$ a; ?
: p4 i4 v/ w7 `$ {9 ~. Q sum v5 [aw =avol]
# ^0 [0 z' q A4 ^7 o
: H H O5 i/ z4 `, B# u keep if dx240>r(mean)
# `& D, I o; H5 _( _ & L. n2 N V- ~" a
sum ddy240! u+ y/ o ~9 Y- X, P7 o
: m: V2 g$ G+ x6 o+ p$ v$ D
if r(max)>0 {2 h+ E4 y0 Z' w+ i
% I1 k D' P4 m, c4 i
keep if ddy240>=0
* b, W9 s1 K$ I8 Q( {8 p" W2 \+ v
! J0 L! f8 Z* [. b. l+ K2 d count- T% B! m) j$ t+ {0 R o
! v6 j$ R \$ C) K' Z+ P if r(N)>2 {4 \1 U' E' T9 P) j& D& f
" F' y4 j: z$ f3 {5 z- z5 L pkexamine dx240 dy240# Y6 G! l* o/ n3 C7 `
% {+ I% Y* d# K9 t- Q local tempmaxp=r(tomc) , a& K+ Q- `( M# h/ L9 K" T" l( G
restore 3 A4 k q& X6 k
}; l# w9 ^ l0 C
1 W$ a5 X' v9 S- A* r% j
# B6 h/ y$ H( b" ]$ P
else {
' d' d' X7 P: v0 o$ H$ l restore # Q2 I }# ] {; v
di "cannot find maxp"+ x9 O: _5 N/ K* i k5 L2 G0 M: J' K
+ Q" C' T1 n4 p& ] : f% o# V( z& I: b! O
sum dx240
# B! O# O7 l+ Y k/ ^8 c1 v- M local tempmaxp=r(mean)
* F- q+ X* {; x1 ?
) }& f+ J m7 S8 D% n% X, G }4 X# _ q: |' e0 ^' g! t
( H- U7 N' u0 h
}
" W8 I Z# F* K9 h: V' a# D2 g ) ~ b& }. l0 T
else {$ T( m3 o7 `+ F( N1 y0 q g
6 d0 y9 P7 r' P1 k5 A% _( F$ N
keep if ddy240>=r(max)
% A) | _* G0 H8 v. L7 L# [) S6 r , D0 @% l, O2 Z
sum dx2405 } ^. ^3 D; p
+ p& U% N0 s: B8 @! V) _5 O
local tempmaxp=r(max)
2 l& F1 O5 g0 A5 W8 g% Y restore
# K2 B* a- Y4 K# ^( z& q. s$ W5 ` }* `; ?5 L, ^3 L# [2 f% {4 ~
* J$ a- H0 e6 z. W* s6 T
" _+ q+ J. {' I
8 @' M5 c2 Y7 ?. T y. I2 L& c4 X
% P9 I4 |; h! U7 s3 M8 t4 u3 T gen maxp=`tempmaxp' in 1" ?, O: p8 J; ]; G) Q8 c
) |# i) y! t1 `' u0 k *240maxp
( G5 U7 u4 v E M' A
6 I% F, V; b2 s4 _9 b
. l6 w) S9 |; A& R4 o *-------------ddy240pminp左侧高峰值-----3 @6 d, \8 s& g7 a/ \# i) G9 S3 \
9 _( ] Z% F1 `" c8 B1 I
preserve # M9 T o" R$ D. A
$ ~7 N8 P4 |! \6 E& s keep if dx240<`tempminp'
1 I6 p/ l6 L* h6 i4 p# {3 N * Q; _1 M) v" j4 G
keep if ddy240>0- c$ ~+ J$ _/ b1 C) C
: Q! r/ S* {4 H% e/ B
count
t. V/ P9 Z" D) {
; m- b1 V; W8 T if r(N)>2 {
+ f# b( N& c$ _: H) h2 R( r L. o / C3 y O# s& d9 `. O+ U4 g
pkexamine dx240 ddy240
! H: x! t5 f6 K* o) t. Z1 P 8 W2 U3 ^! A4 d/ z
local tempminphddy240=r(tomc) ) Z% h/ E" r- U% A" ^
restore
) B9 w9 X3 ~- s' f7 E9 D) g }* q" O# E7 M" u
1 A8 H5 s( j& B, ?* Q$ k; l
else {% i4 h# Q4 B3 O8 D+ r
restore
3 S3 t/ g% B! X3 m: Q) h di "cannot find pminphddy240"& ]1 f0 q0 `) {* P; j
( }3 i6 O2 ~; G2 a Q
8 Q5 ~- x$ H' d sum dx240
. j7 g4 i5 Q6 u. P, j* _ local tempminphddy240=r(mean) 7 L1 }5 I7 k( I7 g' A
/ H1 Y9 ~1 M0 F( V6 M" y3 ?0 T . R8 U X+ u% }5 R' o! q/ W" _) G
}
0 p4 _. G6 U+ Z) L3 n2 u% K6 o $ b7 P8 A% t5 {+ J Y% L% B
0 T, J6 M* a2 C6 Q
! V0 n6 O4 H3 F3 q, t: g1 e9 t, o Q - Q* n- s; p; U* x( n. f
& o/ o! ?3 c* d& _0 j+ Y
* u4 A2 ~, A3 n% R gen pminphddy240=`tempminphddy240' in 1
, g9 y0 N. s3 \1 z8 ~" { V4 W7 Q8 p0 z: `, i9 \
# n9 `- A3 [! E2 z( M9 D
*-------------ddy240pminp右侧低峰值 -----------------
9 U( p$ m1 I7 X1 z1 B preserve
|; F) a# r# B7 G- M1 a
* t: |6 b' R3 u. z: o& j' O keep if dx240>`tempminp'8 |" y. x2 I0 [" z8 {& _
4 |. Z' l! H* E8 Z) D9 {( g keep if dx240<`tempmaxp'- M5 G. @" J" ]! j) P
$ E2 |8 O! d" f. g0 V' [3 L
keep if ddy240<0
7 w( g6 R1 n, d* z0 ?
) {" z9 j3 T9 d gen temddy240=-ddy2401 x+ A* t6 S" y- W a" M
- K/ g/ f4 G4 Z' w4 k count
% W0 i8 g- H' v( G D
5 w! b- m% Z% M' c: n# B if r(N)>2 {8 L: i# X" C4 p* A0 F3 m- C
6 N6 R8 @) W( q5 V! h) N
pkexamine dx240 temddy240/ n% D! B+ l! ]) `6 U. y
5 g5 s6 J! S; \* R! \9 c _
local tempminplddy240=r(tomc)
/ R$ r7 O+ a* g) J& N restore
; J2 R V' _9 b% \* J }3 _" j( m+ A4 W% [7 S
7 l) G& i9 S' _- x9 \ K0 `! n3 B
else {
. l: w! i, G7 s* S
% @. R7 }( F4 Y0 x0 o di "cannot find pminplddy240"
9 I" O+ h( D5 [ restore
4 X* f3 k6 D- W O" j . v. D8 F" \! g
sum dx240! N8 [: r) O% `0 G
local tempminplddy240=r(mean)+ G/ K0 g$ z. b' p0 u* |; Q0 Q: \
- O3 Z7 \8 ?7 r$ N& K9 `
! o! m- B! A( S( z- ~) S! \) L6 a B }4 m I# j0 T& j' N1 d/ d
5 d9 t' d7 s# g- z o
) X. J# F5 Z4 B: C/ \# r2 w * Z& R) |; m% T, p/ Z& k! {+ c
) A9 i0 _( F5 c2 U6 c! _
) c! q8 E4 p1 N' y% T: M gen pminplddy240=`tempminplddy240' in 19 ?# d2 o- D: k' ?# i1 x$ n
* r! a- {1 n2 v
*-------------ddy240pmaxp左侧高峰值 -------------------
6 C1 l3 K$ `- \" p9 Y ' l: M+ y. G( B( _
preserve
: c- i) ]6 ]8 K, [* z$ o! C% e % _ t5 k4 L6 G0 o
keep if dx240>`tempminp'; B5 ^' H6 s: M7 D3 d
; t9 O; @+ w0 G! R, p# W keep if dx240<`tempmaxp'" |2 v% D$ \; v5 D. \( Z
! P3 |9 ~- _/ a' i3 v
keep if ddy240>0
) w" r2 `8 Y& c$ Q count
, w; A( c9 | d
2 M# I! l* |8 Y S if r(N)>2 { h3 P. B7 B6 C2 e! L" y
5 A. M. H4 N+ y& }) _ pkexamine dx240 ddy240" F% ~) _6 D5 @2 L
+ V) H$ k4 n8 `% m) K5 {4 U& M' \
local tempmaxphddy240=r(tomc)
; C, F) J1 j5 j* A
1 Z. l& s8 P, E& V restore. {; a5 H& a6 [' @2 c0 Y
}+ G _! i# Z* J3 J8 U2 Y
) P1 B- V& C' ?: D2 D- J
else {
9 d, \9 `! N3 R) T1 L1 h% U: F3 S
G, l6 q- a: K7 I! a- ^1 O4 J di "cannot find pmaxphddy240"
/ S; O- [/ f5 I4 z' t$ L8 P) U restore
8 K; c3 q9 I# `5 o8 w7 m0 b 3 G( P; f& f& p9 S0 v$ T
sum dx240
1 K% G% V5 T$ z% H& [; [ local tempmaxphddy240=r(mean)
7 B6 f2 W6 f- l$ i4 v0 O' C% G( {
4 }% d: I/ P0 B' U/ {
( u) F, Q7 u! L+ |( H) y }0 Q* m, C( R" ]
' T2 P4 y0 u5 T* ~& F* h
7 |6 c! L$ s6 R- p3 z! ~9 l3 n 8 e2 K; @: A! h4 V$ }2 B- B
" x3 {) W& u' C. b: L7 z
) F7 |# S4 P, G5 m6 K9 G
$ q: {0 w5 l- N: I- h1 X
gen pmaxphddy240=`tempmaxphddy240' in 1
- L# _; m2 p- n+ R }; b+ V
' X2 S: A& O( [5 Z. {# B / m ?, `( B, g5 `( E
*-------------ddy240pmaxp右侧低峰值 -------------------1 ?, j* r( n# k7 B1 n- \3 o
) g: ~3 k4 q) x& p2 L
preserve
* p' |# o9 g2 {) q
( C/ Q0 G+ ]# h7 t# i keep if dx240>`tempmaxp'
9 f! g: `' w4 }. Q& R( w/ `; ~ 4 u J. E/ Y9 o7 p9 [: @2 K
gen temddy240=-ddy240
0 p- T; m E' Y$ P) m2 c9 o) a
7 m; ?* l! a5 C% A' b. [ keep if temddy240>0
3 e# e% ~/ }( D# f9 \6 t m
8 z0 t+ ^: ?3 v- z- K1 c count
$ _8 h- B- B5 p1 l0 n4 c
4 s& M$ s. C2 c if r(N)>2 {
# } P5 S4 m1 [- [4 T4 Q ) T1 h4 v5 g' [$ ~ f/ Z
pkexamine dx240 temddy240/ T2 [/ r0 t2 `
7 Z. X3 ?0 C! @( Q* J& A e/ n( G
local tempmaxplddy240=r(tomc)
; c$ t8 \/ h, g0 S0 \2 J6 o: e restore& l4 q4 E/ x' m
}2 P8 }$ u% x1 y3 W# q5 [2 R# t
" S a% a C$ ^7 N( \8 T
else {$ ]& H* l2 ~8 G! b2 P1 m$ S- R
restore1 ^& }1 w/ n( E, v D( m o* k: n
di "cannot find pmaxlhddy240"# I8 d6 ^! o; W' Z, o
- l3 N) @) E6 ^* S
( j( ^% C0 p" S& ]1 E# y
sum dx240
; D6 I% _& d: N W! J local tempmaxplddy240=r(mean) in 17 Z9 a4 p6 J0 ^" k$ ?
' O6 }* T# r W$ n
4 [9 T6 M* y5 K, E+ R2 w } B2 U3 y' L5 b" P% D k
. F; [: E1 Q% O! ]0 |
" V4 h6 J& n. \8 p8 _
; C i% Q% D! q; t1 z: D+ j Y! v6 z8 Z9 w
* k6 h& v. e! _/ d1 D
Q+ t( U" P0 j2 y3 g' Q
( \# T! }; m Q1 ^) _ U gen pmaxplddy240=`tempmaxphddy240' in 1
# r- E, j* n# S0 F' U: o
3 K0 L: v$ N9 ]9 F5 y7 M4 p1 h *-------------------------------------( o( E' w$ J/ ?" h+ T! H; W, [
/ @' |5 Y% ^# P: i gen price5d=v5 in 1/205 S# K) y: U+ j
7 i9 D& h0 u( p: a gen price5yy=_n in 1/20
4 k; Y+ Q! \" D# o$ @5 Z " U2 ]! o* Z7 y- v. C) B) R5 ~# W
gen price5y=price5yy*(dy240max-dy240min)/20# T0 S, j) }" Z+ g
4 l9 p. M' z1 K
*price5y &price5d: F* a' L l+ y
6 y% B0 I! Y0 A5 }/ v5 ?, u gen priceny=price5y in 1
8 _& w u, k3 U, z9 v4 K. }# \
) H J& A7 ^0 \0 O& H$ m gen pricen=v5 in 1 D1 M# a9 A) s" F! V
" t# v% K; b% X: }4 s# L& l
. L" V1 S3 B B& e( a: X, Q *priceny &pricen g% m, q/ Z* g& [- j: R
# g u/ U% k/ L1 h1 `4 U
7 ?! w. G0 U7 K5 a
*-------------------------graph------------------
% N: j' @4 ^: E) u
( C# k S5 ?9 ]5 G& [+ P3 ^0 \6 ] 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)
( ?. P6 H4 r4 E$ d2 }* F. ?) U" [+ q8 G! x
* ---------可选项目----------------------
; \+ \- I7 e4 Z% C: w8 J2 ~% M: @9 [*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))4 `5 ^# q6 s" q7 q& w- ]
}
% [% J- I9 q2 X1 W# i' oend# W9 X. Z8 r5 o* r
|
|