|
|
maodeng 发表于 2013-1-28 13:13 * I# F# n& ]' ~1 W6 d4 h' T
. hello 300236
& m4 n1 ]5 a: U4 J# Dstatement out of context
: L4 a. X2 w5 x9 z2 I8 \) _r(119);
; c" \# s, g( ?) J% W* v7 A$ y抱歉,最近太忙了, ~/ o I& X, ?6 y7 F3 a- {. k6 B
1 { w8 u& _1 `
300236 我用下面的程序试过,没问题" p" S' n* f9 c. i! j6 [/ w' C
. }! n, L# H9 e7 X4 I你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试* p4 B7 o* @4 F
5 W5 M2 k( S* N9 D5 r9 S1 q
capture program drop hello( Z1 o+ Z' [, G1 z
8 H: l- y( x3 Oprogram hello
+ y" W# ?& s1 A8 z) q) M" w [) _+ \' e
quietly {/ o0 b0 M3 e2 j3 y$ t, F
. D) h+ C u; U R
clear- P p( C, Z6 ~. k8 y% F& b7 t
* `, M" T! U8 z0 P, {cd D:\stock\test\source& F/ K- N$ B9 `
: f4 P, n g3 b: H/ Q
insheet using `1'.txt
8 i, a0 \* D/ z+ e2 o, ?
& f6 y- w+ @8 H4 A. U$ m% O" \ keep if v5>0
$ @1 t* G$ Z# s; {9 t ( D; Q0 F1 K& \) T9 I3 M9 R, e
gen vt=_n: I1 h2 B k7 ]; f! M9 [
; A1 o' x( x& C* b" L
tsset vt+ T% g! J* M- Q* N
) e9 Z+ v/ m4 F, Q7 N gen zf=D1.v5
8 X$ ~# M2 q# b, `" E3 d7 g
9 f1 v4 e( R8 m) x! a. K+ O gsort -v1' W# x: f0 ]! Y* c
# ?) y' \/ [! G& p gen avol=v7/v5
$ K3 e- p5 ]5 @ , J' D% H4 }( O; ]
keep if avol>0
4 M1 G# K: R) X. i" Q 0 M2 B& z2 m% y$ [
drop vt
% r8 ^# f2 S' K4 W" V
/ t7 }6 _/ O, {- g0 e9 ^ gen vt=_n: i. U$ g1 P* O+ \8 S$ L, g
3 g& g ^5 g3 w Q8 ?2 R# P: D tsset vt `8 Y) x+ s6 h1 g1 G7 T5 c9 I
# o8 B5 ^ I: E/ w. y- s# J
sum v5 [aw =avol]
5 P" `7 _0 J0 [( }# k' V6 k$ i! J! w: r: t" ?
gen amean=r(mean) in 1
" x. F' s* [& ~- p/ i" M( w4 R! D * Z! @ A/ {0 T- i2 v8 A( H4 x
* 总加权平均值 amean N) F. T; r+ G8 u2 [( Y
. Z$ c. t( h$ _+ P4 w3 P7 h6 v9 O
# J/ \, f+ v8 _$ X# G3 | keep in 1/240
; f& r! [6 T2 A/ s9 e
3 G) Q, Y; K) t3 K9 N sum v5 [aw =avol]
- M7 L. W) D/ w/ J6 s$ L
* H/ @# m' E" I5 l6 i gen mean240=r(mean) in 1; i! O; `2 C& o' B9 f
8 Z0 G; `6 D, S. v' G *240加权平均值 mean240! w* }* q: `/ }- k" A+ E
( x8 B$ y/ U4 y1 {( B0 V* z0 z- y set obs 500 # Y; E2 m9 K+ _/ l* F
% f8 @) z6 {* T( B# W
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
) z) f. r! S8 o0 _* z
7 H9 p1 S9 {0 Y( H2 S *240 kdensity(dx240 dy240)" c# d4 S" J7 s5 B2 m A, _* p! t
$ s9 B* `! F: [2 b
sum dy240 o% H! B b7 P. J6 |; A+ g
! T, ^9 m- d: {& z3 [9 q8 x0 a gen yxis=r(max) in 1
0 o7 P) N2 ]# F. _1 i 3 U9 z# ~. r+ B5 x3 T6 L
gen yxis2=yxis/2
5 R& p3 {& t6 F' d+ s" ?$ s7 F
* y3 a2 _! R+ K6 f *yxis1 E9 d2 i# J% g7 K" P ^
; D d- |; S8 y0 }- ^: s( W- ~1 N gen dy240max=r(max)3 c d D7 b8 G8 K# b
0 e& E4 n5 K% R8 q, W; j/ @
gen dy240minp=r(min)
* I4 F9 l' G0 Q ]" i
' \6 j) O# d/ [1 \$ P gen vtt=_n. j0 Q( J- Z+ {2 `3 c" h
0 f O, @5 x+ n9 _: k
tsset vtt
& p; i, C+ f3 {. o$ }4 }' {& Z* x9 f% Z
gen ddy240=D1.dy240/D1.dx240
* J: J" r) Z$ o. x S: s/ H & C) S( O4 x' @3 V7 ^. A
sum ddy240
6 o- L' [+ U7 W* v 5 X4 \9 Y% {( @
gen ddy240max=r(max)7 l# F4 W$ b. q& d& E
( c1 l! O% q6 e5 t% ? gen ddy240min=r(min) r( ~- p" m8 T) N1 G3 A
( ^# y: O. P- Q) i. j' W
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ w2 ?* R* j# Y2 O2 l9 M8 _- Q, B
% x& u* N7 |* ]- K! {' e K7 q0 z sum ddy240g e5 c* y( R/ Y) L+ y! `
% z9 I: u B; F9 ?) b! F W gen yxis3=r(min) in 1
5 s6 a' e+ e& F ^8 e1 p
& u5 F/ m( J/ [2 j/ ?8 t) X gen yxis4=0 in 1/ o4 P" y# E+ T. @
& \% z; y( G- W8 x' W3 F9 e" d" R
*ddy240g
; P" G/ Y! M' D6 [4 W9 l8 D * l" G% ^# [. N6 N0 r/ V
8 Y x& C9 v: ^! H/ x3 h% M
preserve
- Y' ?3 ?% O, a& ]
1 z7 R% r- ]; P2 K4 O sum v5 [aw =avol]7 F- \& c+ }9 u4 Z$ v/ n
' d1 U( r3 K5 I; Y& Z4 g) G
keep if dx240<r(mean)
# j) e2 E d- Q, |0 E. Q- q8 j 8 S8 q3 k* b' J3 f) r2 m
sum ddy240, m% @% M: D% P2 E7 B; k
( D( [- y( x: o3 J. q0 K+ W0 h3 q
if r(min)<0 {4 T1 {/ N& n) K: k6 R, m K
. |2 \' l1 f3 z keep if ddy240<=0
: M% V4 x9 A* e l. X0 i
5 G n& e r Z& I; U$ r' b count
( F# }6 @9 s- m ]/ v! m
7 D* T' G6 Z. h7 h1 N$ m ?& @1 Y if r(N)>2 { T: ]7 Q6 A' L% Y' C$ k1 h! i, ~
0 r: O0 g$ V7 | e: `4 ~% ^. m# B+ m pkexamine dx240 dy240
4 S) R& ]6 J- ]9 k7 x( i * J! v1 v$ _9 v
local tempminp=r(tomc)
" O' Z) t0 e2 w U. P$ w restore . ]; P K# F3 i8 x4 \! m9 T6 C
}
# s" X3 b- r: q, O# }5 P $ e( R: g% q- W1 J
else {7 \- O& e" {8 e7 p e! L# ~8 l& n
$ g3 l: {# ]: r di "cannot find minp"+ h- d3 U" |4 N1 x' C' C; ], G
7 b' g* @) A5 U restore 0 ~5 y8 j# D' F+ y! h$ P; a
sum dx240+ m0 B. h1 h2 \) p( o# g
local tempminp=r(mean)
& l' X0 Q" M% g2 I. y+ V9 }/ M+ j # Y4 ?0 O5 p& D/ M6 W
}" F& r5 t) q4 k" s t" v1 Y4 u
}
0 N, }7 _/ X2 ^/ H# ^( m else {% r( A, N9 n" U( |& r7 Y
: V: D) I2 W0 j: u/ l) }- n
keep if ddy240<=r(min)
/ _) L4 }' l& ~8 t4 n9 t6 `/ @$ K7 J
2 R! \( V: j! X. c sum dx240
- W+ z: c8 j4 e4 z" W % `% b) @" m+ J: X$ E5 Q+ h
local tempminp=r(min)( j" E* c! C% g$ G2 Y$ I- v2 D
restore 1 \) ?& l2 d1 q. j& [
}4 }# ~% }% w( J, e7 ]
' Z& Z7 ^0 K s! n: x( f( u5 a
+ J9 A1 R9 V3 Y( o! `6 e! c7 O8 ?/ K, f4 ~2 O0 @( {$ y
gen minp=`tempminp' in 19 b* }+ P2 p8 o" R f4 J
*240 minp
; D1 S3 c1 K0 z# r8 S% v( y; \* A1 U
6 Z0 |" s9 O; m
+ z. |+ b7 A2 e. V
preserve
- }7 C; }0 _0 G' W
) @3 h% ~+ w7 h& {& Z5 j sum v5 [aw =avol]
1 [/ [2 ~3 C+ X3 g$ `* U
9 u6 N% V% B0 a' A$ q* s keep if dx240>r(mean), J1 V0 t% }/ w* A5 P+ e9 q O
3 y7 V. d$ I0 _$ D& {
sum ddy240
- {3 b+ r8 n* J# Q
# h3 C' \4 j4 O' n if r(max)>0 {
% O0 y: h4 _! k. w 3 D% |- E* B9 b5 N- t! j& X9 S; g
keep if ddy240>=0
2 K ~# L- J6 \; }6 k; b1 \' g & C" ?' @2 V4 ]$ K/ r
count
8 X' t2 u2 _* a7 Z5 ?
# @! |# B8 n6 X* `; `+ u6 ~ if r(N)>2 {! L+ i" d; E" R2 F- Q
* s7 w8 R1 ?2 l6 [( ~2 ~4 [4 L4 p pkexamine dx240 dy240$ ^+ s' e' E! r6 w% ]+ ~0 S5 s/ q
% R% Z2 Z- |2 U3 S local tempmaxp=r(tomc) ) t9 f, ~3 {" e% X0 d r
restore 4 C( z: u) `7 @( N
}
1 M% [* t: A) m1 R: l
) H* ~: N3 ]. ^$ X/ z 4 ~: J' l9 Z' Y, {
else {' C- w; J. D' |- l. o: u
restore ! V- @, `5 R! G% H
di "cannot find maxp"
' P% Q0 w5 w1 y ( }% Z. _, d) F/ B" o1 P7 X/ k
3 f! _) Q, E7 [. I9 x: h8 Y" ^
sum dx2408 v: ]) Q8 d# y, l" n: R- J7 B
local tempmaxp=r(mean)! ? z7 `: b& C& |& c* ~6 p
9 y' m! `; d5 }; N. t
}4 Q' T5 v- B0 `
' a1 I1 K$ c/ z( r7 n! K0 i
}( P8 f% f! g4 O& O. F
) Z5 B0 [* O- I; I* X2 m8 I
else {
/ f8 l7 L/ r) D* T$ r 7 ?; a; n* M" b3 M
keep if ddy240>=r(max)
5 Z* `4 K7 u: P) \
, J$ q! S5 z* r! i0 b ~ sum dx240
, K# w+ a0 A$ ] Q2 {3 W* n
8 }8 X$ x& c$ o/ r1 A; Z5 m local tempmaxp=r(max)
& q& ^: e/ E4 C a7 v restore 0 T: g$ `( X5 r& _/ i
}
$ P2 p" Q9 ]/ ^, S- @0 \# Q
2 C2 K6 s0 P9 T) t# H. O+ j6 n7 L }' ~9 R0 q" [
# l! Q! I9 D# m, u5 B! F# Y, o' [3 s* \0 M* t
gen maxp=`tempmaxp' in 1
, e$ L: w. B0 q7 ~+ N2 {
3 ]! O% p5 m9 r) { *240maxp. ]" m+ { s8 W
0 t4 d$ `; z* V9 M
1 ~* D9 I4 {) t *-------------ddy240pminp左侧高峰值-----3 T) ~* w6 y( O
/ a% \1 ?$ w+ M# }8 T/ _
preserve : ^# d5 j& X: S8 J# \( T1 P( [
. q& L2 j m8 r- E keep if dx240<`tempminp'4 N. T( `4 p, C3 Z' v
% |7 S& e# y, ~6 C
keep if ddy240>0
0 m" @" L$ F3 C7 Y8 K" t' e ! |6 L* l/ B: m5 ]1 t
count7 [+ }/ T) ? @) M
" N$ P3 X+ \( x8 C% t/ r" \; b+ G& \( [
if r(N)>2 {7 X/ U* P# d/ V/ W5 o
; }* Y9 X0 u! {0 P1 q- ]' W, @- x
pkexamine dx240 ddy240
0 P2 b7 C' a: w9 [/ N Q+ B+ N
9 m5 ]. k* W& {! q2 `# d+ C$ j5 P local tempminphddy240=r(tomc) - e/ V- ?( d% p. B9 p: {$ X" L$ Z& [- f
restore
% }) P1 j* ~' ]5 c" M& Z5 r }
+ ], R& }2 u1 f# U6 b - M4 d" o5 s" [" |* Y4 |: o) {
else {
9 m& s" R! F, H/ ~, [5 Z restore
8 |1 m( I) g: W2 M# d! ] di "cannot find pminphddy240"! |& @. x2 v1 A. L
0 U& j: x. I/ u& h" @
/ G2 A- [$ M3 K! ~ sum dx240
4 W; \& j! w" @; O6 n- k& ] local tempminphddy240=r(mean) - L( a9 e5 z4 U
) ^2 |2 p" B- m3 p1 D- Z
- r. h, m, b: B7 Y+ P( Z }
9 f2 R2 _4 V2 P5 o) h
V9 H$ A3 x# d3 l3 c2 c
/ E/ a3 {* p# W# p# o " H8 U+ f0 q, {- A4 n& c
; P1 q! P" _: Q) H0 h1 ^$ k
0 z4 p# C7 ]) k2 U% ~0 p; C + j! r _8 z, Y# N% P3 v
gen pminphddy240=`tempminphddy240' in 1
; p' D: N% y# ]4 ~& r 6 r' A, M" |2 i/ ], s3 a" e
' f2 V" E/ f+ j
*-------------ddy240pminp右侧低峰值 -----------------7 y' |3 E+ H% ~- i. m. }! N! v
preserve
4 o x- v+ l5 W( H 3 ~! r3 k0 w+ e1 C4 C2 M+ A) V
keep if dx240>`tempminp'6 p! o! A) ^4 q
1 d; }3 V) w2 l
keep if dx240<`tempmaxp'
5 J/ y& I! G2 k& {( y3 _
o& y6 k# R, k keep if ddy240<0- D, t7 _7 ?! F% G3 c" b+ N6 V6 v: \
8 k) g, |7 U& y5 j% [
gen temddy240=-ddy240
+ N& \0 \$ d, m' l, g7 r; w% R
% S$ R% }7 a2 V- q- O. h1 T* r count
, Y8 x: M( w* z2 A+ @ / N" f7 o( D; R+ n
if r(N)>2 {( b/ ?' o% e% D: y# H
/ Z' s6 R8 _& S8 M+ [
pkexamine dx240 temddy240
# D( G1 b9 X2 V" P/ q * p- c* o. {& S* s$ e/ |
local tempminplddy240=r(tomc)
& i7 g/ J5 @/ } v2 B0 F restore
$ b2 o" H. p) R# ]4 z8 B }
: A9 s) h4 r! Z+ p
$ b0 \9 x1 \3 O+ u* K! o else {/ w+ r& j; Z& S6 C# d; j
1 d+ E. X; \0 ~8 z di "cannot find pminplddy240"* c3 b* W( |+ K- U. H p- z. K
restore. _3 W ]" V1 A' I# ~- ?! b% w
* z# m4 k! |+ u& u9 p" S sum dx240. o% R4 T( |+ B1 J% M5 ^7 @! p
local tempminplddy240=r(mean)
7 ~7 T/ n5 K/ Z$ d" T' Q9 G
1 a- U. Z( R- @; [% h$ j5 j* \' y
; |# ?1 ~0 ^" k* \0 f4 V }
0 v3 g8 Q& A' Q2 Q+ O% y+ Z # E9 ^8 s3 c7 O5 {9 l- F4 K
1 M4 _' ?4 S3 |+ f! H 5 K' D: z: i6 h, r1 l Z* \6 ~
7 v% I9 s; e; d9 S p. k( f' X+ ~' z
gen pminplddy240=`tempminplddy240' in 1
$ `8 d( z$ U/ k/ |
/ B& P5 T8 S" D5 M, A* Q) q2 Q *-------------ddy240pmaxp左侧高峰值 -------------------
y$ o1 P4 e! R) i' Z" o " G% H) d8 q0 q6 D% v
preserve 8 Z; r2 W3 @4 ^) _+ o
0 X3 T7 F9 h, m! i% c9 i2 P' D
keep if dx240>`tempminp'5 s, d3 Z4 f# b
% H; \+ T% k: s
keep if dx240<`tempmaxp'2 ^6 K8 {5 v; q, m- r
. v4 t2 ^8 J5 b' C
keep if ddy240>0
5 X8 A9 y4 C) _) s7 S5 x count
3 m# _2 X; [8 m3 ~2 I& w/ p: j
6 q& ~& `& o/ v o if r(N)>2 {
4 A g5 W/ R+ l" R 5 i, \4 e4 G: s0 r; B" H
pkexamine dx240 ddy2404 b- j0 v" ]) |3 ~6 _, K
$ L$ o# W: d0 Z2 W$ D. N local tempmaxphddy240=r(tomc) + K8 S0 B" s3 P9 [) }
1 m5 D7 f, c( t$ s9 K! M
restore
% R- K* j0 D/ f( x }1 r1 V) A% f4 R2 [- U7 M6 @
* E! g0 A- a9 T% |( H else {9 w f+ M7 F" x# d( l* {8 a
" D# x! X" Z. I6 i- V
di "cannot find pmaxphddy240"/ a2 b6 C/ F9 o2 W' K. i
restore
% Y) k2 Q+ s: f3 q# A4 O# X8 t$ L
8 ^6 D7 C; x& u4 t1 q& A sum dx240 l5 D- N- n( M( n7 C. s4 }8 p
local tempmaxphddy240=r(mean) 9 H4 j; `- W1 Q( O; n% }
5 U4 q1 v& g0 i: r1 e4 @
7 \/ V0 l* e7 @2 [# @" v }5 z" @! l6 x1 a* y" m
+ F" k2 M2 k* [: ]* ] % b/ X' b8 |8 O# x8 A6 U9 l
$ _5 v3 l6 \* X- [8 Q; q( ?
8 {) L0 \6 _+ \, K0 [/ l+ ~/ t& I
" u0 @, ?# B% A6 I% [2 J+ ?
& M' Z* x* B% ]. } gen pmaxphddy240=`tempmaxphddy240' in 1% F: V. W. P. G. C% a
. t0 X% x; W5 D* |/ j) D
$ N9 P1 Q7 I* L *-------------ddy240pmaxp右侧低峰值 -------------------4 Q" L0 a( m9 y" x9 o
7 E" f7 U5 {( q/ P5 Q) i; F, O/ c preserve " r) v6 d) C2 l4 s# P% o
f$ w: Y0 t- \3 h K
keep if dx240>`tempmaxp'6 V7 S( K8 x9 n7 A6 J# B
$ W* ?7 F" ]# i6 q- _2 ?* k gen temddy240=-ddy240
& }+ @+ C Q( r$ J) C4 {
+ G. a2 F! c+ }0 \ keep if temddy240>04 |9 _. m! i9 a' j. T$ e$ e4 M: ]2 i
) Y; A2 P0 Z# s3 A3 y7 n
count/ q! m' u6 z! b7 h& G" S: O! z
+ ~3 m9 w" q* A, ]' ~ if r(N)>2 {
! ?5 L9 y9 T& l8 F. z
1 j3 B; A* f3 T0 r; r- E pkexamine dx240 temddy240' @( s. p' e$ P
1 L9 u; F, Q) o( R
local tempmaxplddy240=r(tomc)
w( S( ^# _6 ~/ a) a restore, d, q1 p; g, {9 |) ^% J. d( @
}
x: F9 m: j7 r+ h4 u
* R( B* V% f& w! I- E else {
. {& j1 l4 R z1 Z, k restore
2 |" y: n, E5 I5 h. @" i di "cannot find pmaxlhddy240") y) S( [% s; [8 Y
( v, d" l# L8 M+ _% Q$ Y9 Q9 m# j . u( |$ J s$ y8 \
sum dx2402 v1 c& a0 k( a! u) M
local tempmaxplddy240=r(mean) in 1
2 I' \% ]7 X7 F& ~7 Y* f1 x$ c + ?! m) R) `1 h8 w
" t/ P4 |8 U( }; _" s' C8 J
}
( O7 B1 z7 ~: V5 g
! ~( j3 p; L+ e ?
) R' R- C$ w- B9 U" C) }/ X5 l 1 a& N, ^" N5 d% U, n
% a5 L2 j& o: M/ W; J7 s; L" l
- h: V: H$ ~% H0 n3 |+ k% ] H9 K - E3 u( N3 h! m1 [% P3 w
gen pmaxplddy240=`tempmaxphddy240' in 1
( J5 o& Q9 c' C& w
4 e* l1 y( a1 v3 @2 r/ W& v/ r *-------------------------------------0 G+ v5 g" s1 a1 {7 {. y
6 W$ s. b" u( c7 t" y
gen price5d=v5 in 1/20
y$ V/ \" k1 [# L , R% b0 }+ j& q- {# V4 K1 m8 ] K9 b
gen price5yy=_n in 1/20) W/ m$ M! m9 L7 X( m, e
& `9 E- ~0 m: z2 _9 h" r$ J& }( y gen price5y=price5yy*(dy240max-dy240min)/20" D* t6 I4 x- H W4 o
" d I* W$ I5 Q0 k
*price5y &price5d
; S( F( S* v. r4 v4 s# a" _
7 v; N2 e& S. H! b gen priceny=price5y in 14 F6 C! g: [* |* M& g* U7 J
6 l5 l) y7 B L/ w6 ^" B" h2 b: p
gen pricen=v5 in 1
. Y6 r! W! B) w/ O+ u x; P0 U
+ m- y& |) e; K; x5 \/ M K 3 d3 o7 L& y3 g# o
*priceny &pricen1 Y, p4 [7 w$ |: V6 w
* |6 o1 {& ^1 {) l
' M7 i# E; ]1 G *-------------------------graph------------------3 Z8 T* ^' s0 T( b0 I6 |9 i3 p
0 L& v2 L0 T1 T; h2 q5 L& Q 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)
8 l5 h" a! }" ^: ]: ^
' S' K, G: O# {/ o% \; u2 Z* ---------可选项目----------------------4 t2 Q" g1 t. P9 U
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))7 x) _/ p$ r; L8 j1 b" M! m
}
: a$ z( j" s' |- N* Bend1 g/ H5 ~* ~! X( ?
|
|