|
改了一下,这次运算应该没啥问题了8 Z0 {) |7 s6 r# U/ z0 M$ x" `. k
' [& j8 m, {- J! ^. G! @2 ?! G
. T4 X9 n$ k$ N1 z; xcapture program drop hello& W4 Q8 e. l2 P. D- f
0 r- z, [- o. |7 n K' o0 fprogram hello1 @% z% c' |( c, R
7 h4 ]$ {' D$ T* f( A; R! x0 K8 D4 Y quietly {$ l% n& a% j$ ~
9 k& l% O& I2 C4 U( _4 t
clear
4 a u; T5 V2 M8 ~$ |2 W1 P+ v7 ^
cd e:\finance\stock\20110101\source
; z' n2 U( @) O' K; R: _9 o! y5 ^2 R9 e5 u* C
insheet using `1'.txt$ W" z6 q/ U) ]. C/ Y. B+ u
! S( I1 i: F0 a7 x) l- ]
keep if v5>0
! }9 X, F" U) V& a/ x% j
" {* h; ?* R8 X2 Y1 | gen vt=_n3 ?' {5 D- s4 E: ?+ y' Q% A4 |
; G" L' a7 X( T% v) h4 o, E- P
tsset vt* L9 p' n. Y9 K' s' v. d
- Y0 z( n. {9 U% U3 C
gen zf=D1.v5
% ?& `1 J5 `# o K4 O& N8 S5 @ \0 h* G0 ~4 s) | u5 s
gsort -v1! C5 q! w, ]7 N9 O* Z- c. t
: {$ a- D* Q9 e4 A% Z gen avol=v7/v5" c2 X! r* Q V. p
1 t' W2 Q b# v5 O: J: o' R8 q& y keep if avol>0; t; z2 F$ ^0 g3 ?3 W V9 F
( |# Q+ V: _/ J- s# T, } ]$ \
drop vt4 W0 `* y2 R' |. J. q+ C- {; a
}' x. z2 Y* g4 [3 i) k, k
gen vt=_n
6 E3 E( |& ?8 T) w9 _! I1 j5 q* z( w
4 ^; g: y- |; e" i tsset vt
6 r5 d5 b' h3 g9 F( S
, ^6 ] q$ v0 _/ @! R sum v5 [aw =avol]
. g% b5 L1 V2 i- g
6 C( ?4 Q! V, c, } gen amean=r(mean) in 16 P0 O# k7 q2 a9 I4 i. ?
3 z0 N; P0 E% q4 p' w' ?4 k
* 总加权平均值 amean
8 [; |; Y) Y& C8 m; ?/ N
0 W5 D# G: m8 d8 _$ m$ j t . I0 o! z; e4 A/ S: t/ ]+ l, E
keep in 1/240) y- Y: D, j9 I9 o9 g
0 `* w& h& ~* _: z# o6 Y6 a8 S, V5 z sum v5 [aw =avol]3 k* m$ X# M5 i: Y: m) [! `9 u
1 i L6 X7 I) J3 S) B" w$ u
gen mean240=r(mean) in 1
% w3 s" i0 I; K: ?5 i# H! [
% K% e. v; v8 P *240加权平均值 mean2404 J# L( P' U# V; P
0 D5 C+ ?0 D9 J; q; ? set obs 500 8 f1 z2 ~/ G2 C
) J, q& M2 j: e4 e" z kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
' I) J+ X }: W0 L
$ d7 _/ T, ^) y *240 kdensity(dx240 dy240)& I- y* V9 p# ^6 l2 u7 I9 D) ^* }# M
* W9 `; {4 I, z1 M- |9 O" } W8 m
sum dy2405 L& P. v1 y. _" T7 F, F6 f
! d1 S) i: K4 ]% L4 U
gen yxis=r(max) in 1" _% \/ H3 c; I# M T: F
2 e4 ~+ M+ \8 E gen yxis2=yxis/20 @) l! g# `: H# }# k- L& \
% G$ |6 S& T) \0 ^/ M *yxis; v( Q6 S. V! v8 c5 t- Y8 n5 A- F
6 g' O& N9 M2 k M/ Q1 C8 Q gen dy240max=r(max)7 @4 M. T. W) f) t
& e3 Y! f8 M. P# h
gen dy240minp=r(min)
, s& R$ o& z' V7 Z & N4 H" m) U; C4 V1 I6 ?$ ]
gen vtt=_n
" w- ^2 @; I" x' B( }3 ~; G. \! { k6 u/ D4 X$ q0 g
tsset vtt
) ~5 q* B" {) \% C
, E3 r( T) T7 Z$ o gen ddy240=D1.dy240/D1.dx240
* s8 d5 S7 ~, |6 N# O
! l! O, f6 |, q- F sum ddy240" W9 X6 u" T" P- k) _
) m" z* V5 _/ Q) g$ M# Q4 q$ b
gen ddy240max=r(max)4 c* a z" z7 W
7 C+ K+ c$ z8 [! ]6 d8 t* K
gen ddy240min=r(min)6 E1 {" T6 |& R3 G4 _
. u8 s' {' M7 d- I! y8 }4 Z
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)7 I+ O/ A; L' h
1 i; ~3 O. y! ?& z" s9 g sum ddy240g
0 b* S' ?2 d. l$ w; I
3 f. F8 p/ [5 N gen yxis3=r(min) in 1% B/ b R ^/ R+ k# G
, P5 p5 u! A2 e# ` gen yxis4=0 in 10 ?2 Z9 e/ k8 M; [
- U2 T$ L; K1 }4 T0 P$ U% P6 Y *ddy240g $ W4 g) K. X% g/ T$ u* |
3 p; |6 j0 v: ~ 5 G/ e* l( f1 }- S9 H( \! A
preserve
3 B% F; W; W. c u/ G2 w# _ # w& |; r' k, d; s
sum v5 [aw =avol]; ]% v& t' T0 o9 G
, y: R/ {2 x) `8 K& K
keep if dx240<r(mean), _/ c. i' u5 r N' l- b4 h, ^
4 c a ]' x" w8 e) Z sum ddy240
* v2 O* z1 L: n ; x( U/ c& |3 e4 R$ D2 G
if r(min)<0 {
* T5 D2 n) E0 W7 X 3 E; u; j8 \# h8 R
keep if ddy240<=0
4 Z$ }* w( ^. t; L2 o
0 i c' ]% J) o9 F, W% D' g) Q/ ^ count, K4 L6 _, F |/ h; R
3 I' ]+ y1 M1 N; z if r(N)>2 {3 W, b s5 S2 j& d' ^
9 ]4 z% W/ e+ O* z/ ^/ _3 h pkexamine dx240 dy2404 ~ p5 q1 J! a; R% M9 u5 H/ ~2 H, ~
. g8 c6 C- [7 g/ J; C+ ~7 e7 a
local tempminp=r(tomc)6 O5 A9 G' x: ~ M7 p# {
restore : E; R! v5 N. k, O1 n- {) H, o
}9 }/ ?* }0 s9 R, w! O. d
) ^/ w. e/ J- d0 U: f; f K" z; y
else {$ _3 `. W) L5 ~
& y' x) W$ H, C: N9 g+ L di "cannot find minp") c2 e1 I1 P* F8 h
( G2 Z* }- D/ w+ F5 \! x
restore
9 {( N/ Z* V: [ sum dx2407 H' {, H `2 S' p$ `; b& _
local tempminp=r(mean)9 b; }' z2 L }5 h4 L
# Y$ r) F: Q. G" w( k$ ]$ k } Y2 d7 D1 K+ b- N
}% ~! \) G# W( m& I* y* p# i5 v
else {
- R( C( X, W: m+ o H. W 5 H; c4 u+ |, z4 H
keep if ddy240<=r(min)
3 `) [ ?9 @1 _2 H" _- N( z* o# R 6 F4 f4 ]. }) C/ q) t; ~
sum dx240
6 S5 \; g* j" J2 ?! q0 h; v ( J5 j; J5 Q6 F T& h3 ]8 ]
local tempminp=r(min)" K% c- ~5 }9 y, Z9 \* D6 R0 F+ ]" D
restore ! ^, A( o4 o, M3 M$ Z& p9 P
}
6 F! N5 L% d( Z
2 T0 }* v( {4 U0 c( s
! v: H1 u6 u3 n' E% w# ~8 D' @$ _4 w7 v; j& X7 \
gen minp=`tempminp' in 1
; A8 x' [1 t7 h- c! R% J *240 minp* A* o* r- v# {( P6 s1 A1 _
1 [" S2 s: L. `5 D4 x: X
, \: `$ D, Z; m" p . r4 U. B6 G! T: L+ _/ x5 a
preserve + w' w8 K" X! H% F: N
6 Z3 \9 d8 T+ V9 q, n, T2 D' Z+ ~ sum v5 [aw =avol]
! x* ?) C2 Y- w7 E7 Z) e2 z 4 O. |# T# M* G9 S9 N3 v0 P
keep if dx240>r(mean)6 P+ W- ~1 |: t) T% o* n
8 j( D5 C# Y$ {) `; ]5 _ sum ddy240
& Z0 n, ?0 W Q
+ P* o ?% o3 q6 x, p if r(max)>0 {
) J) O u, g! M# ` \0 X6 j
7 b" F4 N j V keep if ddy240>=04 p' |) M% u8 S7 G" x b
. X4 q6 W% V" W2 u4 k
count I6 \- @( W0 G( W3 S0 R
: a3 X7 m" M& Z! s1 A, |" R2 Q5 h if r(N)>2 {" ] s! S) i; [9 K/ [: v
$ c0 T K* C+ Z0 [9 d4 }+ T pkexamine dx240 dy240/ K5 A/ y+ L h7 S* Z5 P, e7 l5 v
0 W5 f/ E8 I) Y& ^2 ^
local tempmaxp=r(tomc)
" Z3 i) y* _. ~/ ?8 H0 H# u restore + Z+ b' p. j5 T
}
3 j* }6 b2 _! J6 t, t" u, _ 7 O% q2 {" h* d8 e+ ?% R
) k( g# S/ c/ t" F |* y; e, W5 @; b
else {
. M, J h+ S1 u2 ~- z restore
( F6 W$ q6 N' A! P( A8 _ di "cannot find maxp" V3 g2 R3 c8 C: m
1 u, Z0 } Z' x# E' s: f" n- B+ ? / u7 J6 D8 O3 j- g0 S
sum dx2409 D5 c7 }* O; w* Z& k# [, z
local tempmaxp=r(mean)) [3 M/ b0 K2 R b
3 k# P& t) u4 g: Q. b% j
}
3 j0 |6 }. [- u% }, W( W4 V2 q 7 L6 m& v5 \5 M$ P, | ]
}
' B% ~5 t: q& C$ z8 A4 r3 Q - `! I& b0 ~$ l1 X
else {
/ `. @! j) k( ~9 t5 s
! X/ q9 c- }# j0 r- S keep if ddy240>=r(max)9 O* s! G3 R+ X' R0 i" G5 N* E* G9 L
$ G& |& Q& Y/ G6 l( l sum dx240
% h% V6 M# {3 T3 C" @+ v0 Q ' n1 j: O m# M) ~; u: d
local tempmaxp=r(max) ' f2 [2 _5 k- S1 ^% [, S
restore
0 l1 p. U0 p; p3 d }: Y2 |# X! E# a) `. W5 Z. e* X9 j
+ D/ C" Y9 z9 x" m! B! d+ [& Q0 J& N( S
. r S( Q) h2 i- ~8 X
4 Y0 f7 T( o* w7 P+ I2 E gen maxp=`tempmaxp' in 1
1 n4 o4 }3 s5 r z" n
% ] m2 s5 \* n# T3 D *240maxp
6 x5 p( {9 k, V: q / S9 u: }$ p" K+ p- k
& E# A/ H! q& ?4 H *-------------ddy240pminp左侧高峰值-----
2 @! `3 n4 W/ V6 U / \9 v$ K; v+ i# b; X& Q$ u+ {
preserve - K# t' h- b7 C) i
' R: [' I" D: S- Q5 p W# E
keep if dx240<`tempminp'6 ]: N8 Y1 u$ U# ], R: n7 |' |
' A9 L3 V2 Q% Q/ C. ^" Y% X: ? i keep if ddy240>0
' ~) A" t4 y/ o- h! O
& M5 i. _1 I' m4 h- Z count
1 o+ ?* Z5 F; t' ~6 F" c) M7 Y: f |
1 U# D# _) q5 j, G" A) `, k if r(N)>2 {8 H6 Z% u: z7 Q. Z
! r1 B' H' w4 x+ w, ^0 M pkexamine dx240 ddy240
9 q/ Q5 ^* v3 Y( H
0 L3 O% f4 H0 ` local tempminphddy240=r(tomc)
& u3 L" T, I4 }& q6 t restore) o `6 E. l9 I8 W0 p, G; W2 R4 l( t
}- J( _ c- b3 M$ J' u" J# X
1 p6 G0 h) ~( j7 ]% R4 ]8 M- P
else {
: ?$ [$ _ X* a, l4 R( B! D: Q restore $ S# t4 w2 \4 A- E
di "cannot find pminphddy240"4 ^8 S+ ~- n; G, W+ r: c+ \1 i+ O
% Y4 }' N& P# y, u \
- k- V) O& w% V& I- C$ u sum dx240
' `) I3 S( a% X6 v* P% C local tempminphddy240=r(mean)
" L' i6 {+ F9 H' q. R
4 T8 I7 J/ E# _6 j: Q0 c
( t/ ~/ i9 r/ i/ u( v. x/ E }3 d& P4 a9 c4 W
4 ^3 f5 G. i% j6 U* V8 @9 X3 P
( u8 Y5 Z5 @) o7 W! T- [' x; l7 \" A9 e# v
; K( j' `8 p5 `" w# g" P* u# o
, K" b+ n) p9 n1 w$ l; |& V# b
+ L9 o/ H8 w" y1 |- f3 X
. M1 Y: {4 Q; q gen pminphddy240=`tempminphddy240' in 1% ^* H' w |9 y0 K
3 s" m6 j% C7 P/ s% I6 [
9 J8 `, ^( _: u4 f3 G! }5 _ *-------------ddy240pminp右侧低峰值 ------------------ }6 {' j0 j* j3 _% Z" ]- T
preserve , k. a- a/ F% n" T' X/ }% k
0 C% o/ i4 c) s# N3 X2 A
keep if dx240>`tempminp'
- j! s" X* y% k8 u% g" q + ^) ]& W$ I0 h: f! p
keep if dx240<`tempmaxp'3 p- U$ F6 q) o
# a1 R0 h$ V1 e
keep if ddy240<0 M+ ^/ r8 p) ^0 N! P4 p, O
) q$ ~, h# I9 c+ h1 y: x
gen temddy240=-ddy240/ h4 e2 Z6 j2 Q
) X" C' ^' n% _# [' V. H count
+ W1 {6 ^% P7 g2 I1 E 3 i- R9 p% P* E- g
if r(N)>2 {
; P# ?/ e: x* p4 Y# p7 b! J
1 \1 I, G9 M' i pkexamine dx240 temddy240
/ j$ K/ v6 Y" S8 q/ g ' N k2 ?" ] Z7 I$ O
local tempminplddy240=r(tomc)* ^" J2 ]1 D6 k1 u2 }8 D6 C/ f6 I8 e- Q
restore% N9 U+ ?; A1 z/ Q. }; ]
}! ], s0 ?6 A$ Y- y3 i' E+ G0 c
/ A4 q1 }( [" D6 g else {
. V5 Z: i+ G! v1 u1 w% }6 f/ {' W2 X
/ l1 B! H' B) v di "cannot find pminplddy240"+ M; E) b) `3 m+ m
restore
m4 v& s: R, u ' C' N7 g/ j$ x# _
sum dx240
+ V6 _( S3 Z# s" b; v3 x" } local tempminplddy240=r(mean)" z) I# B+ P" D+ j4 C& q1 a
/ |7 v% r) v J - }5 {/ V+ e4 Q C; G0 k9 ], i% w
}
$ ~% u& S* ?& J$ o- I
~1 m! L/ S/ S7 n9 @+ j
% Y1 a3 H3 \( w" c5 b+ |6 F) F 2 Q4 w/ D4 }& E' ^. h
( x- u' p% P& E4 O) W- c
( m! {% m' A9 ^- a7 N! Y gen pminplddy240=`tempminplddy240' in 13 R5 B& p# l$ P `& q
# A' _# z7 L/ j2 Z$ x% s
*-------------ddy240pmaxp左侧高峰值 -------------------
8 `; z) O0 [/ c# s6 }3 `7 m5 Z4 P . V% t/ T5 o, \. i- X5 S
preserve
9 s# Y8 {- t3 ? ' S+ x5 F8 j$ U9 ^
keep if dx240>`tempminp'
# S9 z7 L3 J) k' E0 K9 p
, ^' r) b) Q3 o, t; i keep if dx240<`tempmaxp'
: S* [& ?0 {6 \" G0 b; u) ]
7 ~: m) U- ?7 M* R/ {$ ~' t keep if ddy240>0. ^! ]7 W9 N L2 G' ~5 m! `
count( }+ T4 a" E9 q/ Q0 P
8 U' z& j( T+ J if r(N)>2 {; l5 n- O( M3 s% C/ J
8 ~9 m& I5 T v- z7 l
pkexamine dx240 ddy240
; c9 P) H0 s, C6 W5 D) u $ ^% J# a0 f/ q- Q
local tempmaxphddy240=r(tomc)
& d; Z7 v7 ~" \" H7 n% \( A . u& ^4 l. H: |7 f* B
restore
9 b$ \5 }" `3 b7 N }0 s' N9 Y$ y' \
5 N: e, b ?& Q1 M, l2 s( {
else {7 N& X9 W/ }; x0 T a* R
6 N% P; Q% i7 `& @! C
di "cannot find pmaxphddy240"
# H3 h' K3 H/ R+ w restore" `; k5 _' a5 c0 D* h4 A. ~
, j; L3 D; T) f sum dx240' L7 d. i! }, V5 p8 c& R
local tempmaxphddy240=r(mean)
9 y3 F: @- ?& o7 {: t! Q
' P# q& Z. ^. V4 @9 N/ G9 I
7 g3 Q6 b& W6 n$ Z6 M" b: X, s }# |9 Z; C( C' X* m
6 R3 G1 s) X1 U m9 ]
8 W- L, w+ G: [4 ]: @
a2 c+ X+ p9 C; M 6 Y( o* |3 J+ B( j
0 o u/ B q9 z3 M6 ?$ r
$ }! O+ }6 q2 }0 }: I
gen pmaxphddy240=`tempmaxphddy240' in 1
3 D) T0 U6 T- O/ h& P+ l% d - S9 a# }0 }) `
$ J. A f& H9 N# @; S *-------------ddy240pmaxp右侧低峰值 -------------------9 r% a4 e/ z/ \
) [8 \- i3 X9 P& J( x) }' \5 R preserve - ?. L+ S8 y9 m. d/ D2 i. G h i d0 V
% Y0 n# n2 P$ }+ O8 c. q
keep if dx240>`tempmaxp'
# k4 T1 S0 `) O . l% J6 Q N- P' S% q0 P$ ]+ L
gen temddy240=-ddy240: e/ }8 O8 V X/ c: {; @7 [) K
0 ~) G; j8 |. t7 r I7 q% L$ O9 W9 i# l7 V
keep if temddy240>0
1 e" F2 J' i0 F* j3 _( D( Y+ t5 H
) x9 `, u/ C+ r) |" V2 _ count3 o. B$ P+ U, E: V
. o0 i2 V6 s8 G
if r(N)>2 {+ w3 O& j8 L- A8 Z- u* P; N
, c5 A/ Z" c* P% O- {
pkexamine dx240 temddy240
2 Q- B1 U8 C; N8 x6 i
' `# Y' A7 `* t* m9 t% h local tempmaxplddy240=r(tomc)
U$ _: a% \/ B! `- C/ e# x restore
, E& {( Q3 n6 G9 r- y( D! C }
3 n& C3 @9 e9 F# _; ^
. G$ f( B1 {2 d! l. E4 t else {
- c8 N1 U6 @9 I% E. C/ _* p restore
! m4 j& O5 x. U8 h2 ]/ V% J di "cannot find pmaxlhddy240"# `3 ]# B) N$ [1 Z5 m" m
; w8 q$ M0 [+ i6 L8 h / V; E: `( k( e+ j9 o/ W0 f
sum dx240
. m; U2 w1 y8 Z) b, L9 V7 w local tempmaxplddy240=r(mean) in 1; X6 _4 a- G3 d" Q0 v9 K! T* J
5 {" U9 v0 h) S0 a
0 z' K$ ]+ T7 M# A3 o }
. g: h4 J- i- a5 `1 I. H ) \- Z. x4 q, S* e9 L0 Q. L) p; P
# ]) r) Z7 ?: @( O 7 u. ]9 R1 \* l) w0 B4 w
. r2 r4 l7 f3 o' x5 F V" M4 x2 d7 o0 V* F
# i/ N% G% Q" H4 X* ^. q+ Q( M0 I
gen pmaxplddy240=`tempmaxphddy240' in 1- Z; m q* K' d! J: q
9 i, C' T2 k4 F5 l' }
*-------------------------------------
6 _& C s8 F+ t4 t2 x: U# L/ m
4 T9 W1 E" l, q- E gen price5d=v5 in 1/20/ }/ I8 L" P6 `) }# U4 a% k
- P0 g! Y) |4 n: E& F% @
gen price5yy=_n in 1/20
: n: n" R0 x% S# I5 A, L+ t$ x9 X
' W. f& l2 g# y6 r3 E) k. _ gen price5y=price5yy*(dy240max-dy240min)/20) T8 _( P# I# g5 t0 A! I
& Y. a r. o7 z4 v" p5 N; g
*price5y &price5d
B- O# S+ K0 c9 S% j$ h
5 R4 O$ i2 f; Q u gen priceny=price5y in 1: @7 n* m1 ?5 }3 S! ?9 ^2 Y3 C. O! t
9 [- p( s# z% Q4 l. }8 M gen pricen=v5 in 1
, Y2 W* u; }: u% n3 f* w- f" s- f/ u5 ]# g- F1 J2 h- R/ j
$ p0 a# C" \6 H+ a& A0 n *priceny &pricen
* e' i8 L8 C ?* @% B : m _1 ^- }6 c6 h2 X2 I' L
, X7 q. }8 a3 Z( h& ~$ H; A *-------------------------graph------------------
+ A D8 F4 e( F! S9 a7 P
/ m' `1 V9 V$ |" b) j; z 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)
' q8 ~) o' |1 t7 s+ ^& y- P1 D! F# R- F8 X- D7 d* C
* ---------可选项目----------------------6 r+ d3 A, v6 ~
" S9 x# h$ F( R" M1 G" s3 n; ?
}" ^4 }- r* @8 j, L3 K* u
end+ ], d4 d q$ z( y2 @+ @/ I' l
|
|