|
|
改了一下,这次运算应该没啥问题了! Z1 i; l. E* k8 S9 g/ y
8 B9 l o8 p5 Z# K% `0 U6 b
9 i; F! f( F1 r I) i
capture program drop hello6 h8 L) s. u; ]; {3 [! a( B4 X' y
6 T( J% U6 ~) `0 K
program hello6 M2 N- P, d6 N' k J7 I
- j/ _: V# c4 W# v% O
quietly {; q5 U7 v& l" L. U' a
6 _4 _) d6 V! @9 `+ s3 \
clear% J j8 I4 e- c% o9 m, B
- m, `& `$ o& G9 Mcd e:\finance\stock\20110101\source) i. H8 B2 k+ o4 m
# f+ o( h( \/ c o/ y" z, o
insheet using `1'.txt& [8 W. W4 [4 V i
8 K# B+ C) H2 L# j1 C# \
keep if v5>0
0 E' x b- o5 ^3 }+ X+ M
, `2 k9 M+ d# m; L: K gen vt=_n
$ H( h' d2 s2 F) n1 O) u% d; c " G- z/ e" ~' Z" L
tsset vt/ |, v4 \# N' n d7 s, |" W
& y. @7 T4 S4 e1 M/ ^& A2 } gen zf=D1.v5( ^2 w' q% W! {8 d0 }4 }# X- j
/ Y( C* \/ h8 h9 ]1 i gsort -v1& i! X3 g- g7 o# b, C
+ u# G; m1 c2 W @! {2 o% L
gen avol=v7/v5
$ S2 J) U+ }! }1 o/ g
* U4 ]* d; ]: _5 p1 u/ L keep if avol>03 Q' L* l) @- d# l! Y6 x- M
! Z: _3 ?9 c. _$ w
drop vt% ], Z/ y# ]0 k7 q8 k1 ~4 o' o1 J
# W7 B2 V. T: f+ D& ]/ a3 G gen vt=_n
2 _% X% U; G9 Z, ]6 N 0 b7 d3 j* a3 o2 P( B( |
tsset vt
! K, Y* S+ V8 R4 K
( C2 d9 D& T, X& M sum v5 [aw =avol]
( a8 Q* i& l8 x* F/ w* s% b
+ g; m* o6 e5 `5 x, i! C gen amean=r(mean) in 1+ a- j5 w$ [# P$ h( A0 I7 C
+ H/ c- D8 v6 k: r( d6 S1 C * 总加权平均值 amean& E( ~' G+ g& q0 d
: |6 i2 L! ?3 ^6 U2 d' E$ ^- n6 r
; y2 b w9 |* _% b
keep in 1/240. i; w( s2 r6 _0 L
& n- }% n- m4 d sum v5 [aw =avol]( W$ W& z/ L: [1 ~ d0 J: S+ r
6 _# ?3 A8 [/ r: w gen mean240=r(mean) in 11 q: a3 y- `* j
i8 ?% `. c/ p4 s: ` *240加权平均值 mean2402 U+ r# i4 t& l6 ^$ L* R6 @
. z9 D7 B* m8 n
set obs 500 , L' v' p" v0 w; J( d& [
) n* I1 H. O* d B9 @
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph, H! o+ M- l- M6 ?
) B8 i- f# O, `7 w; q. ^& ^ *240 kdensity(dx240 dy240)
' a$ ]3 ^1 w; q) r0 v9 h, K- ~$ G% G
! j5 \ F0 d" ]# V) Z sum dy240
+ k, o4 T2 h% ? & f& P8 ]% p' @4 a% S$ k$ d
gen yxis=r(max) in 15 p, v9 |0 S0 U, T9 Q( b
3 O9 H1 [, n# s t. z$ u0 I7 Z% G8 C
gen yxis2=yxis/2! H/ I/ u6 d6 v2 e& l. G
! J; W5 J# O, \2 z
*yxis1 {8 f2 j& _6 d) Q4 B2 c6 Y) z2 T
) g8 j! M7 e9 f j ]* s( Y gen dy240max=r(max)
6 ^9 O, R6 S9 j$ _& e4 ]" z# H ; X5 x t( E' m
gen dy240minp=r(min)+ e& n7 Z9 Z* i8 Z/ z' N
' N9 q( a; _. h* d& I5 S) c+ t gen vtt=_n
I& I1 i4 W( N" Q
0 e$ g$ c2 J$ j5 S# C2 U tsset vtt
2 r# _" k9 q6 G# e6 H) V# M% R: v! l# p7 n8 U
gen ddy240=D1.dy240/D1.dx240
1 Z8 O& O7 K8 Q5 m5 N4 b7 w 7 f5 g; t1 s3 M# t. \
sum ddy2407 B% l* B! O* G8 A! i* b
% u. z3 U4 d* N; a4 ~. [3 L* y
gen ddy240max=r(max). K+ D) I; w! T- i
/ b1 V' V3 V- E. @! i7 h: Y gen ddy240min=r(min) I5 ^& s8 w. \- }% ?3 p$ ?9 k
8 z/ d, S- k1 A
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min) R1 U, l6 O9 Z' x. ]$ Y" U3 y4 D
- ]$ r9 V z( f' X$ W* ^5 m! H
sum ddy240g: G( V2 \, w$ ?8 D
+ C* J0 q0 R v& E, ~8 W gen yxis3=r(min) in 1# X j N! R* P# b ?' s
8 J6 G: h, x1 J! A1 a- N
gen yxis4=0 in 1
- X6 N" E7 {; g0 Y. G
, h: Z3 Y! T' W4 {2 } *ddy240g 5 H0 B; _9 z4 ]1 v( f
1 i. P* u( v& D7 _0 V5 ^3 {7 d4 V, R ) n) Z* R# y Q: {" a- d2 T
preserve
7 i' ~: O, V) O- O
' w3 W& P; r3 ?' n" T" R sum v5 [aw =avol]/ s4 O# H9 J# i- |% R; W, u& j
+ f2 r4 s- o3 @/ G
keep if dx240<r(mean)( M# \# \5 X. r1 {( ^: T v
( Y" Y0 P& x( j% i
sum ddy240
2 h/ F( g( N6 |* d
, L9 [" n6 J. t2 c- @ if r(min)<0 {
. {+ ?5 O8 p( v& D
# n) @4 C0 Q5 \: b& N# ] keep if ddy240<=04 K' N- J6 }6 S
" H0 E6 q8 F4 s5 C# ^2 K7 Y) k" u count2 u B& j! D# f6 X/ P. c8 G
- V6 ~: Z6 P% I. g
if r(N)>2 {
% X& g. W$ ^* k! l3 I1 z$ u; ~ / }: H. c" C4 K
pkexamine dx240 dy240" R: `; o3 h _" ]7 a
7 @' |/ D* ~5 O8 o1 ] q
local tempminp=r(tomc)
6 u" B' P+ b6 k6 d' L restore
) m! u! N1 G1 [; \$ ~! t4 _& q }, ^5 S, X! V$ r* T9 L
/ Z- _! Q! o9 h* b else {
3 ?) j! Q; D4 V3 R4 | ( ]% }6 x; U* Z
di "cannot find minp"" P. F- U$ o7 ~. ?( H7 D* ^2 M# }
% s' `. X3 D) y, f restore & g" K" J9 E! D
sum dx2405 Y0 l4 `" B" m+ k5 x5 F' s4 X
local tempminp=r(mean). l& H* `) ~$ z
. s0 d/ p; t$ ?* N9 Q+ l
}
. q# N3 R* _' G' x( H0 q6 L }- a- A9 o3 }% I/ J5 Z4 c
else {
, u r6 a4 ?2 N3 z2 f A0 j8 k" w7 Z% b2 V: K/ q# q
keep if ddy240<=r(min)( ~) @$ Y7 G. X" @
5 ?/ F5 @1 F0 m sum dx240$ u, {" ~9 j; q, n! U t
3 R! G1 ~8 l5 U$ Q: }
local tempminp=r(min)) b2 l1 L- ~% R l* ^% V
restore
( y! J$ _2 h F- ]* K }
$ h( W5 e9 s, o2 r+ k/ c( \6 s& c
0 i) |5 |( C9 N% s, Y9 D
Q0 R* p* N# y) Z$ M
gen minp=`tempminp' in 1$ H8 O8 v6 v& E+ [
*240 minp7 ~6 \1 H( q! F+ i0 G' K
- N8 Y1 z7 x0 H) w" E
9 ]* n' R# u0 | E$ V 8 B; N# N) F( y, S$ P9 M( `, G+ S
preserve
3 ]# L# x* @+ @) G* b! A 0 A; D+ ]$ F; H5 U
sum v5 [aw =avol]- d \+ _2 H+ M" C6 P( m: M9 x, \$ |
6 o& m4 l. p, z3 z. y keep if dx240>r(mean)/ y& G& T8 b+ X3 q: s1 ^
3 e- u4 m% _' o$ y# m) K
sum ddy240
8 k" Q% |8 z B V. Z 7 _( m, U" f- q" v3 P' b
if r(max)>0 {& j. L3 _( y7 Y
/ G# ~$ j3 D) J3 ~6 R! k2 I0 O8 L0 b
keep if ddy240>=0
, A( x6 z" ~3 g2 v - R+ u" k, i5 O& I( D Z1 O
count u; ?/ s2 b# ?. n
0 ` h5 O) ~: R9 S5 o& J- R if r(N)>2 {" b6 ~" K! C- B6 {' V2 W' z
8 M/ e8 X( N9 t- X1 [0 ^ pkexamine dx240 dy2405 `9 f" Y* N* J8 D% b8 Q
+ D) g D1 L n2 \" m local tempmaxp=r(tomc)
$ V& i* v/ E& V% B" U% B restore - Q: P, ]0 Q; }# M( K9 Y" [5 H
}
3 i6 I+ L) v; _6 s 1 d9 }) B5 J+ Y' O' n: X
8 U/ U% \7 [' V6 Y! ?% o else {" R$ x3 x) c/ y. t. W6 h v7 o d M7 z
restore , J( Y4 H/ ~$ G8 X( N
di "cannot find maxp"8 d% B. Z0 p4 T% q8 Z2 g
8 X) z( x! A2 k) p' O/ D+ V 3 C! e+ w, ]( G# i3 D( w1 W
sum dx240
" }! Z: f. K4 c; |' \, Q( p local tempmaxp=r(mean)% g5 D$ }. w! O& T* X* s3 x7 c
% i0 K' a: P1 j5 P0 h% e
}- ?& k& Y3 i" j3 O# L: B" q
) @, e( {- g. y* \' u
}! {; F% m/ J/ U0 H. o% q
5 A" ?" E2 E! F
else {: l. v% ^6 S; e% l8 a7 ^
: A# e# g ]2 z2 m7 X1 E/ q
keep if ddy240>=r(max)
' E; q" i$ }& b9 N. }
, ~7 ^7 Z5 z4 Y sum dx240
* s, `+ c3 ^) \: U4 k% v6 Q1 y* }; J 5 G, r3 Z0 O5 J# v) ~# L) \$ i
local tempmaxp=r(max) 3 V% s0 O3 q8 Y/ i' S# K( B x: l
restore
V9 J) I7 L! e* A4 h( T4 `. _ }- f3 a |1 {, F4 C4 x
+ I; d% T H0 A6 l; s% Q
4 S# [! H: a$ _% U' M
& `$ K; m5 @0 I b
' m# o" x! \- i+ B gen maxp=`tempmaxp' in 1
) }- `2 a2 T7 i/ e5 S. `2 h
) k% z+ p$ O- r# _+ e *240maxp
% l8 |+ H) s7 ~( j
4 l& `3 g) I5 A# _( m. \
4 W* G+ c1 z7 E' ^2 r g; D' H# X *-------------ddy240pminp左侧高峰值-----
% m. C3 W+ t' L/ b: @ + }% C* S1 |$ @$ j
preserve
! s& G8 e1 ? N/ u( R! d6 @ 2 } @& W9 Y) S. n4 s: y9 _; @& X
keep if dx240<`tempminp'
# z, o% [7 F. U# Z. r3 | . J. E6 ^5 O+ I9 \1 {4 s& |% E
keep if ddy240>0, b, b! a7 u6 h# \6 C
! v2 l. n' ], k0 Z, M3 l' X count
' ^' _/ K# y8 r- K8 ]9 i- Y + C# g2 f- G q5 {% p" X
if r(N)>2 {+ V( L! F$ y; A9 r# S0 ~ h
5 |" G7 S8 a# V/ x- X" ?9 u9 O
pkexamine dx240 ddy2406 x! U y2 T; e4 U
1 I# n/ Z. |/ U' Y, t* e# H9 Y* j
local tempminphddy240=r(tomc)
( ]7 F3 @; f+ L1 N0 o% l restore- @$ g, `5 f i* o
}
, R* Z3 I( D1 D+ J% F- `& }: b7 B1 k
i4 l8 C& f/ s9 m! m+ \4 I' m; ` else {: m* q, |7 j2 R
restore
! z2 j3 M. _' y di "cannot find pminphddy240"
( J. \. C P8 } b1 d$ W& d
, m5 B W! X; J3 |8 M7 a 3 }( y& O' N' m
sum dx240
* e w% h0 |" L" \+ H. Z local tempminphddy240=r(mean) , ^/ [4 y$ H& [6 X+ U) q
% J! @/ ?# q0 z; V$ ` - Z1 d* W8 |: P# N
}
; \5 B1 T+ K2 W q; @# ^ " }* l: ?! ?5 o
2 A5 o9 ^7 B7 C& [4 e ( `6 v: W, q) I( L
: @3 T; Z! W8 o; q& P7 ^0 O7 z
* }2 h. x3 `; a9 f! F
. ^: y, g; q* S8 s. T7 g2 j1 ^ gen pminphddy240=`tempminphddy240' in 1) s9 w6 q* r+ i$ } j4 z
) w2 u/ ]1 E. i* P/ i& i
5 f. [. }- [. n- x" a *-------------ddy240pminp右侧低峰值 -----------------. G8 t6 k5 A* w$ \
preserve
/ f6 c0 Y/ o0 Q% O6 m Z# V+ r
3 ^% N6 X& P3 O' f keep if dx240>`tempminp'
0 h, k( b1 ?8 j2 {
! X" K6 d6 B: `9 j. b keep if dx240<`tempmaxp'' u! Y/ Z; t" d a, X
" _' O# p, J0 X0 I keep if ddy240<0
# I" T2 o# D- W: J) s6 H . K6 l% W! D) z3 E5 O# v E! @
gen temddy240=-ddy240
" S- j2 |. O+ f5 \6 s8 O3 l & U6 q* ^/ i1 K4 N
count
6 r7 P6 K6 J: ~0 O. V& Y D6 [2 R
% O+ a# A& }) z3 B8 G' k/ z- S if r(N)>2 {
; S. u9 x# h# ^% G) @
8 C! p' m4 g. X. l+ a& U* g pkexamine dx240 temddy240, t% k1 A* W2 b7 B6 V
( I0 ?0 R: I/ P
local tempminplddy240=r(tomc)5 |$ C3 I! F; ^8 z( e' [
restore4 K8 L' _/ R* {; v( x+ y
}
! c3 ] c/ U$ ?9 {9 z" |2 c6 }# W; l
! ]1 N" e9 T9 d else {* B. H( n j# A1 v6 v
6 C# G* C n' u. J( d
di "cannot find pminplddy240". w2 y3 R3 m# M) X. G
restore* E1 H, _, _* E! P6 I% ?, h- j6 U
0 i* a0 ^# R" a. W
sum dx240* V; N) r" V% K* T& Z$ [
local tempminplddy240=r(mean)/ A+ Q" S$ @$ R: }
+ Y, E7 ]1 I* F3 p+ f+ M
9 b. F0 c3 ^2 R }
. P1 M. [1 W; g( n- F % j& ~$ T" `" W- |5 n6 \- t
) N {# ~" _3 K ) Z- _3 w, u4 y6 J! H$ x
: J4 n. P3 F2 G2 d5 d
2 P; L6 X- d; S/ R# x+ w6 w9 k" w
gen pminplddy240=`tempminplddy240' in 18 J, y: E' e# h5 q" B+ H, x4 z# X
( l/ A$ a8 R; s$ j. K+ E0 \* k
*-------------ddy240pmaxp左侧高峰值 -------------------
" S6 N$ m. }5 w) N. X M' A
7 i" q* f5 H( q! [ preserve & u. l5 U- l: ~8 P. U% W, m0 }
7 x) t/ I' ^4 [/ j$ M
keep if dx240>`tempminp'
3 h# e. s; n! r, w% G+ Q- m- f * I1 n/ G- n- b: b( a' S% v$ r9 C
keep if dx240<`tempmaxp'/ o S: K: t b2 P1 A, i3 L
) Y3 b3 e2 ~" p4 C9 b3 O, g6 O
keep if ddy240>0
6 l" u! ?6 O- m3 p/ l d7 _ count j0 Y- S% q- i) P, d: H: [+ \: K
. N2 ?9 ~2 b' @8 M: G3 W) q if r(N)>2 {2 Z' Q- [! }! k7 b4 P5 p% B
2 P- L2 R2 u/ C" w pkexamine dx240 ddy240
6 M9 b* h5 {: C2 H$ O& G- i 7 h: ]# D. n! q! F
local tempmaxphddy240=r(tomc) ( h* O* Y( G3 c- I$ ~) t* H0 y
0 H0 P/ h% \, v! T restore- L, J% u& O& U+ J
}9 i% a! ?% a: o$ ^& T! x( p/ v) Z' p
3 A* P5 x7 O. _0 W# \4 K
else {
2 }* @& x3 h, A: y. l) B* B
) ?) W$ D% k7 ~1 C! G1 D di "cannot find pmaxphddy240"7 N1 F7 Y0 n4 G8 ]; t% X5 ~
restore' @0 y' z4 {# H) v: N1 n
( Y8 h2 d. X; I# h. l0 Z# s
sum dx240 e; W6 _" N8 q% O m* I0 D: \
local tempmaxphddy240=r(mean)
6 C% B0 ]) r; E 3 |2 {- D P& @- i3 F! _
0 \$ y2 v1 X6 u9 z }
! P3 ^! [" `$ H0 H
) M' b p c6 s3 e$ Y, P# J . y* c! f$ C% f% j
: `6 P& Y# }2 ~. l# m4 }5 e+ A
+ W( W. I/ Y6 m, w5 w7 t5 _ $ Y' x+ g* Z9 C2 ~ W0 `
' e6 B) g* N& ^9 } Z7 C; e4 [& X
gen pmaxphddy240=`tempmaxphddy240' in 1
, E# k: r7 o4 _5 m# c
, {. Z) f, A! J/ d: U. E! @
: F: d( m8 E; t! i; Z, A *-------------ddy240pmaxp右侧低峰值 -------------------5 A ^# |' ?* W
3 z. I2 @$ {4 A5 a* O1 g1 r preserve " A- Z% }% z7 ?4 R3 g6 m% [8 s
( G" S9 o, M7 P3 A
keep if dx240>`tempmaxp'8 l: [7 {% T8 ]' Y8 U! T
0 K, v% \8 t" u& n% {# I. B$ O) `
gen temddy240=-ddy2404 @2 W+ G0 F! o
* G1 B' _; D8 \- }! H
keep if temddy240>0
0 D! b U! k5 }! S3 L% A# m9 g& {
: G* J) v) S8 q& D count
' h' _0 ~! D: \ " J# N; e. }3 ~2 `4 {
if r(N)>2 {3 Z; o1 s9 }. I7 V8 f8 t
9 D6 v1 T8 o% r5 I; s3 L" B+ v pkexamine dx240 temddy2400 x3 O% V7 g7 I) P4 C( R
: M2 H4 R, c; @( D, [+ x! h% e7 a
local tempmaxplddy240=r(tomc)
/ l# Q- a* f3 j$ g restore. C, z# P7 a$ K2 q) a
}
8 f( T9 z6 m# R, ~/ W( G
8 @& ]( M* N- p+ ^+ ] else {% ^- _! @# ~. p2 @( V
restore& L5 M7 o( y2 X: u) G9 N
di "cannot find pmaxlhddy240"
4 _. w8 A& M# |
7 U/ {/ C3 l0 V( v2 S+ f
% `' z* i/ t" D. n$ s sum dx240
0 f: z& q/ E; d7 |. { local tempmaxplddy240=r(mean) in 17 {0 c3 g3 O( j4 B- I9 [, y
/ M; u6 z/ h2 }7 L
( K0 x4 o8 R. Y7 ^* K3 s& C }% N! T7 q7 i2 \$ O4 e* N5 O* C
, Y) z1 {) C: m3 a % p* h6 ^: K1 y- x! a+ B x
$ ]6 Y# h" n6 B# P0 V
! D7 f: k: V ]/ N- V 5 g, q3 X6 t3 C N
. A6 F8 U X) p5 p- h
gen pmaxplddy240=`tempmaxphddy240' in 1
# f' R: v$ |4 t, r" C$ ^, T
7 ]" D# ^) d" }% |$ I4 c8 q: w *------------------------------------- c6 O! N, }6 ~* N4 |; S; X7 u
5 i8 u3 G) k; K4 y* Y. M gen price5d=v5 in 1/20
+ Q5 \ k: v4 b7 g4 u
5 B9 ~% F" q j/ j gen price5yy=_n in 1/205 S5 t0 V* d9 B5 n2 z g8 _
) h7 I( `# p+ ]' L' @6 { gen price5y=price5yy*(dy240max-dy240min)/201 V s* z' T4 h6 O
5 w9 ^$ _7 w5 o0 X P0 F
*price5y &price5d/ ~) l' k- t" k- Z
. z7 p3 [; g% {, {, Z# G6 A gen priceny=price5y in 1
( I$ v7 T0 R6 j- ^, r : C& G* l9 H2 d
gen pricen=v5 in 1
) S$ l' o" C* I& J. W; O/ J
8 K! b: G5 V8 l " I% g: A. W6 s" {
*priceny &pricen1 A" x. c- B: Q. w
, H0 H: {! o" ]( @: W, t
# ]. o! y: n4 y: E+ L *-------------------------graph------------------1 n8 q! X; F) Q7 _( b3 e
1 e, W4 T4 A7 Y' G7 A 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)1 {1 r+ u, r5 w* n9 j9 ^
0 w* e0 X$ d& H+ c* [
* ---------可选项目----------------------
: m2 e( F: D6 o V H$ w+ P7 G. \0 C9 `" P4 f7 {; r6 w
}
1 y" U) F! H8 L3 [0 u! c' Kend# P, `! j( f& D. C+ Q* r9 a# r
|
|