|
|
改了一下,这次运算应该没啥问题了1 q" a; F' t5 M+ t' X1 J; N% A; l
( }. w+ |8 W+ V: e0 G* e
4 U% q1 U. R! Rcapture program drop hello0 W& ~8 Q/ ^. {
: @ g$ m# J& U( [, p) f& }. b
program hello U$ C2 y, B# j# o3 i, n P6 p( `, L
! K* @1 }$ D4 w# H
quietly {
1 M' O3 L6 h3 h. a
& m( a8 _/ |' @ C8 B6 mclear
8 w) n8 K% x% ?# a/ H" `) E/ U( I. g4 v
cd e:\finance\stock\20110101\source
3 x6 M( t) S% w& j3 l. o
3 R M% X2 [2 m/ ainsheet using `1'.txt
1 ]* o& s" W3 q8 j# j
" l" ]9 }% r/ w D1 e+ d keep if v5>0
5 M0 \* `) u7 l; @( p( E- t
1 I- N- `! ]8 r& Y7 J* |' V3 t# o \8 Z gen vt=_n
* @5 q3 P8 [3 u, n + t, i2 Z1 y" Q$ K& m% D
tsset vt; a$ E- w. f5 o P0 l7 y: R: I
+ m" u6 `' l9 e- `* A, X
gen zf=D1.v5
0 y+ Y8 L/ ^+ n0 n) C
% E& P6 N- z# w3 W- u# T9 P m gsort -v1* G) H# G8 B5 V$ Z
0 r" v9 v* X) G3 ^0 |3 c4 Z
gen avol=v7/v5
1 k2 y6 e/ ~) O) {* B g : I/ W( P/ t! m7 r/ f/ k& l
keep if avol>06 F& f# ]5 O. J5 Z4 h
2 x0 ?; R' d( h* J ]) h drop vt8 U9 }/ i# Y& y) R9 a
- o0 \. K7 b. m
gen vt=_n
' L% v6 B4 s: D6 d' X& d
; L% y) n, H- ~* @# d5 }7 [& o tsset vt1 |& F% k+ C- d7 n" C
/ d9 ~' e# c6 i9 _! q sum v5 [aw =avol]
/ h: _0 W6 ~( T& j+ A! V$ ? d( Z2 P
gen amean=r(mean) in 1
+ V! X, H2 O+ J
5 x, M& q! i, f * 总加权平均值 amean
4 E X" n; d3 ?% O6 U ) H( @; X) z# \
0 f+ {9 h' y1 [1 h- x
keep in 1/240
% ]& k' e, m4 N$ Z9 `
" W ^- N8 r+ H3 U sum v5 [aw =avol]
: [) `" S3 Q5 I6 i
/ d1 M2 g: w6 s gen mean240=r(mean) in 1
7 f' E+ S1 A4 p7 h* h( y
, G4 p1 E; `0 w% T, H *240加权平均值 mean240
, `3 N% P' e5 f4 @ $ J' e3 k8 c) U+ Q
set obs 500
6 F/ f( f. q2 N" |% h # F( X& _) r* ]$ z% n* l; _
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
1 h! b g+ ]# E7 I; \2 M
! D3 B, B' Z F5 d8 m# j: O! J *240 kdensity(dx240 dy240)3 W- i% i6 y9 l' q$ f% M
) m9 L8 G! D( n2 P% j/ L0 u2 A6 D, r4 B sum dy240: Y9 k `! T& B! E
; K. \/ o- B/ h& U! ?4 _
gen yxis=r(max) in 1
t: L+ ?, Q ~3 Y' @, K9 S
3 P" O( ~& Y7 _ X6 x' S gen yxis2=yxis/2
L5 \/ @3 F: J W, a; U
8 H2 b! s. S7 t$ e* X *yxis
2 Y. x$ k- T, u1 q. s7 h : R) s) P! D2 D; L- E$ X
gen dy240max=r(max)
* _; [) J2 D7 ~) { 1 v, Y# n0 `) ?( j: h0 J! ~
gen dy240minp=r(min) P' H& E* |8 I# ]- f) t W8 x7 p
% B7 M' ?5 V+ o( V
gen vtt=_n
- o0 J' |- D4 }; `8 I
3 l" C9 y" T% v; g$ w+ e9 } tsset vtt
" I. h, r( V% y& u! \: M7 c& O$ r# s/ l" c" X9 P- A+ A0 j
gen ddy240=D1.dy240/D1.dx240
1 O; J1 Y/ _5 A/ J( V 2 ~: D: X, e! ~" ?% p) J7 h" v( b; l
sum ddy240
9 r4 B6 }: A7 Z
. l! n) ~) |" b% Z6 d! O gen ddy240max=r(max)$ u6 D2 Q# f3 i F$ m. W/ t
( ]& m# a9 y! X gen ddy240min=r(min)
1 W' y* L" c6 U* x
& K" ~0 m# B' i! ] gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)0 B/ i0 Y. Y& i" h; N' q+ i
8 b3 ? z. p7 F5 G8 D1 R6 R0 | B sum ddy240g
: |- d: W, a+ r ) m/ R3 o3 `# U" F
gen yxis3=r(min) in 1 t1 [1 F3 H) M9 k
7 }/ _- k% u0 h# |8 Q0 P4 { gen yxis4=0 in 1
- `7 s) U. j. I0 w5 t$ l1 ? ; x) V) J3 D n. [
*ddy240g
3 \+ R( Y" }* G/ w6 ]" g' g
9 B2 n" t# x5 F/ A. V * \, F* S- ?- e1 u
preserve 4 r3 |8 Q4 B, }( `0 X
. ]/ ]% M: ^& {' J sum v5 [aw =avol]
$ K9 A1 R2 ?3 x 2 q3 C# S$ \3 O* J9 b
keep if dx240<r(mean)
7 s# r( u: M. q$ `6 F( k% M# b
3 r( i+ F- j K: i9 c/ L sum ddy2406 ?$ }& J! |- h" x
" h* H5 l; O* g( M if r(min)<0 {
: B* \/ C- t* w# e$ E) d, k# E
2 Y0 A3 I6 r. b9 |# k, P keep if ddy240<=0
( x( E1 @( E4 {+ B$ W* C
7 n4 G! K( m; t9 T& ~6 Z( r count
4 u& U3 t7 h K2 b+ e( _" F 9 C: `) ]3 Q3 F$ J9 P, [4 M) [
if r(N)>2 {
1 R5 t+ r6 p& U! a7 Z : _" A' _, t- w% a) I
pkexamine dx240 dy240
1 |8 X# j2 V c' n! U! O
1 N& z6 }7 O$ q1 f* D) A local tempminp=r(tomc)
- m4 O$ Z) Q7 b2 f" }: h5 | restore
' n5 x5 [! H3 i+ u% `. C, ~ }
) k: M: s- P* D d2 z
, d6 c& d& y$ o8 {& G else {
9 k+ U$ D. Q2 y3 E- S 6 h8 r. p/ ]5 i) t: p, }, r
di "cannot find minp"6 x( A; }) `+ e! Y
' L5 R- P8 S1 V! r' t( I {) @
restore ; s- o4 V; Y/ L( Y
sum dx2409 M6 d+ I: t% V# n. l
local tempminp=r(mean)) h: l X: h% N
3 Y5 H$ y5 H( A6 P- s- ]/ g
}
9 u" N: V& c6 X% ^1 i0 } }
* \4 _- F* P. D* F: l6 j5 E else {
* O4 b8 Q7 D( H# [$ z! I* s 9 Y+ F T) Z) }, S) t( l" I
keep if ddy240<=r(min); m* z W0 O+ b4 [6 ^! K: ^& b
1 P& m( Z9 W# A# O! F sum dx2402 n5 U/ d# `/ P' d7 q1 Y
( F X- h/ x- U
local tempminp=r(min)( i+ q/ I' S& \% @
restore 4 a3 E( p: f$ A' C
}
( l! g2 x) P+ W5 T, b% H8 D" {& K: z: G# @' s
. e5 [( a7 g4 w4 T, M( K2 _4 c x: z1 v C# w/ K3 K
gen minp=`tempminp' in 1. Z o- b( t% E1 h( Z N& B
*240 minp* f( h/ h% t- _( O( u
. e. g6 v* T1 ]: e$ \ ^% N5 T$ y W+ h! Y7 I' X+ l- R8 q- T
7 M- ]0 D: `; L1 q- m7 t- N9 D
preserve & X$ i( C0 C3 `8 E2 \* B* a# P
9 L& b! d. n" U sum v5 [aw =avol]% o: _7 n% l! g0 \
) {0 d2 o" O2 O9 ^9 w Z; P
keep if dx240>r(mean)! H# i4 K( f9 z1 p+ Z+ T
& o" J$ c: R# o6 j3 w! I- K( X9 z. O sum ddy240 M% L6 b, \" ?1 E7 k7 f
, E$ S1 P/ W! E0 I; E if r(max)>0 {9 x9 U) p# `& R" N6 D3 R/ }
! J: ~( r E' {5 F: Y; n" m keep if ddy240>=0, ~8 l) O% S+ L7 B( x& T
0 L3 B/ O$ y' G5 S! S count9 ^+ M! u& g" a7 k
# C) w% y8 Z3 \' L4 V! q
if r(N)>2 {
3 }" v' F8 O- G# z6 ` 6 }) f# B3 c. l% f. a: l" |
pkexamine dx240 dy240 o' z+ P) i# X& ?+ H
7 _$ F! u8 ^) Y2 R5 q9 q$ x S F6 E
local tempmaxp=r(tomc)
, ?( W6 u( h* F& l) p6 c restore
! ]; a$ d, B' r7 t! n5 D$ a5 h; H }
i6 K) M- }+ N6 {' }( o
, W8 K4 s% _' w4 T( l6 w( D3 U
. F$ A$ B( o" e1 q3 ?! B, k* L else {( h" ?5 i$ K B/ s. ?0 S3 P$ p
restore 0 I+ B" w$ A9 r4 M
di "cannot find maxp"2 c. n5 s# _4 u, n3 ^8 @8 a
R; p; A y7 E+ t9 j: ? 0 m8 b+ a% ^+ h6 L, Z
sum dx240% m! ]- Z0 ]3 g2 a( t
local tempmaxp=r(mean)/ U' F6 y! [# l. R2 v" J. z6 g j, t
' S; _1 [" V# B9 i1 g
}+ ^0 @/ N% g5 _2 H6 b/ e
; P0 @. S6 U% [* P }
$ E8 b6 t6 U( E+ }" @7 J/ Q: `
5 D# J1 F l7 a& k else {
' N4 E6 x7 l; _) \ * o, U* _8 Y3 z U
keep if ddy240>=r(max)
X4 S* N. ~& G1 V6 }
# F1 I+ p8 k: N1 F9 m( ? sum dx240
+ X- p& i2 q+ ]! `1 z L7 ]$ _* p + L: H8 J& x+ e3 f5 u# L
local tempmaxp=r(max) 1 Y; W7 Y& b) x; F
restore
9 x5 _1 [# ^' q( X& D3 R }9 x- O p X7 n3 t0 s7 v% E" s1 V
0 Y5 K( f* k, L: |' J
6 h3 r- p" \3 z8 ?6 S* r 6 s: v# ^' A6 t4 y8 S9 s& L
$ P0 T) R$ r, ]/ ?9 D
gen maxp=`tempmaxp' in 1
0 E+ z" A" q, l( z( M( K
- _2 d7 A0 Z9 \- E *240maxp
3 n4 D/ o/ R: p% S V' ^5 s
9 J! h6 N( }+ I/ i1 G4 V 3 c8 X/ t3 s3 d# q: N8 X+ s
*-------------ddy240pminp左侧高峰值-----
L# `9 L+ W# Z6 q
1 a6 n# Z q7 Y( D* a) C preserve + O! `# ~. h2 m$ H3 r
# x' ^7 H {6 w9 C6 O1 r0 n# o
keep if dx240<`tempminp'' W" W3 n- Q+ q8 m
4 i. q( c% {, s8 @2 Z6 m( f. n keep if ddy240>0
% W6 G# B2 u$ h' s & M( C3 I- o6 y0 {
count- I* K" M1 s$ w/ T5 _
0 g+ H$ v0 M& r3 w
if r(N)>2 {# P6 G) w# ^7 W( O2 }3 X k0 U
t# p7 j% M3 k1 Q7 I# M9 f
pkexamine dx240 ddy240& w) b: o0 N1 @. O
, X: H; _$ I- s3 L+ c local tempminphddy240=r(tomc)
- p5 X3 U. X4 A R5 s restore
8 c6 h5 O: ?3 c9 |" l }/ t2 f+ E4 i' C' i
+ z% p! t% E" a% r
else {4 z, v, P5 Q f& b& E: N) b
restore - c2 U# w0 Q5 D" ~* h" M
di "cannot find pminphddy240"
8 l' }0 [7 F8 k% n; n- z$ K
- M! T6 y% {0 r' x& m$ A/ l
1 G: X# R( y, ?8 F sum dx240
3 Y$ t' U8 C7 O0 S5 b. S local tempminphddy240=r(mean) ; N/ x# [" M) H; o0 e
# k9 }) v$ g( Q. s- G' R8 k
& k* ]9 A- a7 b& Q- Q5 V1 }
}
6 E: S. u$ y) a' l ' Z2 A% y/ \! `6 E# F9 D7 O
6 o( u, [9 y0 ]; O# G * O* o2 d5 ` |+ h3 S
- z. k4 ]7 \; k7 U
4 L3 K" l( S: x: x* A + d, C) k- q m
gen pminphddy240=`tempminphddy240' in 1: K9 R. h" r+ s# O! q* ^- Z2 _
7 n& f2 y' m$ T; Z; \8 |/ z
5 |5 t& a4 H! g *-------------ddy240pminp右侧低峰值 -----------------, ?, e2 f5 Q" Y
preserve
8 h9 \4 _1 W0 |6 X6 |# T
/ d, v8 _5 N7 R. W& ~. O keep if dx240>`tempminp'! W9 z7 _5 b5 A1 Q
# a' u- k/ g/ O! Y1 i* F/ t keep if dx240<`tempmaxp'
/ k' G! W( k9 @% ?+ l# _
# N; c9 B! x! W" s keep if ddy240<0+ p9 }8 @+ y& `5 U+ u
) L( E: y8 P2 D9 q! {, K
gen temddy240=-ddy2403 W2 V9 f% \4 j0 l- o
0 G7 m- S4 ^! G; I count
$ M' k: Z! p( D6 G . } q# U8 b, a9 R
if r(N)>2 {* w2 N1 C" a& x& e# g4 j
. H# C0 P! Z0 Z9 G' [# f8 J pkexamine dx240 temddy240
% r" ^% O( X- Q4 c
4 x9 ^7 G6 D; U: n* `9 q" Y1 n local tempminplddy240=r(tomc)
; y! {5 D& R0 D/ [% { restore/ s3 U/ S! e8 z5 M
}4 Q# }2 p/ m+ i; ~
1 @8 o) S; C; a) e( ?
else {
) D* H& e! g: D4 U( f& _+ d
5 ?0 h+ U1 {5 b4 u" Y; ~ di "cannot find pminplddy240"# K0 j9 m* A1 k- j u2 R% X2 \- R! J' w
restore
& Y3 j" m+ C+ p3 u & k. d1 j( D+ Y! K- B6 K, | K8 X
sum dx240! [1 V6 ^6 N: v: D9 h! f, D
local tempminplddy240=r(mean)
, [8 w; G, M: O# w" ] ! V7 ]1 }) o. Y# n k
7 b0 J+ I* d6 N+ g6 t5 ^) l) w
}! i7 D- t3 S1 X$ v6 k. D/ B! B
! F9 S# r. X8 q$ \ n
6 s9 K1 U, l6 r& v( A8 ]) s
5 Y$ F* k5 I9 a4 Q - W; x) W; G& r( ~& a2 _
, A( X9 c1 I! |1 l. V; Q f, v j
gen pminplddy240=`tempminplddy240' in 17 v7 y6 z4 E, K! h5 B" X3 h+ ~
! U2 a# I& A: O2 U3 m0 i
*-------------ddy240pmaxp左侧高峰值 -------------------' s$ V, Y* A2 m* e3 N( l& V
; k6 [3 V% \1 |/ C! S preserve 7 g8 ~8 N( h/ k4 R3 q
$ A+ u$ t1 t& D! q8 \# J keep if dx240>`tempminp'
$ P9 l, t. V; Z. y9 u3 {1 c9 ] * @: |& r9 u+ e; }& a
keep if dx240<`tempmaxp'
: _$ s" Z3 ^; U8 s- i0 N) J) U
2 j Z& g9 m$ l ~: F1 z* c keep if ddy240>0
7 u7 q: c" p$ j& u: S' _ count' w a N$ ]+ {
7 i: v4 V& Z/ C; Q2 C; ] if r(N)>2 {
5 {$ V- }9 B2 G' h * y& l+ o9 E! a4 Y9 Y, V8 h0 c
pkexamine dx240 ddy240/ I" l' U* P" a& l
5 W/ v. i6 O) f$ ~2 H
local tempmaxphddy240=r(tomc) 5 ]% X3 w1 Y( ]! }; a
4 o0 l: p# j3 R3 K: f% G
restore! t' { l, {$ i8 b7 {' W
}. M. O c$ @+ l8 C# v
* Y. y7 Z$ H/ `. z1 G. H else {2 z) ^" [; A4 L8 s# T( i: G
4 W# j. u- t% K0 w5 X3 A3 u di "cannot find pmaxphddy240"" a" Q0 ]0 h9 M' @
restore: O: i' O! o8 G/ @1 M
. Y) F" e* W0 L6 r& S sum dx240& x% {" l* Z- T5 j; r' B, e7 S- o: V
local tempmaxphddy240=r(mean)
7 B5 B( E4 _0 |" P, A* C
. U8 J* `! j! X4 P; I
$ x" D' }8 i+ m; Q }1 c+ H$ G+ z5 A+ d
5 K$ X c- V [# }4 L, a! i& t6 g/ K
: ~# N5 S* q+ D' o2 P* \0 ^
# e: t% ] q) J8 e 1 n4 q8 h3 }: A) i( d7 t) F" D* v) q
+ W& v( X$ [, G l* ] [: }- a1 H# K
gen pmaxphddy240=`tempmaxphddy240' in 16 I/ M4 j& x# G* N
( m! ?+ r, t0 A$ ~6 q: [. I. W
/ \6 Z$ C8 F7 r8 \ *-------------ddy240pmaxp右侧低峰值 -------------------' O9 v! u3 A/ q$ X6 E) E* g: F
6 n/ }2 A8 w$ F$ c* m
preserve * I( O- s; q4 B4 h+ n" Y
( c( l e, P3 K keep if dx240>`tempmaxp'
% M- r- u* t2 ^
" U5 W- i, D6 d5 |8 p gen temddy240=-ddy240' U1 j& P% i% m8 I
0 A$ y) ^/ t o) z2 U- ?+ e
keep if temddy240>0
& d% |7 z/ w4 `* ?2 |' l: t
4 R E9 r6 ~ O. D0 q7 v) T count
+ y! O0 N F& t G4 X, S& {
: ~7 k `0 [* \( {2 e) v0 W if r(N)>2 {
! N1 W) J! w* h. z `
& B z$ h5 [! i9 V6 C pkexamine dx240 temddy240: I0 E% Z6 L- ^4 H" ?( I
) H- C. L# q/ }0 ?3 x6 C/ h. A; c local tempmaxplddy240=r(tomc) 2 e) q, R9 y+ f% |. T" o4 i. k; h
restore! s7 }" j ^4 x/ Q2 V3 B( b, ^
}& x$ q+ v! ^' D" |% q
: M1 ]5 ^+ P+ q3 ?5 b7 I1 \
else {+ p% E. p7 p- @/ X3 ?
restore Q5 _/ b [( p9 z3 ~# K7 b
di "cannot find pmaxlhddy240"
$ J8 B& o# q# u; t. o7 }) \
" q4 `3 Q" s/ s/ x7 L' Z
& ?/ ^; q" I4 C sum dx240
# ^) T7 Q/ r8 i' i) a* |( E" m" c local tempmaxplddy240=r(mean) in 13 N2 Y; a) j5 f2 f' n) x0 B
]" o0 ?+ {6 L# y3 A
' m8 Q0 L \: k' m }
* u5 @6 y! P+ ?' d) G2 ]
2 }9 Z6 f7 o" n- H5 O5 o5 i " E$ M8 c+ W$ b+ l$ s7 a9 r8 X
* k+ {1 u0 e R" U
7 i4 z! y. G/ w+ c& Z
1 ^8 @* ~3 u8 z% A7 c, `5 ~ i8 q
; J2 P* k0 S. J W gen pmaxplddy240=`tempmaxphddy240' in 18 Y( ~: V7 e$ r0 p, z
8 m. h$ ?. L3 r& q
*-------------------------------------6 I0 k7 K. }) a/ T" m9 m. E
9 e7 @8 _/ k4 K: K. a gen price5d=v5 in 1/20
~! w1 [$ T& @/ z # x! d% o8 i$ y. u# n+ P
gen price5yy=_n in 1/20* F r( A3 u3 ~
; e+ `# L9 b, I4 X$ h O! [# ` gen price5y=price5yy*(dy240max-dy240min)/20
3 U1 N5 f x& k' S7 \8 | " Z+ C4 e7 X* W( l F1 o) _
*price5y &price5d
' C1 G) T2 M: o$ H: M
5 J# j* S$ s) V6 C0 Q8 I2 P gen priceny=price5y in 1( }. m' S9 @7 k1 B1 ?+ d. O
( Z( a( s5 V" [# z/ A. f
gen pricen=v5 in 1
1 [ {7 m, ]+ @1 u' ~1 J- m9 r) @, R& f- h" U1 q. a/ @# @0 y* ^. G- x
( }9 T1 o1 S, o/ ^, d! S) c
*priceny &pricen
$ @6 W x) K1 A4 r, I
# ~. q5 t# v9 t7 d: O2 e9 j; @
0 o9 N% o! t& Z; R. B *-------------------------graph------------------
+ |" y8 h. h4 V( I8 o$ ^; H
4 C' M$ i( n! L, h tw(line dy240 ddy240g dx240)(spike yxis amean,lc(blue))(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)) (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)
) _4 e+ }/ m! a, o* X* a6 _5 ?& o; `* `0 Q8 x4 R
* ---------可选项目----------------------* E1 R' U7 Y' b2 ^
3 v7 m0 ^. n# P' v7 ~* j7 p- N( _4 P
}# c- `0 F) j L, \7 X
end0 \5 B5 a4 x# \7 J
|
|