|
maodeng 发表于 2013-1-28 13:13 1 a' v; H( l, y! L5 U/ w
. hello 3002360 N( c. m+ ~6 E7 Z8 x( }( W9 _
statement out of context, F* h' v/ h% p+ J& |
r(119); - H1 O1 [: F! S/ v4 W7 r
抱歉,最近太忙了7 y& ]) [* c3 H. k# O& x! D
0 u: d! k% B: t% [! C0 o4 f
300236 我用下面的程序试过,没问题
8 i! p$ V m0 b- w) p# e* e2 y2 P4 X8 M- m
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试9 V) b, v! o8 O* \2 e! u/ v
( U) B4 |! x) v6 ?! X' s
capture program drop hello B. C1 F3 @3 i5 ~3 m) m w
) k" A/ G! D7 uprogram hello
7 z1 H( X5 b; o1 K
6 x& [8 _) \9 F! P& V! I, V quietly {1 K. m& b1 `4 Z3 m& z
/ |9 K9 o, Y0 c8 x wclear; s' Q9 b* [& W# Z4 [2 C
9 A9 P! P/ P% J4 wcd D:\stock\test\source. D" j8 a/ G* K: [
- }8 M5 P5 e" y, e8 H9 Cinsheet using `1'.txt
4 M! M2 h d( J0 u
. a6 Y8 w$ B7 V# M2 H. v" Y* ? keep if v5>0( B/ D4 O! V: r8 s. @
5 Y6 f% D1 J5 E$ I; U gen vt=_n
. k1 E* }; s4 f
1 X6 {5 r# @1 ^& C U% k$ } tsset vt
R- B7 N0 ~* _! ^7 B0 }, I5 f
gen zf=D1.v5) P A; E& f% r j' A( r+ d# P
$ v$ _* ~* w. Q! ^: k. w
gsort -v13 V: R; W. {5 V, s
' z9 p4 h5 o3 _, ?8 d gen avol=v7/v5
6 ]( g) }1 U7 ^7 u9 g* ~8 O! |
# P; s4 p0 F) z$ N$ e6 q0 N keep if avol>0& q$ |" C% |5 S0 |/ m" y
- [ |, e1 t! Z8 i drop vt% M$ R% x/ B! p2 z1 d
4 V7 K$ l) }- m6 o gen vt=_n
. r6 }$ o5 j( T( j; c: W 8 `* A2 W8 V) A
tsset vt6 e5 N9 b: Y% s# k, p8 {; x
$ [) D1 M3 q" D" ~1 `& W% c
sum v5 [aw =avol]
* q J0 |* W! k, J; H& z5 F3 ?3 ]9 B8 y+ _
gen amean=r(mean) in 14 W& L) g# e! {; G" s5 L
, }0 `9 _( I* T * 总加权平均值 amean$ _+ }+ F0 T: M! o; [
, E0 _- ^5 \" P
, a1 }! }! @* u1 X
keep in 1/240
( i( T7 i D: g2 y) b2 F+ \ g8 `0 ~
sum v5 [aw =avol]
' \, W9 |; A. s7 Z5 C& F1 `5 I5 F! G% Q) Y8 l1 j; _$ {/ {
gen mean240=r(mean) in 1
/ Q$ Q) K, {, j& e$ H# |, w
' {) T! r1 W6 @ *240加权平均值 mean240* a' I1 n3 y8 T" v
9 x+ W3 v- S E' d
set obs 500 7 G5 W* M9 Y6 G' V: F" O
8 M8 `# U5 d ~$ m$ K# V; E
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
~$ c! T9 D# A, c2 v9 f! w9 ?, i 7 U# ~' t# V g! D1 x; L6 f" T
*240 kdensity(dx240 dy240)
- b; K5 p4 k1 Z
) v: R$ |& |5 f& w sum dy240$ t) m, p0 c1 X. @4 ?, a
% ^* [" d1 m4 b4 K) p* Q- ~ gen yxis=r(max) in 1
5 Q8 S2 S3 E, D2 v. w" G, f 8 K2 X/ V9 m( |+ \6 g+ T# S
gen yxis2=yxis/2
/ y# ^+ i+ D" f1 A7 Z5 E% a - ~$ B( @- N/ g4 Z* y- v( w- @
*yxis
' ^: o- ~7 t( R+ `' P E
$ ?+ o5 t+ t7 i3 k7 \ gen dy240max=r(max)( l" m8 w% n6 Q: `6 |
* u+ E0 S+ k7 ?4 e5 w5 P: Y
gen dy240minp=r(min)
4 `3 t8 I. |- f- t0 i5 _
' a9 c% i, Z4 R; ^5 a2 ?& T: x& I gen vtt=_n+ P! w3 l+ a' V7 I% S3 J1 T- |
2 p z, T9 v0 N' @, s9 V
tsset vtt
3 }$ x6 V' a0 v7 ]: h. E8 [4 |
' q4 @- r# Z. m& \/ R gen ddy240=D1.dy240/D1.dx240
) \- C, h4 ^& |! s9 t l
( o4 i* ]8 `( J sum ddy2401 ^! s( p* s5 g- H- N' A" `2 |
/ `" o# p" i; Z gen ddy240max=r(max)/ @2 I# y& s! e3 I' U
- m) R N- _% d/ O/ h; f
gen ddy240min=r(min)
( B) h$ B. ~) U$ l 3 z; {" n/ T5 i4 l
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)" c F/ C. u' d- J9 T9 g* V
! R( u6 C, W0 v, M. S; ]
sum ddy240g
4 `# K- O4 U1 {- n0 D/ y
' S) F# \6 H, d |% {4 ] gen yxis3=r(min) in 1
3 h8 e v) n$ H+ d, b4 e4 `! u3 { % Y, S Z [8 w
gen yxis4=0 in 15 Q- X% @9 f3 X$ i3 `# T; ?3 z" I
% J( N6 S: W+ @4 c
*ddy240g
& d/ S5 p' K s! X2 M$ _) @! E # w, o4 [1 g1 {$ }; U, o( C# d
: {# A3 U6 ]! c0 k( L/ K1 p5 [& q/ d preserve
% S3 ?1 |$ B, @' C4 Z+ E$ v
" |1 t7 p9 b) R, g% P( x/ L, } sum v5 [aw =avol]; g8 V& m4 L7 Z) Z1 X- N
, Y) l8 ~' I( M' o% b+ P
keep if dx240<r(mean)
, V, Y) p) _- R+ i& S" m & r1 z2 z; ]/ R( C! D. d; j+ e
sum ddy240" o. b0 D! ?5 D& a1 i' U, u' r7 {
% d G x( W" y: Q
if r(min)<0 {
; V6 m( o3 E8 e7 [
* |0 Z4 W' ^3 _7 K2 v7 k0 S( r keep if ddy240<=0
3 w. k! f4 p) r- a
0 O- j# z" h6 N* r- A$ j/ A5 j count
& ]* I+ S/ y0 ~' _
8 G$ p- N% {2 m L& } if r(N)>2 {
( S" `# N' p2 Z+ a) ?% a8 z6 J# p R6 k
4 `2 i" k1 `; L5 b# L V# L pkexamine dx240 dy240
- ?& l# o, ?7 u8 N ) b N+ Z: o5 K# ~ C2 S
local tempminp=r(tomc)3 b" ~: o8 R9 a8 r6 ?
restore # ]: ~3 j3 \$ s+ P
}
0 e p9 e9 G9 |
/ O# e% Y9 l+ L5 h9 E& m4 j% r" K else {
, k! r3 A" G; n, t% ?4 a
: m& n+ {' {% E% N, D% U* t7 w% v di "cannot find minp"
/ v# _3 m" x% \
" b b2 V( y. Q* b5 Y0 t7 f @ g restore
- M) }) w( y: i3 t sum dx240
) x( F, t6 x' E& [ local tempminp=r(mean)
0 {. M# o& K& ?6 _9 W4 r" g
% B: o5 [# Y9 V: i* c5 Y4 |: I d( ~ }7 V- c# e( |' k' }1 R
}, }6 b% G4 W; c+ f1 V: F2 n
else {
$ M7 k' }6 i; E7 S4 G' G2 I ! {2 g5 B3 k4 ?0 M: }
keep if ddy240<=r(min)4 }) N* H7 a/ |
/ {$ E1 t3 ]# ] sum dx240& Q: X; P$ k$ \ p2 X' A
4 H q8 R! \' B% B" @ local tempminp=r(min)
* Y. n: _# U) ]/ t2 D restore
1 C7 ]& B9 e- V' l& F }
# }1 k7 u! ^ k6 ^3 t& Y' }1 r0 T* j c# ?
7 H8 y) H0 o% N8 y6 f: F1 m; m% Z2 q1 R+ Q- N
gen minp=`tempminp' in 1) }9 f7 A, r9 v' [3 v- |
*240 minp$ |% f" J: Z& g$ @8 C8 E
: H+ y1 w. R% F- S9 n/ U' N
' H6 k+ I& i5 M4 c# p; R! h3 w7 |, J8 ^
" r/ ?% C4 E5 ]8 A: F+ M j$ x, I preserve
; G6 p, `( m, i3 c: ?
m& M5 c+ X: j% z sum v5 [aw =avol]& r+ |& o1 j. q: ^
9 E6 m& e( W& v& ^; \4 v! ]( v7 j keep if dx240>r(mean)" \+ P! |" }1 K6 N( B4 r8 L! n
8 z8 s$ d/ f- P% B sum ddy240
# v S' O5 D9 n6 C
5 H5 K6 j3 W# W9 B if r(max)>0 {
. ?" @! Y# | O/ P/ M1 Y; @ % I+ c0 b9 c& o2 @
keep if ddy240>=01 R1 S8 \! L( H N4 `
& M% g1 j& Y* [! G( a0 j7 b( [' Z
count$ i$ d' F( d: s) M5 e, F
* S. V# ? D0 B3 S9 K. o
if r(N)>2 {
: m% T9 P M! [1 S5 y 5 C; C9 \5 I' s
pkexamine dx240 dy240
% ^9 ~. V+ `4 r ' d8 C/ n9 v( t. C& S) |
local tempmaxp=r(tomc) 8 J. U( T; ^2 E. q6 o I, o
restore / e- K' ~5 R' Y, P. v0 a g
}4 w2 `2 U k' U" [" f% D. r: X
* r& p# l1 v& J; N- C/ Y+ \! ?
- x1 y! N. S, i' Y8 N, r! a
else {0 g2 C2 N. y6 b& C
restore
3 W/ y: c% `% O3 X1 G di "cannot find maxp"
* g- M2 G0 S0 W! y: ^ - s0 T9 X/ X2 F( B! ?9 E7 f- a
7 [! D# ]+ b1 L1 l sum dx240" ~6 r" E0 ^. b! k6 Z P
local tempmaxp=r(mean)
+ u5 j! ] @- f + l) ?# G; `; S! s* U2 b7 n* A0 j
}
: t, l& G( a6 N7 Y / }% k! S. B! J- W; V
}+ v& z, b) D2 r0 n
1 `7 D" L" O1 B* d else {
' x4 u: `9 p+ C0 T) a / _8 P. H q! o0 Q+ K
keep if ddy240>=r(max)
5 {: ~( V3 g# o& T. p2 [ 6 S% Y$ e4 L3 ^7 K
sum dx240& Z. T/ c! z) q. o7 S! k
8 q* I( o# a& b% _" L2 a
local tempmaxp=r(max)
+ s7 b2 A3 S0 K; Q restore 3 t4 {5 M2 H# \% P9 \ X$ U9 t
}4 Z0 V- |. n2 K3 w1 c1 ^
( y; M) x2 m! x! y
I( L' z6 ?3 h' x- ?& b % a. B/ s9 S, {+ m% V) |
. M- K }2 j- u9 K$ ]- g# w# V* e gen maxp=`tempmaxp' in 16 h% Y+ w6 R% k# r/ u& s
4 X0 x9 f0 V3 n Z( c) b0 u9 W
*240maxp
9 j4 f3 P4 ?4 u) z1 s 6 D# K( q# a1 p+ I F
* U2 D) M' p9 \# Z, i5 B: _2 q. G' _ *-------------ddy240pminp左侧高峰值-----9 b7 d9 V3 f* s1 u+ ?2 D: N
' a2 p9 Z: p; u( p4 L preserve
1 \; z. N1 q1 J1 E0 x8 n5 G
" d, L0 ~5 L1 }, }; Z5 O o, ?/ N keep if dx240<`tempminp'
+ \/ o3 w- l! ^$ W& k. N. y
2 F/ C7 V8 {! c" ?4 z: k- C keep if ddy240>03 v# E/ b! [3 Y; j
0 T' @! Q2 U2 d8 C
count/ M, `+ ^4 q: c; [/ J
$ y9 j" I% v2 @& r" ?4 H8 |! E0 {
if r(N)>2 {* M2 q! B. \; ^$ J
4 x) f. w; N( r" b, l7 ^! t pkexamine dx240 ddy240
* o7 U# S/ e; R4 G
' L+ D$ l' M' l/ F% p' N0 ^5 R. d& i# E local tempminphddy240=r(tomc)
% Z% P* Z0 z H! f* b restore
/ V. H1 p9 } j7 ?) H' ^( _ }: B+ ]! l: y- G( Q) T( L
% X5 K# b. l/ U- A1 m else {# N! S7 H+ Y' f; R+ X. @
restore ) g- L9 O$ ?" t
di "cannot find pminphddy240"
1 J0 K! F! B3 i+ c& F
! h" c" ^! b5 F: i+ U
" w2 ]" I( R+ } sum dx240
& [5 a- |$ g, A! V local tempminphddy240=r(mean)
! D C) M, H4 Z6 ~% r* i/ o * x f9 o/ v/ q( ]; w! V
8 }2 q+ x, r/ T; R }/ F/ {, W5 K: w3 ]1 F: h" ^0 x7 Y8 {
9 u7 `. a& K, b6 H6 O
* s( w3 R3 N; N2 t _; J0 n" N! R( f1 a8 n: n$ }
8 ]: B7 K3 A) ^+ ^7 A
- j4 _# B1 j$ r; B
, q0 r6 A' M1 }# u# |2 q: [5 W' { gen pminphddy240=`tempminphddy240' in 1
9 J z& i2 Y) C / j3 D# G5 g. g- y( X' D
! X) _' P x* k$ u* c. S% l ~ *-------------ddy240pminp右侧低峰值 -----------------
/ e* a. P: D3 w- _9 w1 s preserve 7 B" x( \6 }/ l2 D! H; D
" T6 X1 K; o, P" U8 ? keep if dx240>`tempminp' Y) I* b* M7 X: A2 V/ a0 | c8 {
: p9 ^. i% ^9 u- g
keep if dx240<`tempmaxp'2 t' p1 o% e: a" M& `3 o
P/ v' P8 ~$ t& T; g keep if ddy240<00 z1 k: ^' u/ b+ S' a$ |' k" o
+ {7 o/ J6 u; W- ?- |
gen temddy240=-ddy2403 Z( L, z m* g$ K$ J' P, M4 [
3 J+ r" M) E- p/ L% Q count
5 J D* O p% ^, _4 N
, d! s2 [0 Y( O; _* N if r(N)>2 {
- L, D, V8 S! [6 d2 h
& p1 e2 K: s; ~ I7 c pkexamine dx240 temddy240
- S$ o% p9 _4 g8 u9 R+ h2 W6 f 6 r9 u# e8 o0 e# l c7 u
local tempminplddy240=r(tomc)$ N: _% `% }- y' |/ l
restore1 ]) D1 v9 l$ p) Q
}9 A3 }" {8 x- y0 K/ v7 K
, Y( O f! B( Y4 R% b
else {" ^5 B- R0 D5 ^) ]2 w5 R3 E+ n
- K* j' w0 B; Y6 h U di "cannot find pminplddy240") [% I+ X7 z/ U( r0 T( R. v# k, _
restore
; E: b! ~, I6 Q/ C% L " w( J; G9 u) i- O$ Y
sum dx2402 ]9 y" _7 F' a% ^" l2 h
local tempminplddy240=r(mean)
# _$ a( J. A! ^; Y5 H6 }' o ) `, ~ E( J Q3 S3 D0 _
( y# R `9 R2 V+ I1 q }3 G( v$ M% c$ R- u& Q
* i& M) \3 B( ~8 K5 T: y* u# S
% ]; M; w# e* O7 {/ A; ^
3 i- }( {$ T7 i
+ L4 S) X2 [# T8 N6 d1 M
" Q4 F! [" C3 C* D5 K" c4 x gen pminplddy240=`tempminplddy240' in 1
5 O% H9 X1 ]4 G" X \0 v; G
9 G2 p/ ?0 c9 i( _1 i9 L! v7 a8 i *-------------ddy240pmaxp左侧高峰值 -------------------
- _ ~! X# j7 ^/ f# i
- n9 P7 ?: U$ x preserve
8 v# X8 L3 E. J: f! Z% P
( k3 p% B" J, R, N" z" p$ j keep if dx240>`tempminp'( A: j9 c# O# B" X. r& ]% m
* i: Q/ X# F( q0 I keep if dx240<`tempmaxp'
8 R5 P H4 Q3 \8 |/ w% i
" o+ F4 n) h% n keep if ddy240>0
( V7 k7 Y; R* @% b B$ `% j count
# O% _% {, D- g: l# x
4 C/ R$ O9 @* { if r(N)>2 {/ f, p: a) `- G% O
' j8 @/ x/ W# V/ Z1 k pkexamine dx240 ddy240# K6 @ }: M: Z0 w0 F& {5 c( O) n
, m1 x: U$ H7 o7 h local tempmaxphddy240=r(tomc)
8 N' r1 \) s' ]9 d
/ J# R! } Z) j! @: B. {( l3 w restore
2 e0 t) W4 m8 ?5 s/ [& l% \2 f }
* U& H4 `4 k4 z$ N" p, v( t; V: b # a: E L5 d2 O. c
else {
& d% X* i" J8 a9 D+ m: T/ H: y$ @ f. k& ]* w1 A! e J) r, l
di "cannot find pmaxphddy240"8 B. C5 x; d$ l9 M) N
restore
# f+ g/ l: [- o! Q1 P$ t
, q8 K' G1 H6 `" a3 @ sum dx240! E% E+ o2 f0 o1 ]% U B- D
local tempmaxphddy240=r(mean)
& Z& w7 e* b4 ^( U # ~: l3 }7 l) M& @! s/ @+ G" r
1 Y* q& Y5 d( e4 Y9 y+ Z+ d$ q' K }% G' x& n6 E+ c Z( T
1 t! ]8 j& n4 q
$ `7 \, j$ F( d' o, E
. M! a7 X, ] k# Y0 B
. o# ?6 B) N5 W; ]- K
* C6 I- H( i. C ) x, _- _7 Z) W
gen pmaxphddy240=`tempmaxphddy240' in 1: y7 ^, X/ ~3 R) d: x( C
, {" D, |- R2 ]+ B
% }4 c! z$ A# C3 o6 @
*-------------ddy240pmaxp右侧低峰值 -------------------
6 _; A. ~7 f1 j$ u9 O 3 h: d; r8 h( X+ U( l
preserve + s' s5 `8 y2 l V- E
) V& a; y( T' {% i1 I; q- g
keep if dx240>`tempmaxp'
- i9 a, J/ t& u2 T& }7 N
( W7 t6 i6 c' z$ E0 Y gen temddy240=-ddy240
5 f' X7 J: O ]8 h6 O- t/ p # @& d; m7 a$ v, i3 E6 J
keep if temddy240>0
, F" Y# e5 ?) E- |4 f' S7 M
$ |4 _# b% e u& x! {9 { count
: R) y# r8 _$ x3 e * N( G& P3 q% m/ S# B& R
if r(N)>2 {- ~9 @8 b( l! }# `& q9 i9 O$ @
" q4 a/ a. c( [6 b
pkexamine dx240 temddy240
& ?% C( o3 w5 m9 ?2 ^2 M
2 v* E. x/ n5 \, r local tempmaxplddy240=r(tomc) % F( f W d1 O4 w0 s
restore
8 `, N; u# R: Y: ? }
, h0 T1 V! b6 }" w$ l* x2 x
* V& Q$ o# b# @* X' r else {0 ^9 X! H5 J) K! O6 c5 T: W4 B
restore* k. p% |$ S; X3 V
di "cannot find pmaxlhddy240"/ M& d! q" m4 l: J* H0 @; j
4 s3 r5 r* m4 A8 p8 _ ^
9 t2 m6 H! S5 y$ X sum dx240' `. ~" o' M5 |0 N; g
local tempmaxplddy240=r(mean) in 1" U1 }0 u' V9 x B, ?' t
5 {2 l \) q& k8 x
# I4 q4 U, D$ U; P$ i# O+ x4 S }1 ^/ ~# K( v. ?, `" P& o6 n1 K
! ^) x% _ U1 d7 ^8 h 9 A k! j- g4 @# T7 T
9 S* Z }3 s' E i
$ }2 o1 H1 \3 B x$ N 6 @3 z4 I8 o/ ?+ `$ ^" f1 P) E' D
0 l/ Y1 ~% }. n$ t; f8 [
gen pmaxplddy240=`tempmaxphddy240' in 12 W% h$ Z* v6 A# X
6 O; Q- |/ A+ ^! g *-------------------------------------& |7 a5 ?6 w, }& G1 s3 o
5 e5 T7 Q1 `9 g9 R0 @9 l; F. s gen price5d=v5 in 1/20
: F- } Q& p2 K+ D- v
& E; @& l( q& }# L6 g- l gen price5yy=_n in 1/20+ o9 T% i' C- i, l2 Y; p
: R) j3 I" |+ r+ _9 x8 e' I gen price5y=price5yy*(dy240max-dy240min)/20
: p, S i& I' v 4 n# n7 P8 w/ @5 F
*price5y &price5d
, n1 i! [4 B* v- ~& U% r- h : J3 p2 `. ]. K' x3 P+ y' O
gen priceny=price5y in 1# D* Y H" t h# ?( A
n0 }- q) w4 a! d( F0 n% r( l& X
gen pricen=v5 in 1% X8 D/ P: w0 ^ a" e
: ?0 p. n4 J: K+ W3 H9 X/ \: ^
# Q, _' }/ K$ ?8 Y" \9 b
*priceny &pricen1 N/ q9 A5 k/ h
( U. e/ J( y+ N, d4 }) W/ F9 Z 0 ~4 H( P& p7 C* y1 G* |8 F% I
*-------------------------graph------------------7 Q, u. ^& w" P" g9 s4 N/ m A9 s
y3 l$ H, e# H' k* @9 g
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; m/ K. X, h' t6 B E
8 P8 W" h% y B, m, x
* ---------可选项目----------------------
5 z' F- D. ~8 t% B*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)) C& d8 _5 b( j2 U" |7 @4 M
}! l( M3 L. i( i$ ^# I% ?; w
end
: w0 [4 [" d1 z5 L P6 n |
|