|
|
maodeng 发表于 2013-1-28 13:13 ![]()
) }* o2 g E: W8 J$ I; q) i$ z8 A. hello 3002368 L/ q' v: \6 ^- c1 T5 p; r
statement out of context
$ i2 v& z( i9 S4 Q, n$ c- Ur(119); 0 w, f' F9 ^5 D! T6 j1 h) L3 F
抱歉,最近太忙了
: p9 C. t; Y7 \* Q3 { L2 A4 { V
- \+ F. W( V$ b: ?300236 我用下面的程序试过,没问题' s' s W8 Q( w: L
. _. `) i {/ x' V0 T4 Y1 `
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试: E5 C4 q6 N; T: X
6 O% W7 O- A+ }" M( |0 o$ C. E
capture program drop hello
" d! h/ c" \7 V) T5 t
6 l( f9 I; U% q' ]program hello- n6 y# \" q) H5 e& Q, ?; I
! i6 e# w! |$ S) ]; D; \* A& n; A ~
quietly {' G* G. b Q+ D8 ?
9 l# ~: m1 S* X- Y' P b- K" _
clear) [- x: ]6 _& q0 V
- K* s0 T# L6 l5 n' E$ kcd D:\stock\test\source
8 ?1 P2 P# W, Z) [. T
- U( C. B6 }/ S. u# Y% k' p8 jinsheet using `1'.txt
9 v; h/ A' M& @) `6 m+ G
+ C2 K/ ?; |& z# L& M keep if v5>0
/ |% h# _, n% T7 j' F) Q 9 G1 C6 J& A% T |+ A8 z, I, q B
gen vt=_n. y! f' Y, G8 P- }' B& `
8 V6 B8 u0 H6 [1 Z1 B/ A. a tsset vt; O; Z) p& F J. z6 c
+ H" v3 X0 d1 K& q" [- J gen zf=D1.v5- H* Y- ?7 e: v: k
! Q% F) J6 `! k- y7 t. H' ? W' u3 D gsort -v1
|& D) k0 c& J7 a: K, O
+ F+ n) J0 p" X+ D- R gen avol=v7/v5
5 M4 t q: R+ C& K7 P3 M & y0 v4 x4 t, J9 ~
keep if avol>0 F9 L9 r* ?' ]8 ?# o
$ \& U' ?$ J# G7 S6 }: q
drop vt
+ y, r" y/ _( x& M. m # e5 b# n- o" j1 B# ]$ ?
gen vt=_n
6 `6 u3 z" l, S, V, @% }1 \% j/ T 6 M: u; g& N6 F# ^
tsset vt
# ]! u- |8 Z! T0 Q4 ] ( r9 A/ T" c' G
sum v5 [aw =avol]0 R' h+ A' n* p& O6 g
/ Q' @: E* o* k' R! g gen amean=r(mean) in 1
) i; ^# I: Z/ W5 R% P3 x
H7 G- \: C/ I) s4 T& n6 E7 k * 总加权平均值 amean: A$ L( |8 `% S5 f
* d+ A: w1 h0 g7 i( g1 c' J
' f. w, o* ]% w4 U4 i, h keep in 1/2404 k& {! N- f; ^4 T E8 t K
* H% b9 @1 ]- d$ {0 v
sum v5 [aw =avol]. R; }: W% b s$ M" n b
% R; ~# j, H9 h% r8 @% }6 | gen mean240=r(mean) in 1- F+ ]' M$ S! g) O/ @
) V$ |% J& b6 ]9 W3 N *240加权平均值 mean240
, D4 ]! P- ]' ?& T% s
]9 |' g) [; A3 D. W set obs 500
; z3 d. Z+ _5 N! d% I$ Y
; o) U6 Q9 z' o) S2 S; H kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 v2 b8 _: g2 Y- y, B
; C9 q( R9 y( {+ k *240 kdensity(dx240 dy240)6 u' W) g9 _- r0 f/ z) h
$ l, c6 A$ @6 J- `" `6 D3 D9 a
sum dy240; @3 i( Z! y: F' a
r; E- b/ ? @: q8 ]* K; d9 S gen yxis=r(max) in 1
: ~; @( d+ S0 ]5 K& n' k
5 u1 ^( O8 s) U4 D I' w { gen yxis2=yxis/2
! A" k+ q2 X/ k* P$ T: n , W) h5 B. r- c5 h) \2 a
*yxis
% o3 G+ ^4 u1 R2 @( ~) U" u& ~ _2 G: y0 u' g8 x& `
gen dy240max=r(max)
. m O8 D# G* S& u3 G; x2 v3 w 7 {( _: g: J7 U8 Q2 n K
gen dy240minp=r(min)
. i3 g; j6 g; ]! C; \. s
, M6 `, a. w- C$ j+ Y- u$ E gen vtt=_n7 u a7 ]0 I- N7 h& Z& F3 d7 L
2 i2 B, L6 z% v# |5 e, Z. ~
tsset vtt
8 x8 }1 |. O7 Y8 ^$ s
: n5 l% S* z# |/ B+ q0 B+ m2 b gen ddy240=D1.dy240/D1.dx240: p! g1 ]( Y% y6 P
8 @* a9 e, S" H# f; v sum ddy2400 j B+ D8 z6 @3 ^' H
+ E; d( Z* X9 {# D gen ddy240max=r(max)2 |/ e A* f9 j5 ~" W# b5 d
2 {& L) }7 N& H2 b3 `
gen ddy240min=r(min)# ]7 f3 I7 ?3 }
6 T+ _& `0 ]7 O8 p1 c
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
# s; N+ ?$ W9 S# M9 G' W" b
0 Y( h# o, h7 Y! h- F" N. g1 I sum ddy240g
. l, C# V; Z$ r$ i7 S. D
/ [6 K4 @+ M8 _ gen yxis3=r(min) in 1
% ^: w3 |7 i8 ]( {# k ) k! n3 f }. K% n. G! V
gen yxis4=0 in 1: ]5 G0 ~& ^# ^
. C& C* i8 J: B" n& u7 w
*ddy240g
+ x; l) Z% f7 e0 f3 }
8 _! b4 m: [9 i7 z& |9 |3 s1 m% V; }
) p$ U6 x( b5 o4 S5 q$ h preserve
# B9 k% t& `- C* U d! M
* S' J/ x2 ^5 S sum v5 [aw =avol]3 g5 [$ ]! i# `3 \4 u5 R, L2 ]
0 e$ Y$ }; y" z# ~0 S9 A7 z! {8 D keep if dx240<r(mean)
! a- [1 t' ?( e; p! g 2 m3 b- l7 a a8 R
sum ddy240
7 P2 [; X" P3 A! G1 g; L1 D6 V7 E 7 v u! l. Z5 K0 {, Q7 o" h
if r(min)<0 {% W4 `$ y6 A |! M: z$ p
! a0 M3 P0 Z" i8 F6 L5 c) X
keep if ddy240<=04 H" C n9 z( j9 m( N& b/ M1 n
$ d4 Q3 O5 O, e9 q- L
count5 J! p$ D+ h" _/ z. A, O
' n) |; _8 J# b; g! r7 \& Q if r(N)>2 {
; T% r+ K8 j! K5 F1 {- n & Q& U+ z2 b/ F7 l( z
pkexamine dx240 dy240
( F) ~, c1 L2 J! Z$ B* }! u ) y4 n |$ Z& ?" b
local tempminp=r(tomc) h4 P; V2 Z$ T3 q( ]8 z0 g$ H
restore
. @; R Q |: z. Y; i( H }
) m$ i$ w$ n' m, K, W
6 e* ]1 v* W% n5 E H else {. \' f7 A$ ]5 A- \% p5 |% v
, R5 z& W) y* Q2 w, }; O! }* z
di "cannot find minp"
! y7 [. B: n) ^4 @ , \5 u9 f1 [( r% S! t. Q
restore
' w# z0 c; T* p% \ sum dx240
O1 g3 b$ k* a8 M- K6 z local tempminp=r(mean)
9 T4 P; N* _) c+ b: X2 u" d / _4 e; z H9 }* k. E. k
}$ h7 i: h0 d/ p1 ~$ m2 ]
}
. i: V7 }; e0 x( A2 i% w' r. _$ I R else {) [+ c i" y8 ?" L( W
- ]" j& P; P; ]! M keep if ddy240<=r(min)) B: o5 ?" q5 X4 u9 ^ A
! \3 R# d" S) h% M* {9 ~ sum dx240
% r& g8 H5 |$ J/ Z 5 f- n: t% U& i p& A! Z
local tempminp=r(min)
/ T8 n9 g, v) u! I' R restore ; g' @1 A2 x; \" {* u
}
' ~: s, `. u& K3 [
4 M6 Z' b# c7 z# t" u) T5 Z$ U; J- G1 I9 ^4 N# m2 J
8 J! F7 P+ t) a1 }0 U
gen minp=`tempminp' in 1" H- u7 ?" b7 R( j
*240 minp1 l& g, \8 _0 [2 ]$ y; t4 _! r
3 c6 t' J2 j: d2 f" M
B: m: _& D. T3 I4 l
; c& S+ n6 U5 U3 Y3 [ preserve
: H5 {. H% p! s: {# n & W6 M. z3 F- Y: l, ^; H
sum v5 [aw =avol]
/ P; u2 l/ k% o$ l
3 }) b4 F, ] m% P keep if dx240>r(mean)
8 ]8 s0 q$ {* ?9 ~7 B
! o7 r/ @3 d& ]& ]- a" p sum ddy240 d1 `1 V7 W! X A4 K' T
8 g% z; e( ~, G G2 S5 H ] if r(max)>0 {' z8 Y$ B9 t0 a% d! c5 I2 q
8 O0 _( ^, s4 I- Q keep if ddy240>=0- q& v, N6 i, e0 m9 w; \9 f
! e5 p6 D* U, q5 v7 W( ~2 b count/ R; x8 l) a7 B- d. e+ f
6 C- A( G+ c5 G if r(N)>2 {
- b) Q: l4 M4 C5 Z+ y- t
7 V( N7 r# i3 O8 }4 w7 m pkexamine dx240 dy240
5 Y! D( x( W7 ~6 `( ^, F' `9 ~
3 w# D3 G6 @5 `& K4 Q, @ local tempmaxp=r(tomc) 9 P& ~! E' s7 c9 n
restore ' J) J# n. D1 N- e" v' Y( j7 V6 C
}/ Z6 p5 t( v. j* J* t# [. _
5 T1 T& N: E% m. X3 P * v- h% J4 ]" Y) s7 b( E* j1 r
else {5 o, Q( i3 _$ \$ a4 F! `
restore ' r0 h. k7 l' f0 Y( w$ f
di "cannot find maxp"* t# t H% A; B& x3 a$ h
/ H5 y8 z0 }# ?+ L! ~
7 x5 A6 ^" I. H' K3 T) S! z sum dx2400 F) Q6 c- z1 `4 L. @
local tempmaxp=r(mean), G: ^! D7 l8 u2 C# f- o0 g
5 Q& z& Z. h% C+ l1 N }
8 f) |1 ]% k X& w9 I' D$ J- ]
; F! ^4 E2 R u% Z }0 _% W6 L0 g; ^. G0 R" ?+ k
* Y( J/ b1 |" G& o* C* W. N
else {4 o1 p5 |2 H' G6 B9 H2 C$ a1 L
* p! K- a ]4 X+ ?1 K- J, J6 ~ keep if ddy240>=r(max)) u; H% f% P4 y1 e; C
1 |9 j$ T* I7 s' ^7 G9 E/ r- m2 H( _ sum dx240
9 M) L8 I$ |. @% [ : p* ?' }, A! e2 v4 }8 a* R* w
local tempmaxp=r(max)
?0 @$ z' N2 @0 _) }: m restore
2 j2 I$ ]( X# f2 j6 p) d }, h3 [9 M# J) t5 e
5 n9 F/ T* ]3 K8 ^2 C9 q& M* P3 e& m: _4 i8 b! ?6 h
# y, m1 N( |/ ~: E% l
2 {9 p7 I; O! s gen maxp=`tempmaxp' in 1
. V+ J6 \; ~6 \7 x1 H E$ f( x
! D# S9 A5 F! v% X7 H# Q *240maxp9 b) |+ q/ O, U4 ]' O! `+ Z6 O4 s
( y: A6 E4 {" L- R9 p
2 s+ |+ c S. i+ z7 D7 \
*-------------ddy240pminp左侧高峰值-----
& o4 T3 ~# W0 k
( T" K1 W# q; V/ Z& z) K preserve " q" b. O4 o3 E; l- h r' H% S
% s5 t4 X! A/ C1 Z3 C' p6 N# y' F keep if dx240<`tempminp'- O" W: U5 P! K- l( T) r
" B2 B, \, b( u keep if ddy240>02 G7 y$ r- d G2 G# Y
2 Q* L B( b! W* ]) m' [3 {- M
count0 g B8 w; d/ c/ e3 y
4 Z! n) P; _, Z9 k. l& q
if r(N)>2 {
4 z+ t+ U+ f! O5 ^+ c0 k % P. U2 Z" f) H
pkexamine dx240 ddy240; ?. v& z, p6 Y& r( u4 i
/ [2 b$ K. f+ t8 @( q
local tempminphddy240=r(tomc)
7 \% x! |0 \# H- L4 f( b restore
- g+ i+ P* i! x }( S! N1 H4 @5 b& W8 V
8 [' w. B/ k9 a4 A: F& F3 N4 F else {7 v$ t* N% q+ j/ g: f, n
restore 2 r; q+ J; P8 w8 c: D$ f* b
di "cannot find pminphddy240"
8 K2 \( D% E$ c l7 e3 g1 D: d+ H# \ 7 Z9 ?8 z# Y9 J2 l% S% l
8 G8 u' {% z0 L$ Q6 @# I, J! j e# w sum dx2409 ~1 B- q1 w; m7 O3 U/ k* b
local tempminphddy240=r(mean)
% }2 J1 U% v) x3 H* \0 n8 @3 v; {! v2 q
5 p0 Z7 k- d1 N( _& M. D( l3 j# [ : B6 a2 D+ I* D: I' d3 [ b# q* J
}
2 X2 q/ G; {* ~( A3 ]4 ~3 m$ T * E" }+ {% x' {% N2 Q; d5 p+ A
: r; \- {; `( k( \; I3 k
1 g1 }. ~' [& W+ C+ i7 G
, F4 A8 h9 Y6 I+ s& d/ l4 Q
$ @2 t! q1 E! V0 o7 \# A9 X : e3 j7 a$ @ `4 j, O& r" D8 O: N ?
gen pminphddy240=`tempminphddy240' in 1
2 Q5 t! s1 B! j8 x; }) e$ H
% n1 R' {, ?5 r0 ?' T9 n
# R5 t3 o+ D& X5 r% |- m *-------------ddy240pminp右侧低峰值 -----------------9 ?4 U \8 C- u: R b8 `* e' C; L
preserve
$ U4 ^) |8 n* Z8 A
; B8 B* A+ h9 a1 X( ~2 G keep if dx240>`tempminp'
+ i m1 }/ I/ \0 P' z. e9 E0 i! q 4 Z9 v h' f7 Q; A0 Q/ O
keep if dx240<`tempmaxp'
$ h& _9 `8 ?' K B: D
; |8 L- ~0 T7 q* D* g keep if ddy240<0' H- K8 x& W" l4 S7 g
" S' F( x! u8 j6 G4 h* p gen temddy240=-ddy2401 ]; \9 E V# r8 f0 k
0 Y: O2 p; ]: j3 k4 K+ d3 D/ d2 i! { count7 K% D( \9 @) s6 f& F
+ @- o3 i: t" Z7 [( q+ a8 O; z2 d if r(N)>2 {
2 ~( w( B/ W, N8 }4 A ! w4 u9 C7 L; @* C+ F
pkexamine dx240 temddy240
8 U: E, w M o
t V- s7 z; g' q; T local tempminplddy240=r(tomc)7 T1 y! w3 }- ]1 c t0 z
restore
) C1 e$ q+ N& Z- t# q }
% o/ M1 c4 }* h/ j, ~ 0 \1 C+ n0 k5 e( {2 Q
else {
2 W( j# X3 H, D' \8 B I: R$ U, ~
2 w/ v: m+ V+ e( s di "cannot find pminplddy240"
7 l. k7 _8 j7 d% ^+ N" C# `; `! Z restore
& a+ ?% }/ v9 N0 c& ?- { @2 |( _
: f9 {. g/ C8 {0 X* t6 q X* {8 N sum dx240& W( e3 J. t Q( I
local tempminplddy240=r(mean)
; \7 Q* v7 |% I5 j8 \ 2 }5 Y( @- Y. d4 t
( \4 @0 `0 I: f1 ] }
/ D: u5 E& m/ m
6 W. n/ {( J+ H4 O% l" x 0 Q) F7 r8 N3 U. z* W
" u3 U {. o, ?( M) B ; _" o/ z4 j5 Q+ g+ S. B
# f4 o- m, c- d; U! j
gen pminplddy240=`tempminplddy240' in 11 P' O* N# p1 y( \0 f
; F6 Y0 c. }' L& l *-------------ddy240pmaxp左侧高峰值 -------------------
4 p, g. _$ B. o9 R( M1 b! [ & ^. r6 j, H- h# e5 V' R
preserve
! r/ ?3 [! L' _4 G8 P$ G% v 7 E9 f S+ l! Y/ x
keep if dx240>`tempminp'& `7 @. C" P+ d4 A" _
1 H2 P8 ~; r8 g5 q. m+ F5 a keep if dx240<`tempmaxp'6 u' K) w& [0 J& I6 m- R
- e' Y& e/ M& p! @/ O
keep if ddy240>0
7 r ]* ~. b" N6 r count
# N4 y' J- N: z: \' I0 r6 z: A * \0 A7 C+ q, I
if r(N)>2 { c% d0 l# C! B" L! O0 ?- h1 c
8 |% ~. Y4 }5 L3 {
pkexamine dx240 ddy240/ P. k. X2 D: I3 b
* T4 w. w7 S9 O local tempmaxphddy240=r(tomc)
& E, |- O' Q! c" W0 P& V
* N: V4 x. M) f* K0 z: c$ @ restore' X; N+ f ]: ]0 d
}) G, S6 C, P3 w4 E, S0 N
; j! l. z$ A* v+ Y$ o+ n4 n else {- A3 w& ~4 H I- {9 K3 D2 z
h6 r3 H" H* Q8 t/ ? di "cannot find pmaxphddy240"
! m0 z8 U' A! x8 v0 F% p restore
0 \8 m Q0 E- O2 ?& F% q) a
5 z: s: I4 i+ U* K5 ~# X: d sum dx240
" t( C4 g4 f5 P' V local tempmaxphddy240=r(mean) : W. b% X5 G V! k7 V! Q, X
5 M0 j: }, t, j. n. n 1 |" S8 v+ g) j
}, v# M; u% ^. c- R) {8 y
# m1 j9 U1 Z/ g; r
: I% e1 f7 _$ |$ Z5 U8 J ( ^6 a# S0 v) n1 y( p( R
/ r/ }$ ^' [3 w8 G
8 z- r1 v8 ]- O4 Q* ~/ o- o2 u
+ [- \& _1 e/ K: f$ W gen pmaxphddy240=`tempmaxphddy240' in 1
, \4 a% k# P2 u9 H- P
& B/ J% {9 @$ `! N+ }* M% v' A1 {
/ g1 l0 h: b' e" [7 o *-------------ddy240pmaxp右侧低峰值 -------------------0 P# G9 @1 E6 k- j1 N3 e& F! S
1 \7 w6 x2 q/ i( X7 Q
preserve * {' l) l; ]$ n$ m
3 I5 P( E3 M- T5 ? keep if dx240>`tempmaxp'
+ c6 Q4 J+ ~ N* Y- j& i ( `+ \" `0 s3 R( T% t9 c
gen temddy240=-ddy240
, ?! s+ d$ w: O5 {$ U / @6 G% _% U& p2 `9 n8 r% c/ S. L
keep if temddy240>0
& y L: n1 ^& l4 y8 d3 D2 F: d # r9 b5 { w8 b
count% r/ y( v2 B7 R. e. E- C, M3 o
) W+ ]) n- R, a w7 |2 O if r(N)>2 {
% ~% f. Q8 H1 t3 g- F) n
* s* d2 Z2 e! O B8 M pkexamine dx240 temddy240% T3 E% t! q% n, J; Y
0 a9 A7 o; [4 I5 Q
local tempmaxplddy240=r(tomc)
/ O/ m9 _$ x( Y/ L restore
s d s7 b( F9 f% A; ?: N }2 a* M) v$ f, y/ j0 {$ b
- d+ H: J: n. Z1 [ {2 h! O
else {0 X8 i8 q- d& p2 e
restore0 t: t/ q) w) M) f) z, e% G
di "cannot find pmaxlhddy240"
; p% }5 L' U1 o( f) |7 |+ [2 s
9 O0 F5 x) \7 T, K
$ v' A: T/ B1 |1 e8 C3 _ sum dx240
. a7 d. H2 {' y# r1 \' S; ^ local tempmaxplddy240=r(mean) in 1- o) [/ Q% ?; x! W+ D
9 N- O" F' @! C S" b& ~5 J
: e8 A& t* D$ C: Q5 N$ g( W: p }$ B$ z7 k. |8 K; T+ n) {9 u
! ^9 J1 Z- k2 D& o: L4 M 6 u* n; Q4 u/ F8 o4 g" d
1 `" Y6 D0 \/ X) t: T4 `" D( l
7 `( L1 _9 @# a- u; r7 L7 f8 W 0 D, G% o8 |; e4 c1 ^: l
" S( ] t" l. d+ i gen pmaxplddy240=`tempmaxphddy240' in 1
# m6 i+ ` o1 m" W1 h $ Y3 i& S& x$ Z8 x8 u, Q6 w7 Z
*-------------------------------------
6 p' c6 `0 Q/ z4 ~% R # E* Y# G$ `1 I. [9 k7 K" d
gen price5d=v5 in 1/201 P ^; _0 F m: L
6 p! s8 `/ }5 W
gen price5yy=_n in 1/20
% `+ s0 W, v# r. `. u& X & Z) l7 e1 x' F
gen price5y=price5yy*(dy240max-dy240min)/20: K) c# A% p0 ]) c' |, c; V
0 N" b' v- M* C8 d/ n4 n *price5y &price5d
" d/ Z( T9 Z* ?3 p8 L: V $ ?$ K: W7 \- E) a
gen priceny=price5y in 1
" R! E" c: f! T
. G4 U- G+ U6 C1 r: F3 O gen pricen=v5 in 1
6 w/ `5 C; W- _5 A9 y3 S" Q" P1 V( p. l! f& H7 C* q
8 J: |% s% z) L( N' h8 _) \
*priceny &pricen+ s6 N9 z# w' M2 P& [; p$ c
; T7 j) Z5 m$ m' {% Q. c' {9 \
( Y( z% Y! {3 _6 |) D& w. c
*-------------------------graph------------------$ M; t" D5 N9 H+ q
/ r, a0 c7 p3 C( W5 m 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)
" t+ }2 M9 _, r2 J* `$ v2 \
- l! e9 ? u4 j, k. T% y; U* ---------可选项目----------------------7 v" R' I) _! J5 `( Z) a
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
4 X1 S. i) P6 q# E6 F& z" e( N/ x# O}
; F/ R) o' d3 L$ Q) |end
: l; F! n' P- K' h y$ u: p6 s |
|