|
maodeng 发表于 2013-1-28 13:13 ![]()
0 k1 Q2 ~: M$ v# e; i% p. hello 300236
! r, ?$ c" b ]' t+ D. v4 fstatement out of context
, J2 p# @: h" p6 F6 {" p8 t6 qr(119);
; r' }4 p. t- A5 C5 W6 X$ E抱歉,最近太忙了3 x9 h4 Q+ R4 T
7 p4 s- d; I8 D3 g7 U
300236 我用下面的程序试过,没问题8 M; i& g0 z" {1 w, ?
2 K4 u c1 O! p* t& L# T
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试" u+ Z- t9 `* |0 z {
; ?( U# v( r* F. B wcapture program drop hello* t9 A9 r9 \% n4 |) R
0 k2 t* A' D: R& H( [3 r) L- lprogram hello& Q$ B: ~ O' @
% G9 {7 g. E! y# a quietly {
2 |4 Q' p1 F$ i# {5 ]0 {" M3 a+ z
clear7 [: E) C4 T8 ^3 v
3 K$ k: x* B# t1 d" ^
cd D:\stock\test\source
: D# O. S5 Q" b$ U, J" {9 t* h8 B; r2 R: g5 N @5 b+ \8 }, `
insheet using `1'.txt0 Y) Y3 L4 c: b) j: u' q) R
2 z l: n" ^: c
keep if v5>0
& C" A; S9 |' q( {. x
4 p# {6 K3 I- f2 r; Y# ? gen vt=_n, t1 [- x5 V0 K; [) [+ L
* u; v9 O( |- L$ V; K, b8 @0 E
tsset vt
2 ]. i. }6 q! l Q8 o9 B) c7 ^0 H8 t! l- P
gen zf=D1.v5
2 \$ l$ _# @# z+ k; d$ g9 R5 i+ D; G! }! C' v. x8 i0 j- M- u
gsort -v1
# i4 t/ R( M& N; v+ Q
0 e) q2 m! s( t! ]/ ~! r% _3 ~ gen avol=v7/v5
N; ]% B, I# d4 E9 P+ }
" V6 k8 h; c3 `5 Z keep if avol>01 K7 ?% R& @$ g
) A3 n5 R& Y& _/ A5 L- a; s drop vt
0 D! O+ H W" j: e# o1 q! {
% r* S) `2 o' ^0 C+ `4 o: s gen vt=_n8 H" j; m+ r* s& D% c
' `( B2 B q) X K; `9 a9 | tsset vt$ o0 w# `3 x: ]- T* z- G* C
0 u) \+ G& N7 }* G# k+ w4 o5 p
sum v5 [aw =avol]) ?0 a. \! H* x! }& Y* L9 w
9 j4 @8 a1 F: [& R. x% X, n gen amean=r(mean) in 1
# C d1 B5 n2 e0 ~/ }7 [ ! m. C' a$ C: t% q. |
* 总加权平均值 amean
9 O/ B; b2 f, h# R. O
3 N$ L/ r& O* z 2 s: J ^- k! l) Z" z
keep in 1/240
' r' Z: w- B9 b6 c6 q" r1 G& }0 c' c- x' i m: A6 x% g
sum v5 [aw =avol]
! ?0 _! c: m& ~# U8 M# B3 o7 T3 y4 {" I8 n
gen mean240=r(mean) in 13 X& }' v5 h, r+ y
" C0 f. S) z- z8 {( e h *240加权平均值 mean240& R$ t4 R: t% J0 u. W
. Y/ F5 i9 h# S, q$ x set obs 500
# ?1 |6 s% O& ~. x7 @ + L. w! [( v& X9 B% q- e8 [
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph; v, j' I: C' d& ~( |: |
2 _) f; E [5 j: P" U/ _% P$ b J6 t
*240 kdensity(dx240 dy240)( g; W9 N6 P- ?, i7 l: N. r
* |" F, c5 q8 X" x) P; F5 e$ t
sum dy240
8 k n) q" C$ @; m# W" E. r
' O, z: i( L2 K/ @$ r- j gen yxis=r(max) in 1
( G: h0 |, D0 z+ S0 @! _
' H% v. P3 p+ Z0 a3 c gen yxis2=yxis/2- t% U( V, ^. D) ~$ r; N* T
* h9 ?4 }8 l8 c5 K3 h1 I *yxis
7 {5 p1 o3 V0 s5 n 8 h( P* ?; }7 M8 A' Z
gen dy240max=r(max)( k" o- x4 d S) `7 o
% B& p; [" [5 M: e5 [' N* e gen dy240minp=r(min), X1 g7 Y4 F9 u" W: A
- D. A9 }- j8 i& \; B- G
gen vtt=_n
% _" h- J% P" t- n1 l. R
4 v6 G7 r; L y4 v8 L tsset vtt
2 C/ R1 D! ^% \ R1 W, B4 _! D# O! f) Z( x! y9 U
gen ddy240=D1.dy240/D1.dx240
& l& o1 g9 I$ l
|/ a, Z5 K1 h sum ddy240
5 U( O3 p) {; p% l! G
+ z6 l5 q4 g* N0 e8 ?) Y, v3 k gen ddy240max=r(max) p; U% {- j2 T
" ^, ^/ d8 h/ z# s% p: x
gen ddy240min=r(min)" y' w+ R5 T- z+ g+ F
0 j* T9 E; ?7 |) h5 v4 w
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
5 W3 B& h* j3 T$ v- O) w6 @ $ Z( Z v% i* K9 _) ?
sum ddy240g- g: W0 ^6 S* T9 c4 j4 S% P2 ^$ p
) z4 F8 n: [! s) f
gen yxis3=r(min) in 18 E6 W' q$ R& Z) M, F
# ~& x; i( Z, Y8 k5 M gen yxis4=0 in 1- e5 E0 x! X. \! u8 r
2 a" X+ e& p6 u1 I, ^6 v7 z
*ddy240g # j: F" ?) I p' F; E0 k
0 f0 ?7 k; z3 t1 I- W9 a9 K3 G# B
- I$ {( B6 W) B6 Z$ R- O preserve * g, x# v* `* {9 s% E; j0 t5 D
: E5 b- r* T- t3 o4 v( s7 W8 U
sum v5 [aw =avol]6 a8 u, A! H9 g- H2 v* C
" w) G7 q1 C9 [' {% Q: N4 d) ] keep if dx240<r(mean)- W# @( M1 ^$ x( q7 \; t% |
$ E8 i' _& t, o% y$ V0 q
sum ddy240# w2 ?9 A2 W0 b$ d) D
; T% |% w% Q% w0 X( u if r(min)<0 {
; E& q1 j# z) o( M8 }
! d' k$ _" e" f& R: F! p* q keep if ddy240<=0
* k$ p" S! ~$ h, [- p: W+ M
6 h; `; Q3 d- ~, @: e# w- {1 F count2 e3 r; G& o5 I) ^
# z$ H. W' _& r$ I if r(N)>2 {3 q. E4 I1 A$ R3 \3 o' i
* u- ~ t5 D7 J% w( M
pkexamine dx240 dy240
+ x$ d4 d6 c! W# T" B: J
5 E/ o2 n8 a9 H- L0 d, P local tempminp=r(tomc)
+ V3 J- T' @" W restore f. \" ]7 y6 s* g
}
3 z- s8 Q x# ^( s: S8 k3 ~/ S - j# r; d% i) Q3 B$ o k
else {% b' K6 l5 B" e7 O; N
$ y1 |# j& Y0 [( r4 k( E2 B
di "cannot find minp"/ z9 o; b( j+ y% @$ F0 {7 W
+ A Z7 _, _( m! o
restore : a% J8 J; m8 Q* C
sum dx240
8 f1 t! c2 O0 L$ B" ^/ B$ a local tempminp=r(mean)5 }7 A4 ~3 P2 ?# f2 D/ g, t* s
, ~) {% B- t7 x" _1 {+ [ }
) d0 q6 K! J) F" V) {! | }
* g% o L3 S0 W else {! P3 ?& F* q; m, r
" N7 C4 D: y8 q* R* b# x
keep if ddy240<=r(min)
. Y% x7 B9 N t) Z) Y7 ^& j
\; [9 e' ?# @5 g6 N sum dx240
3 C- D: f2 | F K& H% T- I
8 c0 S2 }+ \8 M# v/ i: m local tempminp=r(min)
$ l3 D$ |% ~4 m |' e restore : r9 v; Y& w) M4 R& @
}
" T4 \- Y; G K w: z
4 }% i- u$ Z& e( q5 T! D7 x' h$ N! d! h4 v- ~; M, ]
- A7 D1 ~0 y. N. M, g gen minp=`tempminp' in 1& c- s4 I d; [ w
*240 minp
, B) X2 E& r. ]' G* d6 G9 {$ S
0 l( `* L- S3 X% Z) g2 M: ?: o4 ~& O; q7 K
. a3 l+ `# f4 J, z
preserve
1 V# M- ~- w3 `4 m
+ Q0 @) O0 G& q8 j5 u5 B6 N2 J sum v5 [aw =avol]7 F" T1 `! L0 r# s3 h9 n
' H5 K5 f1 m; R& m keep if dx240>r(mean)' c' n0 `' f% t5 U
5 Y9 c% ^1 L' N: T! e( f# e9 X5 I sum ddy240: B3 x: e1 U# U, b/ H
8 f" t: T* b) Q% l0 w6 g if r(max)>0 {
4 g5 e* o4 R0 |5 s0 ?
1 E$ Q8 H6 G; ?3 ]9 S d2 T keep if ddy240>=0: P2 J& V. ~3 n, E" v# U% g9 M
8 G3 Z' J" L( g6 P count
& q" F1 E9 i5 ^- P7 d5 O 6 P" U w7 f+ z) N5 e8 N$ ]7 Q3 Z
if r(N)>2 {# Z+ A5 e. e$ `2 Q* q8 v) K
$ x2 g. S; Q* z! u/ S pkexamine dx240 dy240
1 P( G; A; w. U1 x# M a J / f" y7 h* ]5 `7 w0 p* v3 y
local tempmaxp=r(tomc)
( q/ N- ]8 N0 S% c6 B+ d) M4 p restore
* k, S# v3 G' h1 t }
. _( m! A$ |$ A4 }4 `0 }: \- N : u" o: S5 W" J: Z
2 K H: U, v7 W! p7 |6 J3 g else {) ^; `; `: d: I, o5 i% ]3 @1 z
restore ; g! P" x8 k& Z6 A& A( c9 H
di "cannot find maxp"
( B# d5 v5 C& | " V( o% \& \! [; |+ b
4 L7 v+ g# g! r2 N. O5 H- z) a sum dx240# w' a) T9 D) I, S" k
local tempmaxp=r(mean)
* r( o) F+ y5 p; j# Y4 S) h7 G / V; T: `: _& E
}! N. k1 \$ u5 A' z9 |
: N& @: ~6 |/ u1 D3 G0 b
}; f2 v+ h8 R) V6 n, z
4 _$ x" @- A9 F. _& }8 l2 x$ x/ O else {+ {9 v4 P4 M) y. v8 x* B; {
$ Q. V1 n7 H6 A: N* m- {4 Z
keep if ddy240>=r(max)
* }3 a+ N3 I4 c/ R4 F
. I2 y5 p3 t# d/ `/ l$ s sum dx2407 r9 y+ _% j: X: g
( L& }$ q) z# r" u. x4 S local tempmaxp=r(max)
4 w8 ?* i; }* f8 G+ O restore ! G: _9 b: h& V Q, g7 B
}4 X. o$ E) m8 E& R+ U7 s) x" a) {
1 c) D4 k8 A5 q* y3 I
3 L" ?9 ^4 G1 L
0 Q/ L: h3 Q$ T9 s. T2 Z
; S' z4 J% {5 D6 e( M% M [; ~- K gen maxp=`tempmaxp' in 1" w% \: i; N. q5 T3 s, x: F/ i
$ `/ A1 Z0 m) a+ e' t
*240maxp
2 c& E6 z! O @
2 c1 i5 h ]7 Q2 j" i& A9 X " m+ _! `+ c/ |, i0 C8 D* q
*-------------ddy240pminp左侧高峰值-----$ ~- ?8 ?3 K7 q0 N) W
+ x$ s3 K3 e a- o preserve
- q9 q7 O; {* \6 `- W N- i
- @! r$ _" r2 h6 v keep if dx240<`tempminp'' W) o6 B# _' _% k; e% R0 ?* b
5 i5 j9 u- T: C* ?& z i" u
keep if ddy240>0
9 _* B5 J0 N. \/ @1 X
, [6 `6 [6 N& [/ J1 } count
1 P. l# d9 T% g+ s2 S! w# \ + h7 h/ z, `$ k0 O4 u
if r(N)>2 {
' B& J% j; j7 f & Q$ e7 L. {5 C, ~1 I0 R& }
pkexamine dx240 ddy240
% B3 p' q. ^8 }: \$ z1 q5 `* { ' o9 J* V2 v/ Z4 R7 e) @5 o
local tempminphddy240=r(tomc) ( @$ g0 ^8 i+ _0 s
restore
* b8 S0 d2 \ f0 K X; ?3 T }) z- R- [9 B5 h7 V
3 i) P: O! h: @- M* Q! d+ v
else {2 c; T# U: l0 W+ U/ J$ D# x
restore
( [3 B& c4 D! u: Q1 C di "cannot find pminphddy240"7 ~) r$ b u+ h8 z6 c- O5 b+ N
$ V/ i, Q1 j# R' T: z% p6 Z3 q B2 h
, r" e6 K" f; U9 c1 R sum dx240
& c" h _5 z* x5 e5 Z! b local tempminphddy240=r(mean)
, W* v/ N1 t+ h7 N0 b% h- i! r9 i
3 P5 {" T& E6 g# ^ 1 I, k$ O c8 ~5 t
}$ z6 e* d, b7 w$ w: {- C
/ \; G$ E5 J9 \
, d9 P# C( |; Q) Q4 I6 ~/ ~
~8 ]5 @$ Z/ D # p* B1 Z7 A3 Z$ ~- V1 ~: z
- g6 @* Q& A, q- r + `6 o# C3 c: N; I$ j. U
gen pminphddy240=`tempminphddy240' in 1
6 h4 k0 o3 V7 H6 ]# W 1 B4 J0 J4 N3 w' n" T* _2 \5 z2 s
* F- r# I. k+ S* j
*-------------ddy240pminp右侧低峰值 -----------------5 w. K/ Q+ r2 p3 I3 h
preserve
) @' F2 j9 P5 r$ F' | ; L# v: T3 ?0 j/ A" ^) h5 i
keep if dx240>`tempminp'5 v D( k8 \" y# Y7 L2 F% z! F
7 D/ K( M' `' B5 U: p) z7 i# O keep if dx240<`tempmaxp'
V' K' m) O7 Q , V' b( U5 t$ P
keep if ddy240<0
2 _% c+ d$ {6 {. H: P. f: q2 k
v g5 {$ O9 Y! {9 K( c. u gen temddy240=-ddy240
# S% C. m, }1 | 1 C- P+ n! c4 [' m7 ?. x b
count
6 m! F- [- z) b- X, g * M7 K' E( j" p1 q
if r(N)>2 {
: x; _, S& M6 L- j0 Y 4 F+ k2 g, P+ q
pkexamine dx240 temddy240
! ~" b! S5 T; k2 t3 t8 J % x+ u) t! i4 i7 w7 X' S2 Z7 A4 {
local tempminplddy240=r(tomc)
! @) O7 i" P( j6 C' M2 \ restore
! m6 W5 A+ x$ A7 C: S4 A }
* b, {7 ]7 I3 y: s
* i/ M4 { [$ e/ Y& z+ M else {
& n* C l S" |" j3 }" D* n
0 Q( Q- G# V# J2 P: f6 k- i di "cannot find pminplddy240"0 w. ?" W# {+ v( y) L E
restore$ p1 H% \ l7 j
% n2 J: c$ J1 t+ T S2 |% K
sum dx240
a4 ~+ z! i7 l7 w local tempminplddy240=r(mean)
) k1 {1 X, l ^8 j 3 B! U! _; o) \
# A6 o" K$ _, ]3 }8 a
}
6 @% o+ M* Z4 y5 P; U
9 Q& B; e/ ?2 b) S- m: S
9 O# V! V4 J" }2 t5 @/ a& |, a' u1 W3 q
$ a' [, u- d& M& P/ h
# W2 J3 K5 {4 n $ p& s4 U: C& X$ g) P
gen pminplddy240=`tempminplddy240' in 12 d( H/ |2 [7 x* \% ?7 ?% N* T' c' z" f
& u, ^0 p1 ?8 S# o+ h/ V *-------------ddy240pmaxp左侧高峰值 -------------------
" q# W( O7 c7 E& m& z , u) r$ d/ ^0 l3 l0 E+ }
preserve D1 o5 p+ P* e
% O. Z3 x9 d5 _6 Y) ?% G keep if dx240>`tempminp'- t1 ]+ w; V \) Z% h) ?
$ S8 |+ A/ g8 _8 d8 I( d keep if dx240<`tempmaxp') j9 h# V% c* D6 y0 B( x
5 q6 p5 j/ K$ N, `) p: ?- K' P/ T
keep if ddy240>0. h- \+ J# D6 |5 }- g# L
count
) D& Z& ^+ U* ^6 [& z) s . f4 a! \6 ` @6 n7 j. g
if r(N)>2 {2 E4 M) ]# P* d5 u: J
& @- y3 P) @2 F+ O pkexamine dx240 ddy2401 b( c! w; g: D" c: u: V
Z* l1 U& a$ B) q1 Q" J local tempmaxphddy240=r(tomc) - N y4 P0 }) Z2 Y: F6 l2 I) x
) \. S1 Q$ }* P$ d2 K* p restore
1 l: M2 Y6 z, W- \# e1 s. B" \ }
3 [, N# O9 m5 y |: ?3 n% @ b
6 F7 O7 {2 G- g0 C# [6 t$ p$ K else {
* {0 f& I- b/ K- N9 g 1 A$ c, r( V8 [- v6 I2 k v
di "cannot find pmaxphddy240"! B' F4 [1 Z# v% A9 t( x
restore% f) d2 a7 {3 a/ ]3 d) P2 }
) A7 Q9 J9 q+ q( k( \ sum dx240
; i4 f! j& u q r- D local tempmaxphddy240=r(mean)
8 W0 `2 r9 T; R6 ^8 Z# P) s1 { $ \) m+ U. F' b D7 \2 Y$ U
% v2 y1 V( g6 Y
}
; D( ?- w$ n4 L1 p9 i/ N # O7 D; E# V7 ?! w6 ]4 L( ?
# M+ D" m7 D! s! T1 ]" | 5 d& Y+ ]) A# O( ~- o
; _$ `- M% d9 Z8 T) N6 `
. Q% K( V9 p' u& _
! @1 k j: @* w' y- c gen pmaxphddy240=`tempmaxphddy240' in 1
/ |: D2 B4 P: W, r/ F
9 J- H5 S4 p, G n
9 R7 z3 o' P; x) Y) F7 ^8 y *-------------ddy240pmaxp右侧低峰值 -------------------
: O( e. K9 e3 P& r; X* k' @ 9 W* C' b$ q/ h$ ?# W
preserve
, d8 _9 G) S; d' y7 P4 ]. r" t / u, }( r6 [& T6 [
keep if dx240>`tempmaxp'6 N1 A( Z/ t% s" T
+ F. Y5 c8 T' ?. K5 @& O
gen temddy240=-ddy2401 W _7 y2 c4 F
1 i7 M5 b ~; B! @2 |2 y
keep if temddy240>0: M* L" X/ `8 g
/ J+ o3 _4 P' M! N% n count5 O! Z! U( n& M; l# M
* v+ C6 Y# O; [& h
if r(N)>2 {
. Q6 U& s3 a. f' g6 T
# V- Z) W7 M8 v5 ]4 F pkexamine dx240 temddy240
6 U9 ^, P( q" o$ `* N9 W 3 K3 }4 \% \1 Y+ M: m* z
local tempmaxplddy240=r(tomc) 6 n8 M+ O. r- i! F. g2 P- H
restore' J' a' I: p& F! s8 R6 _. H7 ? q' {
}' M' p% E1 { w/ v+ n, i0 ?
* N% q$ x* U* v& m* J; S else {& S: F( H( O5 F1 `: K& w: V- Y
restore
' x& z7 v$ s& V1 D di "cannot find pmaxlhddy240"2 I: u/ @) d1 q; z
w E) g$ O8 u 0 a8 ~. a# f+ q; L' v0 m
sum dx240) u* ?, s' ]! [: J) M& U' c! L5 J
local tempmaxplddy240=r(mean) in 1
0 F' q; z2 k* u- C: }9 y
0 O; p6 w) j9 b* r- m5 e7 ^
# k$ @% H# z5 b) u2 O6 F }# Z! W$ _. }# t* w! y% F
9 m i' A1 E8 R( [
/ a6 O* o; ]2 r _) g2 r, ^6 B + O7 A* O `+ {: _' Q* x# ]
/ I8 r/ ]3 Z# l0 l / D$ e, q- h: V1 W F& |- Q
! Y! z/ r$ e6 ~ gen pmaxplddy240=`tempmaxphddy240' in 1) Y2 d' w" Y( t8 k4 S, V
8 h1 p4 M) ~1 { *-------------------------------------
3 \9 S* @9 N" ]5 ~* R# R& z , Y5 W7 T% ]% A5 m0 R# v0 v7 Y0 y9 `6 D
gen price5d=v5 in 1/209 V0 ]/ ^0 h1 H; [
+ _! u. q# v u R r" ~ gen price5yy=_n in 1/20+ k3 ? r0 L( }
* h# j% c, p$ G% | gen price5y=price5yy*(dy240max-dy240min)/20; B2 \& p. m+ K0 r# p# t8 T! I
( n- z; w7 y1 B2 G
*price5y &price5d4 ?* N. B4 s) V+ n5 A7 I" r! P' D
0 U: `3 b. m+ w. y0 ~. w1 F s: t
gen priceny=price5y in 1% w4 r% V, S; t8 b8 z: T/ H
0 z6 G4 {, Q& {) c) A
gen pricen=v5 in 1
N* M1 E2 I6 j9 y( P1 a/ X8 }, B7 @- s2 k2 T! F
* e2 d/ B4 u5 b
*priceny &pricen/ |) w/ s) E2 ~. w# P+ ^: F) r9 |
1 g9 [8 `. P9 g2 p1 C$ _$ y
8 `4 U" F. a# D) u$ I
*-------------------------graph------------------
4 l+ ^* s$ G: p1 x+ t
% \0 j& n0 `5 _ P; H/ G5 g# p, S 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)
. l) |! H6 Y: z
- r2 f& R- O" ~) m1 {0 J6 `$ \* ---------可选项目----------------------# [% G; v" F; {" h [* R, Z
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))5 O8 H$ b4 j% E" L
}
) ?' t6 L4 F$ J! b: x4 \# jend5 B- w- b/ R7 y& h
|
|