|
|
maodeng 发表于 2013-1-28 13:13 " W7 h7 g5 D! O5 P
. hello 3002368 P" O" {+ w; G7 ], x2 A5 J" V" [
statement out of context7 u" h2 d9 @' d( Y( h. O
r(119);
+ n5 ^& I% A) q! |+ @0 }5 }7 O- F抱歉,最近太忙了8 h6 _; ~9 o- [$ l
8 ]3 r2 L9 [, I" J6 q300236 我用下面的程序试过,没问题
. @6 @- c' @( d7 F0 d0 n5 u5 P( \% h) f5 ]$ }
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试6 z! ]7 K" e/ h, f+ M
1 [0 K5 J* Z) h; C8 {$ Y9 Ocapture program drop hello
/ ?6 `2 U5 s0 c0 H4 [5 I
4 N8 C5 d. m7 Dprogram hello
/ Y4 m1 S1 Y {, `9 `/ A0 {
# Z$ T6 T8 n7 Y4 ? quietly {5 [6 V, a: m/ K- ?5 }% C2 W ]+ ?
4 M3 R9 I& d8 c
clear
; K$ W8 t! T& N' W, C0 [2 {4 q8 q
, e2 P1 c! k& N: N% q! Dcd D:\stock\test\source, f: t' K/ Y+ ^6 h: X) v9 b2 L
4 ?7 X2 ~: m' F' S$ Q/ Vinsheet using `1'.txt# d ^( z- U7 w; ~9 s
# \4 c0 o, m- U( W2 ~5 v keep if v5>0
7 i: Z" P/ {# c' |+ y
; o; w" I* p6 k" C& x gen vt=_n8 S- L% J4 {5 n. g- @3 ?$ d
# @ [, m& ^) Z! y tsset vt
4 S" ~2 ~! X9 c/ @3 r2 Q- m" J9 x7 _- ^/ n0 H
gen zf=D1.v51 y# d4 T9 L8 l6 y6 f
3 ]' N, G- ?" z1 P3 y gsort -v1
# x0 H* Y& P" e! p c) z: m4 {3 ?, i
# Y; ]* n% R+ j, L+ x3 n b gen avol=v7/v54 C) w3 J# i$ Z* h
- m" b3 [1 C, \. a4 J
keep if avol>0
$ R7 d: F |7 j$ b1 w . S) @% l0 g. `7 s
drop vt# v# [! M, q Y! T8 b, e
. y! m. r2 o$ b3 L3 ~% @ gen vt=_n/ Q7 r2 r5 S" P
, A5 a) q8 `/ F tsset vt
! |& B& R1 {! a" D' @ 2 z3 }2 {# p; V. `5 V7 o, a) z
sum v5 [aw =avol]
" y2 n/ y, q# d5 f( c9 j' m0 P! N( Q, h* @5 k/ T
gen amean=r(mean) in 1$ l! k2 ], ?4 m/ e1 V
, z, H$ x' S5 l1 i0 t
* 总加权平均值 amean
% `) u" W; { l: ?
8 t* U+ r( }, G* v/ O6 i+ f
, Z0 O& u( @5 F0 s; w* G keep in 1/240
w" g, Y% S) Q1 [ p8 L1 Z3 H8 d; w: ~+ m% s% T. j4 ?3 A
sum v5 [aw =avol]
) B* I# S' [4 Z$ `# H) C6 y3 }2 k& ^$ |6 f8 h0 Y
gen mean240=r(mean) in 1
1 \! ^0 M c. c1 a. _4 K
( g3 ?/ l- N& Q$ d! S% h *240加权平均值 mean2400 p3 L; V q! b% ?
& J" j; G2 _4 M set obs 500
( E* x2 f+ K: m- {
5 Q0 [ Y1 z* [ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
$ D* k4 y% o# o) A$ K( R
/ C0 ]( d/ h- o3 A2 L0 `* a) X *240 kdensity(dx240 dy240)
! O1 C8 B: B/ a' z4 z1 ] . L/ ~; z1 N: l4 L/ h
sum dy240
, l! m. ?) D1 q
1 e9 E/ n7 W! z u. T9 r J2 ?' t gen yxis=r(max) in 1
' n/ q7 h' e" t- V( h 5 i% m; E# }, K! R% W+ P: U1 H: V
gen yxis2=yxis/2
0 T$ L4 W' X2 T2 Z % p" _# i9 |2 F! A% V
*yxis4 t8 _# C% p* ~7 D4 x5 p- f
0 K5 }+ c- Z& ]% p
gen dy240max=r(max)2 S' `" S& \* O9 k- O2 ~! [$ E
) p; ?% x) S1 g3 ?
gen dy240minp=r(min)
: G& d* \9 I: N1 X
% k! x4 j* J3 K9 R) x. H/ z gen vtt=_n4 C5 S, M( l1 E/ Y' q
( f7 b& a' [6 D |
tsset vtt. ?$ L4 K* r$ g$ ?8 c
. h% m% t. V( b
gen ddy240=D1.dy240/D1.dx240
& l8 i. `; e6 X2 e# d) Y
& c; D. e% A9 ^2 G sum ddy2409 V& d3 E' c% g2 Q K/ t% E: x
) g8 G1 {1 i7 L. e2 J& f3 r gen ddy240max=r(max)) [2 Q: y/ g h4 n
' |1 m" f8 t# d7 y4 q gen ddy240min=r(min)5 `. |3 Y4 q( U r1 P! A
% w H, n. n, c) A9 R# r gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
" X4 R! d' \- w" c 3 R" Z O2 X/ k. X0 x
sum ddy240g# ~+ r. c6 k$ g; O7 R
- |* z/ g. D5 N6 B ~
gen yxis3=r(min) in 1
- q7 l2 g- b5 s: s& L
1 U' W; D7 o) Q$ E; L+ s5 Q gen yxis4=0 in 1% }4 |& f2 ?; Z, f$ @: `4 J
S5 V$ A3 d6 W5 Z+ f) m
*ddy240g
6 n% e2 y& Z; Y7 x3 r: j ; ~' I# L1 N. l( S) Z
$ p! ]2 h) f/ q' U4 U m preserve ( \% X3 n4 a- a
# U" ~6 G4 {' p6 {. O4 i# X/ u sum v5 [aw =avol], H. _+ l1 T# F) _
/ } u3 R4 l4 D2 b( c: T. I
keep if dx240<r(mean); d7 ]4 z* H ?& k) e
# Z& L: V+ x# _8 @# H: F" q. N+ l
sum ddy240
! S# l+ {, L; A4 o 1 x+ O) h: z2 B, D9 @; `" _
if r(min)<0 {
3 g) m Q5 x2 J" S: y9 C! B: T
0 f& V* H5 j9 x9 T* F keep if ddy240<=0' H, j z3 C! g( ^/ E4 x
- c2 c9 l1 x6 {) ]* W* d
count
4 P( R- Z. @& f
5 ^* U ], d0 ~" R if r(N)>2 {4 [) G! x& G. N7 r
9 i6 B2 G8 P8 M% A; _: w
pkexamine dx240 dy240
1 m4 ^6 i0 M1 u& ~2 L9 x' v
$ h$ a. z4 L% [ local tempminp=r(tomc)
2 h& ?% `3 ~- F# `; P q restore
7 F) H3 U6 \0 ~! c1 I& g }9 F, Y# U/ j0 J3 N- B/ ?/ a
8 @1 Y, o$ }# U" u+ ~+ K7 B* K else {
" `' l, K- u2 `4 i4 S 7 K8 A6 m+ A9 q/ H1 S
di "cannot find minp"" m, t5 n: A/ D* W4 l; R
5 ^) v# D; ^: u8 h. H
restore
, c$ V! K4 p6 ^. U! U# V sum dx240
' I! U; D* w! C; Q local tempminp=r(mean)
+ o- o. B4 M$ Y" i# |8 O/ `) p N- k- q9 b7 L3 I* C
}" U! \7 _0 g5 b/ r* x3 n
}
: |2 Y# U+ {3 p9 R9 b1 E/ k4 A else {
* C7 n- Z; m; r0 O; R
, O- k3 k* Y9 |9 v) }: p keep if ddy240<=r(min)* _ S1 U8 i% ]: n! S, j K, [
, D+ V$ `7 b7 K% |6 {) B$ D sum dx240
* v% ] {: F1 {* I* ?8 Z
. p, h7 L# @, {5 k9 t& C local tempminp=r(min)
d& a; o5 K: A! o2 n! Z0 u restore
/ j& s! |. y% G6 a, d }, P" p# q7 G0 G5 {3 U# D0 ^4 H3 U
7 i/ L+ j6 I9 q9 n. K" v* w+ v. t! V9 ?( g8 _' `8 }2 K+ F
[ u" v. S8 F
gen minp=`tempminp' in 1
0 X& a z( ]0 I) b- Q% L *240 minp+ `6 Y' @# T" t, `7 O
+ j& `' h5 t0 I3 A1 _) V j) m
# y7 z9 E: ~9 `$ i # P/ F) Y$ Q: v& y1 ~
preserve
5 B1 b$ _2 B$ u5 g0 w {' a
/ [% O* p2 A& A7 K) t sum v5 [aw =avol]
) f) x" N3 U) ^$ d9 j9 {
' |: J( a1 G- P" r/ j keep if dx240>r(mean)
7 w; a4 f+ V2 j. ] 1 q3 w5 J1 A P0 m
sum ddy240, ]/ u# o) h+ W. _9 |
& e1 B5 X5 M2 ?- k1 F, G$ \4 T if r(max)>0 {& w! z' A9 }5 _$ r/ P3 Q' R
G5 H. C S. p; R# N+ F6 | keep if ddy240>=0
. B1 s3 S$ U7 U$ e4 W% Z( {$ t
N' ?) ^% z! }( P! r+ b, {: o& W count
2 n5 \2 C; E& ]/ E# R. q4 `1 A" ^4 | & K8 ]/ D9 T* X" t$ Q0 h
if r(N)>2 {7 v: l* ^2 t/ N- U. [2 @
0 ], U- T) p L" N pkexamine dx240 dy2406 c% X8 \$ X7 R- j4 g
8 X9 S1 Z( b, h: G, V d0 Q/ }0 W local tempmaxp=r(tomc) ) k( o7 p+ M# M- z
restore / f) g* P: S* a( q! P7 L
}: N M, V% T8 F. f G
5 b$ |) E2 L$ W& c- D# K
2 }) e" N8 M) `: b else {
8 G. Z$ e5 J$ \4 Q; ]% ` restore
; a- F, w' I1 ~& p di "cannot find maxp", o2 y- g- [( J7 E. L6 B; Z! K
X0 n( B' N' B( m5 N0 w# B6 Z% v0 r
: `$ I) R3 J) X A sum dx2402 }5 ?" t. k$ i0 p# e6 S# w1 y
local tempmaxp=r(mean)
% U" ]0 W& N) e+ ]# ~+ |
' q$ a* g2 S* T" {1 g }% v; `1 R" O8 P) ^
) V! G j* C5 `" L }
6 L& j3 p4 z# V5 g; I ) j8 L' j! b/ } Y7 w- c+ F+ `: `
else {4 v" j( |$ B2 P9 r. ^/ ~0 v3 ~- B
- \0 U0 S* X" C( n7 g# l$ v& { keep if ddy240>=r(max)
) h) h n9 i# X H5 \) B
$ P9 b8 }* W+ _) a% s sum dx2406 R& E/ z2 V, V9 u: ^
( n z5 [7 Q# ^4 H# | local tempmaxp=r(max)
7 b1 D! I6 v- r1 d4 ~0 ?$ {$ Y restore
: r% [1 |$ J+ m$ N& B }
! g+ @) C) d0 m" P/ D& D 6 Z: L/ \: g0 g* m e+ j/ [! y
" ?( `7 y3 j* [# h. E! U" H' n
; B8 P& p' }6 z0 l- O7 Y2 W
" o" x/ _+ q- R) b
gen maxp=`tempmaxp' in 1
) b4 ]2 T, w* c$ W5 `
! X3 W) g6 N$ Y |# C- x* F *240maxp
9 [+ h4 G/ H" U7 P$ r 4 @$ H# A' M+ H4 h1 X9 W2 j- l
" O9 K) ?. Z, ^9 u5 i *-------------ddy240pminp左侧高峰值-----
% h; @6 X U7 H2 L8 h( g" h % N/ Z' X6 o4 o/ T
preserve
' Q. V. x3 H8 V* D/ r 6 x C9 L5 y8 p ?
keep if dx240<`tempminp'
3 r- H4 v! Y4 R3 ~9 u# X
) v4 O2 A, M1 ~" K# U/ n+ u keep if ddy240>0
8 l; Y, R! N. q! @9 R! m( U3 I' } 1 Y$ F7 h) b! q1 H$ \1 g% q9 ?
count6 L; Q& K' ^( a: ]* ]9 |9 X! B
7 H6 B4 r; J) y9 h& p$ M/ f if r(N)>2 {
( r- Q7 U* P; |8 M H7 ?" p9 Y( M
2 f* g. U( j+ t/ o& z pkexamine dx240 ddy240
* E6 e7 j+ |; E; E' B
l3 r F( F3 d( b6 W% e+ M local tempminphddy240=r(tomc)
2 w f5 I, m: @ restore! N2 N& |$ g& X" n
}/ @7 g/ B; r7 Z7 ?5 L- f6 H1 l0 n
$ @. o) I8 D6 _
else {) R4 ]+ W! D- d; I) Z' w8 ?+ B7 Z
restore 1 f* J3 a/ B+ r0 y! t6 P& E/ o
di "cannot find pminphddy240"9 E1 J- ^$ V" S2 F' l: R4 z
6 O8 M) y) ^% O. O0 @
5 ]& A4 ^) O4 c, T' p9 }' E+ h
sum dx240
5 N- [" V' ^4 i. k local tempminphddy240=r(mean)
7 s. ~3 |( ^+ }' D0 q ! O4 k$ s+ x! D: w9 G' O+ R' L
* L l) Z1 J7 v$ z" H6 F6 K }, R. e" @" W( I6 M+ `6 P7 z; c
5 K, A4 }7 X1 @; d$ g* E T
( z6 A u; |% O e/ y# e0 v0 |
k* l) @* h: L9 }) H' C ) y# V! n! S' z# e$ s5 z
$ g7 o" ^+ H" {5 W7 u# D( s5 E 3 R& f" I) k9 U. O3 ]1 k
gen pminphddy240=`tempminphddy240' in 17 c3 K) r# e7 j
" a( S) ?1 k; K6 o/ \5 A
( W" P0 z" i2 _3 |2 Z6 r
*-------------ddy240pminp右侧低峰值 -----------------" @9 O' a3 U" ]9 S& r
preserve ( r9 e2 T) T+ V1 s1 U' R: U
8 |! o" ~- h+ A" N g' L) |
keep if dx240>`tempminp'/ r. X& V2 H( R) C7 X
( n+ u: L6 U" J0 ~% j: f' ~ keep if dx240<`tempmaxp'
5 i$ c! g2 h. v8 d
\0 X7 S# } s1 d* e0 k keep if ddy240<0- I2 f6 R8 Y- p5 D3 Z
! u" d* b5 f; x b' h% \ gen temddy240=-ddy240
: G$ k# i e" J- V* w
, M0 X6 A/ D0 B" e* Z count5 g" q- d G/ k2 V; a- p% Q
. y& ?, K, {' J9 w& J- o
if r(N)>2 {
9 K7 {3 L" m% V2 ]# A" j 6 R5 d3 \, Z, N% p1 {. }
pkexamine dx240 temddy240; g: s! q4 ~7 Y
* n/ j2 G1 K9 t
local tempminplddy240=r(tomc)3 r& h/ u0 g! t
restore
* W! s0 x/ O! B) Y }' h6 s, S0 p% R- ]
' t6 s% L3 m, u9 s3 k0 Q else {& V4 _7 q8 o# \& `8 V) s9 q
2 u9 r! s, q1 a/ h5 P4 j di "cannot find pminplddy240"7 j: o% ~6 z. V. b9 Y0 e
restore
- S% |7 O3 a; G0 @/ z% @3 Y6 R4 D8 z ( M$ O( {9 e: a3 o: X5 g
sum dx240) b4 ?+ ?7 h# T; @) r' F( H
local tempminplddy240=r(mean)- H: `+ |0 O i
) z q+ e P/ f3 \
7 w% p G& {( w; ] }
) t( \: }8 G; F0 o% W 9 N7 ^6 S" B2 K8 B( L7 U, g" w2 P0 ]
' F9 ] |. S# f 0 [5 @1 ?' U& E6 h% U
% z& R6 l. k, @0 M9 I( ^ , y1 Q' m: K0 [8 `
gen pminplddy240=`tempminplddy240' in 1
: C. U; J( L( [3 q3 {- O - T5 Y* T3 q5 e
*-------------ddy240pmaxp左侧高峰值 -------------------
- T+ D. V) ~) c+ m+ e5 V
% Z/ g* u. l) y U0 K9 n- A preserve 5 Y7 ?; S% c2 `; } G
! m# o6 c8 |) F
keep if dx240>`tempminp'* C5 h& c. [: E p
8 w( m+ [% a* p5 e5 _( t+ H
keep if dx240<`tempmaxp'
; T% ~0 }8 X1 `" Z
- H% p+ d: c+ y, ^/ x1 I( [& G keep if ddy240>0$ K2 P0 G7 Z3 u9 f% P8 G1 u
count A$ {- Z; I- S/ }
6 R0 X; U' F" v4 F5 e' o
if r(N)>2 {
- m8 \3 U7 m1 B$ e) a R+ }# q0 D ; @4 k! [9 H7 Y8 T6 Y
pkexamine dx240 ddy240; d7 c0 y, n0 G. S6 Z4 e
4 q6 p+ f% \1 A% n y- q S local tempmaxphddy240=r(tomc)
- V# n1 o2 j+ x6 K& c% w $ P/ m/ H# y( E1 l! q: j# Q2 m8 {
restore# Q4 N& K9 j( K1 g
}7 d. U6 E( A# ?1 U3 {/ J6 {* r
, r, q# n9 q. z A6 I# K; h$ p else {
) V( j& W- _1 E/ V/ z
. P) Y% O% ~9 C8 f0 a+ I di "cannot find pmaxphddy240"
& p% k9 i% Z$ R+ y% q7 D5 M' ` restore, |$ k! }* ~( F/ |
& O+ H8 W: ]+ G" P u$ Z sum dx240- {) |& a8 L# O7 w- L2 g# Q5 ?+ a
local tempmaxphddy240=r(mean)
. J5 P/ r* F$ i" t. L. z 2 S* Z6 q5 w G; m- Z" B/ L
$ e5 M# w9 _+ z( C/ ~3 w, j3 b }5 s. | M* W$ X5 @, T- n
. s7 }, [% I' D9 @9 ?& M
- L8 a' c- J( S5 `: ] ! U6 Z1 M( \" ?/ Y& L( Z
4 i% v9 k; ?2 b
( o# ?+ o( K2 j; j- ~, b. D5 t/ d # }& K. |: K9 g1 ^" ?
gen pmaxphddy240=`tempmaxphddy240' in 1! N+ i* P, ]1 o0 u
, |" Z9 S6 Q; M8 |" R! g# E- T
$ H) S5 g9 n3 h7 U8 |# r* E *-------------ddy240pmaxp右侧低峰值 -------------------5 l( ]% c5 E: f
/ }0 X8 \. J8 V; o* l
preserve 9 y+ n2 J6 v) d, u
# L7 n4 `* T Q' B/ b* H) B* ^
keep if dx240>`tempmaxp'
. X" X, t- a- h
6 N# C t, h* B5 e3 \$ H gen temddy240=-ddy240
8 o0 l0 Y ]: k" q: ~
2 C: ?. u% ^, [ ] keep if temddy240>04 c" e4 s5 y& B1 M: } q4 W2 b
9 Q2 } g1 n6 I2 `: u9 V
count
& |6 Q' ?( E" h1 t- W1 F; i( l$ i8 h 5 \! U2 q& h5 ^
if r(N)>2 {
% f; m! ^! A8 ]( m0 g. a0 W ; W; M) E9 r; p& O7 p
pkexamine dx240 temddy240( c/ }9 K( p6 {7 {7 O8 V0 O$ a: n
8 L3 q8 j8 b. K4 }! m$ m local tempmaxplddy240=r(tomc) ' }) a! W) S# C
restore6 ?% T: ?0 K% v' b6 U; m. ]. H- C3 X
}+ i/ i0 z7 p. p6 V: b0 b" \1 D
8 Z' |1 \, i2 g- L6 Q; S2 a else {
) s3 D. u+ O* t) L1 p restore d4 ~9 B g7 | V. J; S
di "cannot find pmaxlhddy240"- r/ V6 Q' u! l8 ]- t: ^
* w; l7 Z; e6 R0 ~ Z W$ p
3 G* d2 ^3 a3 a9 U5 Z. o sum dx240
( z# `( B9 K( M: Y local tempmaxplddy240=r(mean) in 1
- \, J: R! E5 v& ^+ J4 G4 @2 I
( b! u5 a+ t; W" V3 H1 |0 P 7 L. ~1 u' c1 W9 D
}
- Z4 y3 E3 b4 K3 g; B7 E- ^
, a; q! @1 R- m9 U4 z " [/ ^3 t' A" E$ Q+ C) R, J; ]
; {# o' b* B; I3 D( ] 9 j3 Z [$ l1 f) T" p- N4 j
. {% }; Q( k$ R u% i% W 8 ?+ k; s( d1 c; F
gen pmaxplddy240=`tempmaxphddy240' in 1
; ^9 M5 C7 _" ^
( n. D! j0 u' k; U+ e" k( a *-------------------------------------
7 C* D( _/ p& j! z$ Q . Q# q C/ e: X( _/ h
gen price5d=v5 in 1/20) ~+ W0 l$ f0 O9 k: s* x
3 o G7 z+ [; W5 C& n. t% X8 T2 ^ h
gen price5yy=_n in 1/20
5 T4 Q2 F8 ^( L' O
& k5 p0 ?" y/ j/ { gen price5y=price5yy*(dy240max-dy240min)/20
; P1 Q* z" r' z# N& I+ i2 s ( c) i a1 X: f2 I( o4 u
*price5y &price5d( s# y& K0 ~8 `6 P: ?3 s
% L' A T: s C/ t' U' Y3 M gen priceny=price5y in 1
% N+ I7 K" }. B3 g8 H! i
0 |* m! T" N; w5 r7 w, ~+ K gen pricen=v5 in 1& M5 H: T% B- X1 m8 j& P T
2 G7 }/ [; I- g" N3 x! a& V T P' s! b8 R: Y( M9 l: q0 g X
*priceny &pricen' U2 f5 l8 L% P; x5 {* ]
- G7 W- w9 v- p3 Z6 W5 A
% k6 B9 T6 r+ U6 _, m* S
*-------------------------graph------------------
) b& S, x2 R7 \% G8 z
' e1 I) M1 Y# T" n 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)* J5 o6 M1 J6 c1 s7 O! f) Y+ c+ i
& R2 S8 P) |) l3 | V
* ---------可选项目----------------------; O! m2 X2 F: G! y" L
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
w$ o; s$ v+ k2 T$ D( W}; l3 w6 S1 }! a4 x" M! Q: }! Q
end
# A7 Z, l: b3 [+ G0 U, t; ?3 O |
|