|
|
maodeng 发表于 2013-1-28 13:13 ; P# c9 y" b4 f* g8 ] d
. hello 300236) L/ j7 O: g, z4 Q$ C
statement out of context% U# h8 H( B' E! Q: B5 ?
r(119); / D+ H$ r( U6 e1 O e
抱歉,最近太忙了! b! r* [- d/ ?7 F
+ F, ^! a* k C6 B* g% ?300236 我用下面的程序试过,没问题
0 m5 T$ F" B8 g; d
: P2 L+ V% W! i Y1 u$ U0 N4 e5 N你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
* O0 V$ N$ P. `; X
. ?3 W# s! t: }$ Qcapture program drop hello
! _+ l: q* C0 i% `1 K# U( f
$ \: p7 {9 }4 U/ E L, }7 [9 Nprogram hello
$ s' M* d+ _. g+ T3 ^2 d! m+ I3 R
quietly {' y9 c& `8 x0 D/ z! Z4 n
( ?7 q W; j+ Y% v# u& V; r
clear
! o$ y' ^8 h. {
J+ e+ {& E5 c: J7 c5 dcd D:\stock\test\source! b) s; P, R5 g) {8 C
* ^3 b7 ~0 Q4 e: \
insheet using `1'.txt
) [ J" G# a/ Q# `% e" j0 C0 S% q+ S% e( U9 j2 L! D+ T
keep if v5>0
, Z4 `5 ^9 b9 U' E$ k i9 E N% D : K4 {/ M: W( X
gen vt=_n0 L0 |# B- V, H3 z4 z
3 D9 s$ f: s, g! s
tsset vt
: |5 T- w+ a0 } {3 M
5 ], ~8 X0 f" @$ O6 B) C/ [3 \" S gen zf=D1.v5
2 p, n7 |' d+ {6 f( v. f
* V: k" ^# k: U: N gsort -v1+ j6 d; k- Y. n2 H
& _* [0 M, {# s0 z/ G+ [/ P
gen avol=v7/v5) A' C: w: i' A. ?* i4 P' c
- b) _' f: G# Y# |" V6 B! |/ O keep if avol>0
; i2 R& G9 ^: p, Q! c! ?
Y- g1 S4 i: X% B* e0 X' {% u drop vt7 J6 I" N/ X1 o4 r
+ r# `/ t. {' y( X; z# J% E gen vt=_n
, l1 B0 M% C& F, M; T
* u! Y( W) Z- Y% {9 a L tsset vt
* u" a% a* i% `4 V/ \# z8 a
. V0 L6 ?8 j8 H& X sum v5 [aw =avol]
2 w4 S( Y( a$ }; R+ ]
3 }. e! k' x, ~ gen amean=r(mean) in 15 Q2 O) B# m' e1 }
# V' U' L( z( f2 G
* 总加权平均值 amean8 s3 m( \# z! B
$ N" P3 T j- ^5 w- T' y
' C* w8 G- l* y# U' G keep in 1/240! E" e H7 ]: K& s ]
2 n4 ^6 f) p7 |( L5 {0 G! g
sum v5 [aw =avol]
: k/ N K2 {! Q2 s2 j7 ^9 V% X9 l' ~7 I7 _& @" v
gen mean240=r(mean) in 1
2 D- l" x" w7 \- y
( ^$ F% ^# x' y; n9 x5 X *240加权平均值 mean2409 Z9 D# q2 J& Y# y6 k3 s( N
4 I5 y' F, p* k; ?
set obs 500 ! A1 ^) w1 D: U, x4 W
5 r. m+ ]1 M5 M6 ]
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph1 d" g7 V" s5 f n0 m: G% W
/ w+ _& U$ ^) M
*240 kdensity(dx240 dy240)
( ~- U6 g# \: I* A" g ` 2 f) \! k& p" W0 R, g1 V
sum dy240! l6 \ b: I2 ?$ V" y% i7 Q, K
' u# }# ?% O" T% Z9 z gen yxis=r(max) in 1% q" J1 |8 g4 d9 o8 i- C4 q: a
$ t5 ?2 `) d& I3 A; l
gen yxis2=yxis/2) W3 i/ f" L! o' L+ U% A
( t. g6 V* [# b& B
*yxis# O6 }% i: ~1 D+ O& l( c& b
* @) v# N6 n7 q
gen dy240max=r(max)# n. I( j8 H/ h9 ?- J! a
. B+ e- C& I! l7 a gen dy240minp=r(min)
3 L# l; }5 ~' o$ b# h! ~7 A 5 f; [+ u! }3 W: i2 O+ W
gen vtt=_n
! k% }6 K' c, n$ O* n
: x! R8 U. q, \" r& A tsset vtt
8 W3 ]2 I! L1 z7 R- x/ u' j" e% r E: A+ ^$ x! T
gen ddy240=D1.dy240/D1.dx240; e* B# S. S! |. c4 R ~
; J# S) v/ ]& M( x sum ddy240
$ l- q0 u7 O/ B! g- S
h H& l1 s/ k: h( G8 ^ gen ddy240max=r(max)+ v5 u5 q G+ r- i% ?7 C7 J; L6 X
0 ^ c) N$ R+ ]6 K- s gen ddy240min=r(min)" P. l5 u4 {$ _1 e+ _6 \; h
! s4 m; F, p% y Z w5 {% H gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
9 _) |: s! Q8 d: [6 v2 N " }; x% ?( T" Q* m$ J: ?
sum ddy240g% w. B$ K7 ?8 ^) }# y% r/ F
4 [* J* B, Z7 o, L/ S4 Y
gen yxis3=r(min) in 1
# H3 ]" E: J& ~) u: I
1 m1 N% j% k7 M; k0 i6 R$ x gen yxis4=0 in 1! S' e; K+ I/ a2 p
, d W5 x* W* S; j# m$ K: z2 T9 n *ddy240g
. j5 z. `- y/ s2 e8 ]+ t4 ^
' `# x# }$ s5 Q0 G5 n5 F7 h ( B8 M& V2 Z8 c% o& s; t
preserve 5 B& c/ H' t) D
7 Z/ {0 n$ O, _8 b sum v5 [aw =avol], R r) Q9 U; D7 E$ y! B9 l
0 y( m" q, e$ H: O4 Q
keep if dx240<r(mean)8 s4 d+ @3 C" l: y1 m
6 z2 {% o% _5 p( n sum ddy240
/ U! [+ U4 j# ~' w$ D( z- |# a! ]) u & M% i) e/ J* \5 n2 r
if r(min)<0 {% d( F4 O" F- M3 D9 W8 P
; S+ [5 h" L8 u1 I$ M6 Y keep if ddy240<=0
4 g: Q, [5 [ w& ] * w7 `2 q1 T7 O2 p1 o
count7 c3 c! C$ V' k4 e
5 L a& k/ w2 [. D, K# d- }
if r(N)>2 {
/ [' Y5 x J" g3 ?' r8 h $ O3 g% Q; P8 m" ?5 y# T" V
pkexamine dx240 dy240
7 m" k3 f: c x2 h4 y 2 ]0 v6 Y) C0 @' Z
local tempminp=r(tomc)! v z7 p6 J+ C% ^$ d
restore
( P6 f4 n6 v# d% m }
- V# K4 C7 S# o% u, h& A , C Y% \! A+ k' w, a
else {, j' b) W8 y0 q8 P) {
& B$ r' N( }* u/ p5 u* { di "cannot find minp"
# _; D" ^" K8 r7 _2 F( x
+ L2 ?& l$ j" J restore / Q9 {. G/ Q6 ^9 ~. u3 Y* F; D
sum dx240
0 F$ [ r, [3 p local tempminp=r(mean)
8 p: h9 @1 O( ]3 e# | ( B. b0 V( d. X4 A3 H4 X/ O; n
}
5 @8 {) v$ E. H1 S+ w }/ h! S3 E2 T q. |
else {
: D" W6 n8 t- W5 v+ S" o2 O
# }6 V$ V P ^7 L; q9 G! R s9 } keep if ddy240<=r(min)
: C. v M3 c m" R* _
+ F5 U2 s9 _3 G) i& w4 q' N, Z sum dx240
" P, i1 v+ S5 ]$ b$ f, O: i 8 E* M0 V1 V; R( V8 b: O
local tempminp=r(min)
. u5 I, b& ~9 Q restore
7 l1 B3 P& i& g0 h: I7 c }
4 `' ]! }) w3 V( v$ n1 A$ p
. T6 N3 f; M; N. {( P f& o$ E& E& J+ F. K4 o# k$ k/ K
" H) i3 E9 G6 x4 U( z0 C$ p gen minp=`tempminp' in 1: f0 u) M9 N% q& v* y
*240 minp+ F! ^; N8 d' n: {, z# k2 K: a4 T4 e
, L. l8 R# p( p& z5 s& a
5 b3 f% W4 ~/ M
3 ]% N) m: Q Q- P( M* S" R& L
preserve . v7 a; C, W. G
0 Z6 h: C7 {0 t/ p L; k- I+ D6 s sum v5 [aw =avol]
) @' j/ d3 Y/ o8 y: C- t
. F# f9 i6 V h" l: d* v$ P keep if dx240>r(mean); W$ h! j8 w4 L% L S$ L
! K0 ?" E( r3 G7 u: T
sum ddy240, K1 P7 }/ k+ b+ Z
& s. X. C ]7 F- |9 K6 M& d- H if r(max)>0 {" J: @. ?. c6 W! k/ _
' h: F- T( }9 A6 J; d( a8 s! H
keep if ddy240>=0# P; z( b8 b: F( o. l1 }6 r: h
$ k* p0 a9 N5 |8 [7 U' g5 [$ j, A count
z: v- x( F3 _( M2 T3 g+ X
3 [" ?( K% b, \5 q4 ^+ g if r(N)>2 {
0 y4 M7 E+ d2 {/ M t8 { 7 \/ _+ J ]2 w8 f" O
pkexamine dx240 dy240
7 q3 J% r) Y7 b$ v. _ + o, I# M8 Z, ?3 m* }. k" K
local tempmaxp=r(tomc)
7 K6 p. K$ q: F) _0 B restore
% h% |; A e2 ], H7 E }9 t# L, H0 o4 c7 ]+ q
; F4 r; o I. X
( H5 C4 ^+ y2 V, g: c6 T+ S" |
else {) b% [* ]% o+ C
restore 2 p0 `, K7 g# ?2 y: X. B
di "cannot find maxp"
/ d2 [4 _( @+ M2 R" m' u ' f3 C0 J; b J/ m- y* S# c o
+ w: S5 M+ I! n2 W8 h sum dx240$ T( F% m3 h( N7 \7 _/ O; l* f
local tempmaxp=r(mean)& g: ~% T' }/ f" l, s
( V; R5 ~0 N) ~! F
}
: w, b9 L" ^ B7 A% B * H/ V* d0 Z/ H. m
}) z, I/ _# c' h4 j; W" U
6 |3 g2 O( j3 y* q s Q7 U
else {
! T% c, B% u$ B 9 Y7 v# U5 [$ g* m( q
keep if ddy240>=r(max)4 v' V3 u S0 W. j4 [
i, O* G) E8 u6 \- P8 W3 D sum dx2404 p$ I# }. J& T3 L, E8 t$ e
4 [( o( R+ N7 _7 t* x8 a local tempmaxp=r(max)
1 ^' k7 H( O& |/ ~! S. a! l restore
: ~9 A2 ^( g0 Q0 v6 T8 r }
; U- V; U+ i: ]( E( k, t; R
8 i% Z! j' A4 s0 D# q0 A9 d) [* B
, ?0 f9 G- a2 ]) P. Z/ J) d3 \9 {. |! _, R4 f
gen maxp=`tempmaxp' in 11 c* q# v$ }/ }: Z2 u
. o' _3 x4 n/ @* d b
*240maxp
* M' h: b# M4 D$ M1 s+ u
6 w* Q$ ^8 w8 C ?2 B) g
% d- y0 [. J. g8 _4 j/ ~0 w *-------------ddy240pminp左侧高峰值-----! ^( {- J `" }, G
2 `* e+ m; i1 G. k5 }2 s9 S preserve
J" R$ i+ Q- i
! f, C! F8 W2 q8 b; J% V keep if dx240<`tempminp'
: ], K. Y4 q+ I" }! Z: u # m5 ^# G( A" i8 l, T" ^
keep if ddy240>0' ~9 j7 { W' ?7 W# h! P
: E: C* ^5 s; Y9 X% Q* x6 D. ^6 w count0 Z" t/ R( d* J' [
. }' I$ N! \$ K( Y7 ?; d if r(N)>2 {
8 f8 p- x% j0 G+ X3 j & F5 G4 r% g* l. _
pkexamine dx240 ddy240
; R: i6 f# ]# v% [. O ( E* r* S2 F# ?- |- j6 D
local tempminphddy240=r(tomc) 2 V2 v6 N( p: h V+ w% _9 z
restore3 A# t7 Y# U% G; E% B; n
}" W* L1 L1 f% P! F
$ s# C2 z1 Y! [% Y/ q( y else {5 n" ~/ ~5 [2 N
restore - c0 X8 ]7 w R
di "cannot find pminphddy240"5 r( I* ^5 p* w& v6 W, S) [
. d. H7 i. O+ X- f
) y( a+ Y9 P+ ~8 p% [ sum dx240
; w3 _2 q, ]( p( c local tempminphddy240=r(mean)
G3 `3 {6 D# c) Z: N- s9 ]
3 P0 W& O ?+ I' X7 p/ w# ^: H+ k 9 Q: T' i4 p. V" B; _7 C [) v
}( Z# V" `3 n" J
! F7 U- e4 S! m+ } ) b2 k+ e% U, N3 Z( X
, _' z# {# t! i; L" C: K7 K. d7 ~: a$ J / @6 f- D9 ~" A3 Z7 f/ ^+ T% g
5 X) U2 I+ g! [" z4 E" N3 J
9 }- o( W# v$ u( H8 h' W
gen pminphddy240=`tempminphddy240' in 1
) }% _% h0 O1 T2 F- }( b0 g
* o- ~5 p3 M2 P
, p( f3 x+ g% {4 N *-------------ddy240pminp右侧低峰值 -----------------0 I* z3 n' Z5 q) K* c
preserve
/ k+ b6 U ]+ U & s% |; n+ {5 L- T C% ?6 w
keep if dx240>`tempminp'
! B, ]7 S3 W) F
J# u3 \# T( Y1 t) S5 P keep if dx240<`tempmaxp'2 a6 Q( x8 s* H7 K1 K* I; Q1 w
# m0 x, Q3 T; i m/ q( @3 T) m keep if ddy240<0
6 Q8 _/ g2 b. h" C7 K, W
% z- H* ?, O0 I" f6 z' m/ P gen temddy240=-ddy240
. ~3 S" l" z) J" X2 L& N 7 ]/ Y$ W* ^0 D& A. w
count X. r [1 N' C+ J
9 ~5 ?7 n5 e9 I: W
if r(N)>2 {2 x& C4 j7 x! m j5 _
% u3 i; @2 R! w4 K6 Y0 u pkexamine dx240 temddy240# R+ {" H% g+ q) f
- R& X' x( {" Y local tempminplddy240=r(tomc)
( B2 ~2 y: M1 z restore4 u0 R, ]% m7 `* D$ }
}) c# r/ u* I: Q) ~
' t- L: M8 h9 z7 \: S5 P3 p! T% |
else {
+ u- I1 G8 u% W; }0 G- V8 k / B! R0 \, S& U! {: G5 {9 T2 z' O
di "cannot find pminplddy240"
* o( k" L; ^1 F2 b4 }7 S restore
( x3 t& c k6 u5 p* d
# @; \& J6 h( F sum dx240 [; C0 p) f( c* v
local tempminplddy240=r(mean): N+ J- @ I8 l' G$ ?% C& l% _/ T
/ A7 u- L2 A T
1 ?- R; A3 g; N/ G/ O4 ? }: X+ M# j$ h) Y0 m
R# G2 Y* Q& a' u5 D) ?7 R9 B4 } 6 ]2 N3 F: l$ x( b0 ~
$ [: I, x6 L! b/ R3 b' ~ 1 ?' Q( E, Z/ B- g. `7 j
& x5 }9 U3 i# r4 w/ w gen pminplddy240=`tempminplddy240' in 1' T# p, x8 T% d
$ A3 o: ]6 D( M; r *-------------ddy240pmaxp左侧高峰值 -------------------
( ^9 m& L8 Q% c5 K9 | 2 F1 Q& K7 d" L5 P0 |: o S
preserve
# R8 v4 I: Z$ r. N+ Z
, x7 p" d5 p; O1 m keep if dx240>`tempminp'
+ s' K: R- ~) }4 X! w 8 Q$ p" M: L0 ]7 X9 Q l! a
keep if dx240<`tempmaxp'
: r/ ?8 _2 _/ I+ c* R7 B
# v7 _$ b& S$ k keep if ddy240>0
0 y. [) L5 p. A- C6 K count
4 ~% _8 v5 c7 L8 X3 ?0 @+ n$ R# a- A) H
+ d6 f7 \# y9 {, ~+ H if r(N)>2 {7 u$ {* l& T+ O' i' |. \" U- P/ ]
% A( u. T5 n( U* y
pkexamine dx240 ddy240 u0 g% t/ o `3 \3 a7 K8 v% E
( v* t2 c; A4 w, S
local tempmaxphddy240=r(tomc) 5 Z% C; d! J" c& M
2 o" B( e: b, _2 r# C" u restore
* e% K6 u \) {% k4 n }5 k' S- A! ]% W* j6 i7 ~
m/ I; d$ i% K6 L: q) k5 S" M else {
9 v9 J/ ~' m2 ~0 a1 j 8 l$ o: Q2 Z8 ]2 U
di "cannot find pmaxphddy240"
5 g* i! M; n' {* E restore
0 z5 Y) B) y$ P! U! q1 z
+ M+ i% V) S8 S* h! ~6 Q# G# W. f sum dx240
6 o5 D/ x9 o4 | Y2 @3 \% S local tempmaxphddy240=r(mean)
; `' r- e) @( Y3 M+ K7 C" J
! O+ b( ^; N4 b
( D3 Y$ N1 r& I! W }9 V6 [/ Q8 l' ~+ Y. }- ?' T/ q4 ~
, `5 i! h6 S0 C+ G& ^
) ~$ S3 |) H8 N1 C, m# }
: O; J/ C& ]+ B( E
* f) T$ @* |$ l0 C
$ N, @$ Q$ w- y/ V# N9 n
( o$ _6 m0 E8 p9 l8 M0 n. L9 b* [ gen pmaxphddy240=`tempmaxphddy240' in 17 M0 `" t b+ S, o! d9 [8 L' {
8 A5 `0 c: i# U# m; t. U1 J
: A& z9 [* \ e' ]4 ~, b
*-------------ddy240pmaxp右侧低峰值 -------------------# [. M* j& |& N& b
; v. s. P2 _; D* y3 N
preserve
. t" h6 {- Z. D $ t' n7 Y( Z. f4 H! ?) N
keep if dx240>`tempmaxp'9 C% C% K& e: |6 z/ n D& m/ w
0 C! y4 _- P! J9 S/ x O
gen temddy240=-ddy240
! ?0 m$ e/ O `
: R. J) m- @+ ?; ]: y- }4 m" h0 ? keep if temddy240>0' L/ _$ ~5 @# j! K. Z# ?$ f' x
# U" O# P$ @4 W: i& a2 k count- @8 `* m, w2 X) E& R
- g2 o. X- l* V9 P, |2 T- @) k if r(N)>2 {
. \$ ^7 K- U3 n# h9 b
5 |, t8 N$ L6 g8 X9 F; t pkexamine dx240 temddy240/ x! n7 o4 a1 b4 [$ { K- B s
9 `( i8 H% s z M" z& X4 w0 t
local tempmaxplddy240=r(tomc)
0 G; t8 b6 O& {8 f1 a, a restore/ r6 @# p: {6 P( v ], ?
}$ d: z" M% G* v- N( c* N" [: T& U
8 [, h C# Z$ T6 r else {
7 m7 Z; Z0 y: C) V9 R- e* \: u Q restore# O2 \1 R! V3 B" G
di "cannot find pmaxlhddy240"/ o6 G7 _* r2 J( E [
4 V$ L2 k& j1 c : g5 L9 x$ Y7 B) d3 M. I! n
sum dx240
5 H. P" }) b6 W5 I local tempmaxplddy240=r(mean) in 1- e% r/ P& m! a
7 [- Y0 Z1 o) y: D
- l1 w8 t& t! [5 ~) d! @ }5 d* V# k2 g# G- Z
4 e$ \3 F' Y& J) ?( P
, e' r) ]# D& K0 f
5 D* D0 H- d A" L) B0 ~9 A ( J1 X" ^; H: X& @5 N
2 Y' a4 m1 D! Q; s m% E4 q+ O& b
& V; r% U, X3 e0 e7 F' M6 w
gen pmaxplddy240=`tempmaxphddy240' in 1
' G; k/ c& `; s. S! u$ F6 ` # A2 v5 P7 H1 P
*-------------------------------------# b5 H4 M3 d: W/ D: Q; g
! z0 ^: k4 M$ R) r" R gen price5d=v5 in 1/20, M' C8 X k/ F" q3 A8 `
* }$ o- Y& ~) h: S: X. C: `, k
gen price5yy=_n in 1/202 f+ ]5 ^3 B J6 ]
! v/ z& R( b: s gen price5y=price5yy*(dy240max-dy240min)/20: n t- e9 z! T% L7 U7 t
2 w, |3 f! f. ?* W *price5y &price5d
3 y% p7 e1 y. @# v( V
( j6 x# ~% S2 t/ m1 U gen priceny=price5y in 10 M( R7 ~' T+ ~: E
# F0 ]# Q' v p) Z4 Y6 A
gen pricen=v5 in 1
& Y# s; B8 R- |$ N" A. w* c3 H2 k G
* I* ?% n+ D1 E8 v C8 Y
*priceny &pricen' N# u' j( ^) l5 o# C
$ [& D/ |8 Q9 u
7 I! }# g$ [ ?6 A *-------------------------graph------------------- b3 l: m4 s4 i% U3 D3 |) k
0 i: E3 S9 {* e& g$ J! l" \3 T
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)- n4 c$ ]3 }8 C* K4 Y# c
1 c9 d n% _5 D2 [
* ---------可选项目----------------------6 Y8 F8 r6 b5 c6 G
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))8 T$ M' v1 ?' M( E# {' e2 z: R. W* f% S# |
}
* \; o+ O( ]* R. }9 ^end- J: k9 D3 P G) b
|
|