|
|
maodeng 发表于 2013-1-28 13:13 ![]()
. E- I9 p: v( Z' B' O. y) C& b7 a! A. hello 3002364 s1 |# `4 m7 V9 y& I
statement out of context
- T! S5 h2 v0 n2 f' j. p7 G# xr(119); ' U$ { H, x3 c1 q% n0 K" m) k4 U
抱歉,最近太忙了
6 Z0 r( {4 ~1 u+ S8 ~5 P0 ^, S9 [; }; A/ E$ P6 H9 C
300236 我用下面的程序试过,没问题9 B% S8 W: C7 l2 h
+ t; D. I/ j: u4 E
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
9 k' y2 _' J* M6 o9 }. P4 I8 V3 Q* D0 \
capture program drop hello
- E, G) V" B$ e* ~- p/ y) ]1 Y7 a- m" L8 K0 p; u
program hello
! q" V. E+ f2 _
9 e9 @+ I: @* X9 Y quietly {) R, N. ] C/ R2 D
( L/ r) N" `8 [+ r# `! m
clear! a* }2 i5 L6 ]4 J7 r" `4 s
9 A; l+ B/ H5 C3 G6 M0 Rcd D:\stock\test\source; C z! D- S% U$ y5 U* ^+ Z
$ b' {: O; E( U7 R
insheet using `1'.txt
0 N j( i, p5 K' _4 @3 J! E& h: T/ G# n- o
keep if v5>0; W# s1 E2 D6 M! W' j: {: N u C
- U& d* n/ }3 t. _. |
gen vt=_n1 P! a) }% l: ^1 L
4 J2 M& n) E1 _% t$ A& ^" j tsset vt. `% p. l' a3 u$ b3 ?3 M& j1 V
+ e" \* F- R5 N5 o
gen zf=D1.v5$ q/ Y/ G; F0 M' r
+ J' _: p, ?) j8 v6 l. J9 ]
gsort -v1" a$ f4 ]( n3 T
$ F" y5 ^$ U, N; y# ? gen avol=v7/v5
+ L, ]: L1 M) w1 _. E . U1 M& {* _$ l
keep if avol>0
6 K; A" f) r/ s" e X. r
; P6 K9 G7 ]2 |$ V8 F drop vt
1 Y9 h% y7 ~6 c+ h' O9 w ( N1 h! ?" d1 E
gen vt=_n
, O* x" O* N- d; a( R2 {. b
: K2 m. p! i5 H( U4 s* r- N$ K tsset vt7 w e) G' O6 x0 w, `
& {5 T' d, S2 w5 y5 W3 f sum v5 [aw =avol]4 A4 Q9 _5 i5 S- _& G
, H/ p1 p. Y* D; h- N! G6 h
gen amean=r(mean) in 1
/ N8 |9 W+ N( }/ z% s5 W8 K 1 s1 p- n& H t5 P
* 总加权平均值 amean) q- }5 T9 L9 f% L2 b, l9 W
# v6 n3 x4 }- i- g7 j6 X
# T- ?! Q% A$ n, K6 v- f keep in 1/240& w& q) u8 ^7 y" n9 o- n
- ] ~- f' w# Z
sum v5 [aw =avol]8 j/ w% s' Y9 d; U9 t7 Q$ Q
0 k0 G+ `1 o& i" g; v
gen mean240=r(mean) in 15 e2 u2 q" t' U/ c
! @1 N# F" C. ~( v *240加权平均值 mean240
$ z- N' d5 Q( j
0 S) e. x1 T* K4 [ [& G. g set obs 500 9 ]; u( N9 d+ m8 z* |
9 c* f$ g" c0 _! t0 m kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph3 Q! O5 d7 h5 x# Y8 s
# G2 Y3 u1 I8 h
*240 kdensity(dx240 dy240)" d' W0 o9 G" ]. m2 i: b
" p0 H) l) G" Y. m. }
sum dy2401 Q. i3 L5 n2 h2 _( W: U' m( L
3 W0 S" [6 N& K# L4 j0 i( C* M
gen yxis=r(max) in 1
2 F% N+ J1 `& X: o1 F$ ~) A* N 9 H7 R" T5 q9 a0 T
gen yxis2=yxis/2# T8 ?8 C: a$ s. l5 F
% _9 a/ }% p: |9 z$ g( ?& Y' e$ S
*yxis
$ [$ U6 D1 R0 x d1 M+ V- o# i 5 ^- W" H: T5 X# y7 x3 ]
gen dy240max=r(max)" k+ [7 L% n; h% L \7 w1 G) l
, Z: Z( h/ `- R! y7 l gen dy240minp=r(min); G3 Z! |% j' ]; S! K8 ~! K6 P
, E7 ]; q8 h9 i7 u
gen vtt=_n
: r6 I( ]9 |- L* }$ _5 m
. ]. X P6 A0 j" Z1 G* B4 }6 ~ tsset vtt' T9 u+ B" v2 n0 a/ X0 j( q
+ z0 Y! a: V" O2 }! |3 F1 A( h6 m, M
gen ddy240=D1.dy240/D1.dx240/ u# k2 m6 x: t p
" \8 y: S" E' H- G7 P6 i sum ddy240
4 i+ Z2 \6 q# t+ j' }
9 Y0 l8 ^! m2 u% j% q& S6 H gen ddy240max=r(max)
2 f7 |7 C. [* A- c* j( ~$ P
$ B/ G7 b1 w* W gen ddy240min=r(min)
! a8 E5 h5 g/ m; x1 e+ F 7 |( u: E) |4 h, r9 v
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)4 g3 _( L" Y) J4 g) z; v
$ t$ T* m4 |. a/ V' p- A sum ddy240g) [) j) v0 A; O9 t* ^0 _& M0 X, D
7 {/ T; y0 T4 K
gen yxis3=r(min) in 1
5 u3 X% G: @& l& j$ W) _
6 r: U9 \! y: ]6 t2 t gen yxis4=0 in 12 ?* N& v! w0 T) T V
$ ^! _8 P+ }: i: [
*ddy240g
6 L/ }0 o) Z6 Z: R* o" v' t
1 h2 c+ G, U) Z( q $ e! M( J3 Y* j
preserve
, Z: x& V K& \3 E3 B2 r; b2 l 7 [6 j+ R0 ]/ i% m
sum v5 [aw =avol]
& r, A* Q5 Z, O4 t/ T
) [9 i! w/ X* w4 b" v! W% z keep if dx240<r(mean)
7 G* q. z, B; |) D( P4 S
/ `- o0 V' e' U% B8 [3 @! V sum ddy2406 x. u: S! {% \5 B( c/ X% ^
, J2 D7 `1 T, T# i1 ^ if r(min)<0 {
" ? u% {7 M! G$ C4 m - I1 S1 X* Z M" M( H6 e
keep if ddy240<=0 f2 K ^" J4 h0 |2 w
+ L+ k9 v! R3 z0 m m" Y% \ count$ `# w7 g1 ]1 P
7 l5 f0 \4 c8 }; N4 o/ h1 N& r
if r(N)>2 {
3 v1 l$ B( I5 m , r5 z: q3 i) ^6 a: A+ n0 i. J
pkexamine dx240 dy240 ?- Z0 }2 w4 v$ C& C" R
$ Z9 K! M, W. Z local tempminp=r(tomc)0 K- B2 a1 w% `! j9 _# {
restore Z( @7 }2 H0 {
}
. e! }8 c3 o% V# [ J * C3 W+ l+ x$ i" N9 s6 ~9 V/ i9 c
else {' J+ g5 C2 w' f- @% |: ]/ H F
) O% X5 H" s. Z; k. g
di "cannot find minp"* \$ t# i L9 @. O3 h; Y
- d0 t3 k2 r8 C, l
restore
+ E- U) K0 o: P c sum dx240; X' c, O. o2 @
local tempminp=r(mean)
* O! X8 |8 B; [3 `2 m5 u, ?2 C- f
% ]6 y, v1 P5 A% M' Z/ B$ b1 t3 Z }
) _$ b: w+ _6 C0 v9 S$ H) I }
( E9 q; ]# _& E! y, H r+ t else {
# G5 ~5 G( w0 `( H. A# T 1 ~6 @7 k2 N- i1 }% l) o# x, Z$ S
keep if ddy240<=r(min)
. D$ |" f0 P) A2 W7 n! A; {& z% j- W( e ( J: H- V) v) b/ y1 A& F
sum dx2405 T9 h; }7 R- a- ]. H( U/ U+ d
0 s9 Y! X( x) _- g
local tempminp=r(min)
6 f0 P9 }: W! A2 P0 n- ]5 m restore t8 W, [$ i' ?
}3 a2 c, c2 r/ K( w
- i/ m8 v4 ], ?. {5 W
" E- }% f9 m. A7 x/ @, V; \6 M
& S1 T: D& B, k1 F: u gen minp=`tempminp' in 1" d: ] o- J$ K6 W- h
*240 minp. n5 F! @& _, @: f T
% M4 y& L7 f1 S O; R5 F% t# |8 J8 ?5 e0 |0 ~8 J
( s$ |6 ?$ @# J" _
preserve 6 U* Z ^! o% M) v5 ~* M @
" u6 ]2 ?) ]# _! y6 y
sum v5 [aw =avol]
- G0 }$ k2 ~' P! F
4 H. r& |& Q a' _$ D0 h* K keep if dx240>r(mean): Y2 R3 K! g8 G9 Z; _9 o3 K
& e( t7 K8 u0 Y# R9 x
sum ddy240
- }; y. E3 q9 B1 F 8 j- b! u" F3 j0 s9 i
if r(max)>0 {4 B8 y5 N7 v& D2 t4 S2 u
2 U( D1 \- J$ T/ B
keep if ddy240>=0* D$ B% X+ L& t( ~8 v# T; C
! |/ a/ F# {2 X9 D" ~4 y: d& u: c; [7 H count
) @, g; I$ g# |* b. {2 k* G$ R
/ D9 F# x! B! ~9 Z7 l$ z; ? if r(N)>2 {
/ T* R5 |, G" i* ^! u
0 L8 `" Q, Q+ Y+ O pkexamine dx240 dy240: j% C1 J& Z& Y- F5 b1 U
+ e, Q/ k" [0 m& D4 m l5 Y
local tempmaxp=r(tomc) % j P! f9 b: | _/ d5 Q; K. F- \
restore 0 y$ V- f3 C4 l7 l& O0 X4 N
}' y+ X2 Z; y5 l4 t! E/ d
; ~0 w# {/ U- o# t Q- [7 W" I+ }
" o3 M( d1 }4 C, q
else {
0 G8 P6 e/ N% w! _8 x- u5 G, F restore . P8 W6 z y/ ?8 K1 ~4 w
di "cannot find maxp". w. V; G; B5 `- h
* }8 [+ p6 a0 h- Y: |& c
/ f( b9 Y! e5 Z2 [% |) u o; n
sum dx240$ P. ^3 v- E0 D" T; i
local tempmaxp=r(mean)
+ W" t/ X1 }, D6 Q/ M9 _( t$ |/ a
) _8 N: Q* s0 R# r# B) p6 M9 R$ y* V }( ^- ^4 w! A+ D% b
/ K9 O7 m4 T: ^1 z }
6 k- L) Y( U# ?7 `7 q" V/ N( J% u
7 A' D* s, u# w% B# S5 N* c else {2 b9 J+ b) m- q, W! {6 k8 z
a2 J# W6 O/ c g/ c keep if ddy240>=r(max)
`5 f/ v$ V2 {# a% `5 p! D
* R* B' n3 q- e sum dx240
- F& h. @! A' `, T
% J3 s6 j( n* g4 `# J3 t local tempmaxp=r(max)
6 f3 K6 B- Q$ a$ T restore 6 ]" X* x% f- E, @- _
}
2 e' T" m. t0 e; Q7 }
2 e u' r( ~5 j6 {! _0 J
# D; a, T- N! o% N( T, x* o
- Z2 G4 P8 R$ ]
- r8 S8 T# i; [; N* E" S" D gen maxp=`tempmaxp' in 1
7 ^$ l3 x8 m. O/ [. U
. |9 B6 \$ M0 U7 m *240maxp3 E" c% J; G" W5 q5 D/ @: B7 q
8 N) ~) l# _$ C( x+ n/ l
6 ]5 K1 E( N1 P8 V: a1 E# ~8 `1 z% J
*-------------ddy240pminp左侧高峰值-----
' S' Y9 ]1 U) I- |3 R! d; h
% K1 d9 Q& l4 E W' a8 C" \ preserve
# P6 u3 V+ R4 S
+ h+ o* e+ D! F) W- ? keep if dx240<`tempminp'
$ m4 e: f3 D9 l# @( o
4 \; L+ m+ _; T/ j: A/ T keep if ddy240>00 f; Q- d( J0 f# Y5 T! N
: L8 N# y7 ?$ j" I! G% B. ^ count
! ]/ X( Q/ S( H/ q+ e1 {
7 z+ S' d% `/ I7 T u6 t if r(N)>2 {
% k _& L; K$ {
1 c! ?7 o! r7 v( G$ }- o pkexamine dx240 ddy240% X8 w' r2 ?% k, U4 f- U$ @
' x) \! o; }% u7 a
local tempminphddy240=r(tomc)
$ ?3 X3 i3 q7 M7 b restore* n2 J. d' m' `
}
8 S% H0 D8 o+ i* h3 J9 \ * s1 o6 H; ^- {" ?1 R* ]; N8 Z0 k+ z& H
else {4 ^, e) C" u0 \# N4 Z; n2 v
restore ; r7 L: }2 J# q1 y
di "cannot find pminphddy240"$ u( t7 a1 w, v5 [% T
( r! ~8 x$ e0 h0 u3 h
! p4 l: a. e9 j7 B sum dx240
$ E* r9 @9 R {) C$ Q: B local tempminphddy240=r(mean)
6 }1 O0 a% ?: W9 c2 @# [
$ u c: K7 [# F) ~/ N, x- q+ r/ k2 b
9 w8 p2 m0 E0 y }
; L' H! h4 k8 s
& w7 E6 w% V9 M: Z
6 t9 D4 s; E* w) C- w, a
* @4 D- W" n2 N+ j* B+ I* z
* B" }* J) J- n* g1 @ * ]1 n7 {! c0 F
d3 N. h; q2 B gen pminphddy240=`tempminphddy240' in 1+ G! w( t, \2 }5 n
4 A8 M% w2 [- N+ _) ?# o' s) a/ {
9 ]! F: f2 ~" W# r b *-------------ddy240pminp右侧低峰值 -----------------
' v5 R0 ]* d. O1 R+ K7 r4 ^ preserve 5 S5 R5 Y2 p% {% X) I) n% }5 U
- f% m+ y5 h7 _! h% B; R keep if dx240>`tempminp'
$ S& I1 b5 V9 v- w5 R
1 h. p; D S# n- [% `# A' ~ keep if dx240<`tempmaxp'
$ g, r0 a8 t9 W7 q, x4 U( S8 r " U" ?7 A. ~. c6 T! l
keep if ddy240<0- p( e% ~0 J7 f4 X" j; N! z
6 j! |( ~: @3 n& i; u% q& G gen temddy240=-ddy240# X- z% [! _) s2 _2 B" R( Q5 J
3 j ]. r+ N( w5 a count
1 I( U; @0 D6 R% C+ M
7 W, W& ?, u) A3 B1 }% d( r if r(N)>2 {$ O% e8 E$ ^! ^* Z7 S, j, S, A
0 Q% x A5 B. S6 Z6 x- b pkexamine dx240 temddy240
. h9 ?+ o; a2 t1 V6 ~" n ( ^; b4 h" e5 H: J, ]
local tempminplddy240=r(tomc); I& J5 t& e6 k! w4 [ F" s
restore- Q# q- g+ l; W8 Y1 K: `1 Y
}
. e- c4 `/ L1 i( d$ q g; }+ C 7 q+ M2 f4 I. X$ ~
else {
6 D5 o# t+ ~( U! m% g, u
7 P0 A: b$ [' H: c- U0 t di "cannot find pminplddy240"
/ M/ f+ k# l$ w restore" v) B6 n$ L1 n
' K# _0 X9 @$ B2 H
sum dx240
6 ~. l. P' l# _) C0 K8 _ local tempminplddy240=r(mean)
# u2 q1 m: T! h* w2 ` : L. x) O& s5 h2 l3 B) t
. o; D0 T4 z* B5 \ J* R }
2 n8 h4 s$ ^! ], A+ }8 @5 k8 W
/ c# \! g% X" U5 a' e: A2 q
' [% j7 P6 J5 t) ^% s
4 |! ?) q t5 @4 U, f* M- b, D
8 B$ G0 M$ X- \/ s 5 k& \. R/ e% N k& v1 j
gen pminplddy240=`tempminplddy240' in 1
1 J H% \4 E3 k: ~/ g5 L+ F: u P * n( Q6 O e1 i {0 g
*-------------ddy240pmaxp左侧高峰值 -------------------
( `$ o# w/ O% k+ j0 d; T3 x
. u! U+ ]- A6 } U- I4 _7 I preserve
7 X- u5 A( l+ @) k' b& d
/ D3 m0 J: G; d: z( K9 U4 _' K keep if dx240>`tempminp'
/ P3 D5 d1 }* u( E. t 5 T) o6 l: m+ j6 `- O
keep if dx240<`tempmaxp'
$ @+ g5 V; U* N; @: ]. W7 P
0 u0 C& `/ s! h1 t" M keep if ddy240>0. X9 d4 F3 b" u( K& L
count
' A: _+ x1 }1 V4 ]
* L7 `/ n9 Q2 n7 F* X; p* ` if r(N)>2 {* j7 M* R) ]: e* S) H6 k
4 y5 |& f9 u. I: g8 `! V
pkexamine dx240 ddy240
$ n/ H6 J- |7 \# k& l+ @( w5 ^
; q @% I, E2 ], N6 ~! [ local tempmaxphddy240=r(tomc)
# f8 p) c) U% L# q8 x+ F! | # f! c, d/ K8 l3 u+ c* h
restore
1 u* [7 i3 \* x9 N) F/ g }
3 R* F! V. p# O+ ^" ]
( e. h/ Q1 ^; y else {0 L9 I5 _# |7 ~6 m: m
( t/ ^) L3 l" M* f; I di "cannot find pmaxphddy240"
: }, z9 S$ H7 F restore
% ~# p+ M% b2 S1 m4 s6 J4 X8 i ) z) c# ^5 {* j& s+ m2 _
sum dx240
& r3 z) l" `$ V: `0 O5 c; G local tempmaxphddy240=r(mean)
& g7 f$ @* T2 I0 q/ ]' u
" r/ i9 r6 G/ b4 s; o9 E% V W
# S2 U, B. q% W& }; H: O }
3 t- Z* _3 ~" R: t - m, L. H/ m' Y7 e6 j1 n" @
2 G* ~: ^: j w/ x9 j
/ ?, y Y2 y9 [$ m% L
5 Z& z/ W* y1 O
3 i' Y. w* ~$ a! L8 m 3 _0 s, e( v* u( \8 ]
gen pmaxphddy240=`tempmaxphddy240' in 1
4 ?7 q# | H( p
0 {: c! l5 C. X : C, N8 U$ p2 b
*-------------ddy240pmaxp右侧低峰值 -------------------
- p7 i5 s' v1 n8 F+ o9 e 1 b- G6 g: i) M0 ?
preserve ( H- B- t+ }& E" e; n
% [. M2 s# y+ K* s U* X0 _ keep if dx240>`tempmaxp'
! d, @3 H9 U" x+ O1 F
& c* a7 X3 n$ T% l. C' _/ z& }: M- [6 | gen temddy240=-ddy240
: u% {/ S3 y# c' q2 c , K( O- ]- ]- p- N
keep if temddy240>0$ z, n1 c2 B; w
% O+ _+ y; i8 ~' K- x count% N0 L* F4 h$ D3 A
{3 S N$ t6 m( a. M/ l0 k# c
if r(N)>2 {
* ~# [: d# S9 Z - L. ]8 A* I [
pkexamine dx240 temddy240
# [9 z0 z e t7 {0 B7 X ( C2 p2 E. Z# @- Q/ ~3 o
local tempmaxplddy240=r(tomc)
& \: {+ d! ]$ y( B: [+ D$ C a restore$ b R+ }1 Y1 j Q) s
}
2 `2 w& k8 C& C, I# \
# N' L/ S+ u' X8 M% N c. l0 V else {: k# P* j6 {9 ?' O# p
restore
3 ]% C' t2 p3 u di "cannot find pmaxlhddy240"- W7 O; P0 U& O! w7 S
1 G, f6 i: Y* X1 V/ l, M
) m; @/ T. M" k0 E& a1 w- [ sum dx240
6 r! Y; F' d1 ?. c local tempmaxplddy240=r(mean) in 1" l) P1 ]6 V l
" g% K8 _( ^ w: O4 [% ~! u+ X 3 k; S6 Z+ B5 L9 O) V
}) d7 d6 v/ C( e& V
* W8 [" x; L* ^# A! B" Z; B2 T , y1 S: ?- K9 l! f' A2 g
& w2 ]6 L: K6 x+ l9 L 5 I" A1 ~) m: V/ n- ^
/ r" \, a9 `" N5 C* n$ A/ L
7 {/ p7 t M5 Y. Z7 U, J6 G: \
gen pmaxplddy240=`tempmaxphddy240' in 13 a) N1 M M: Z% w
0 I1 o) s; h- ~( E4 l- S
*-------------------------------------
3 ]! G' R3 C1 y+ i + }" P2 `% N7 s* w( i6 @
gen price5d=v5 in 1/20
1 F) { H5 c: u( U T, W : C9 N' t6 G3 a; M& x$ X. C* o9 X
gen price5yy=_n in 1/20$ t! c& w0 s# u* |
" V( K! M, z1 C |; D# C2 F gen price5y=price5yy*(dy240max-dy240min)/20
( M' d4 K/ ^' i# D9 a( _ 8 ^& w0 j- |9 Q" f8 ~6 u. `8 t0 N" f
*price5y &price5d
- F/ H# J' D$ c$ A5 z5 q
2 P, `- f# r* V gen priceny=price5y in 1- Y5 c8 u% a1 ]/ e( Z
* z8 O1 f2 p2 W: K
gen pricen=v5 in 1
) [6 t1 _4 w% J
! d K8 T% O* A4 t0 [ , m. M7 t1 \$ ]& r2 w& M! u. ^$ e
*priceny &pricen' f ?/ H j1 U$ E. H% Y$ ]
2 `9 e- m- {- X7 \( r# f, S4 g7 I
# A! l+ i `" M- m* Z0 y
*-------------------------graph------------------
4 K$ l1 W* g. }
4 `" ]8 k* F2 z$ s% {" j4 w) l7 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)0 N2 e' d# e( |% |0 ^
4 h* r, l, V6 A* L* ---------可选项目----------------------
$ I% b6 o% I8 f*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))" ^ e# m+ X9 Q) d
}
W8 e1 S3 v8 Eend& ` _3 J5 _+ j7 b* N& M
|
|