|
改了一下,这次运算应该没啥问题了
* K$ X, S) f' ^: h6 _! r4 G1 Q4 d$ y* q6 A7 K3 k
) s# j5 R2 r6 q2 @5 E4 v
capture program drop hello: n! t/ s% c% ^
5 W4 v! |/ B: Q& h
program hello6 e+ j8 a/ y# l) s0 v- S! d
: i! k, t: w* j5 U0 n quietly {
! y) a; E% I1 w6 G8 W6 Q9 U' s! U) f, m8 t; `: l8 n
clear
1 v/ U# R' r9 ]: s+ H* K, }! c2 c- S8 \1 C( X5 |: v2 h
cd e:\finance\stock\20110101\source
K$ e2 X8 R1 G2 F. P; Z. Y4 n; m9 }6 |! {$ y) t
insheet using `1'.txt9 |0 p# e! f1 ^6 s1 U: v
2 M1 g h$ P: g6 D: i
keep if v5>0
$ v) t8 s4 h4 Z# c$ \, h& q ' }& B t' K- N/ D# B2 ?% x6 G
gen vt=_n$ C8 G; I2 [# \
( \5 O1 l; y! V7 d. E7 A; L) |) M6 U tsset vt
0 i$ F$ t9 \2 Q9 g5 f0 z# M. l2 s: |5 a0 |/ H" F) s
gen zf=D1.v55 ^: o8 H7 x. v
0 }7 y8 \& v) h+ U! C gsort -v14 R, t, K& K& u" g1 J( v% Y
; H! L- P: ?* | gen avol=v7/v5! [& y, q& P) ?
; _# B( k5 e8 I! ?
keep if avol>0
5 _ w' [0 L2 K" a: @: [$ D
, s" T: d6 C' t drop vt& l0 k! y$ L7 G2 e+ F0 C
! H+ O$ b( z& a: z
gen vt=_n
5 _2 |: P$ h& B( ~3 u- U! q 8 o* j8 p' e+ v) b' W T) n
tsset vt
F2 k8 Q" C- P- a P 6 x- k4 D# Q( _ }
sum v5 [aw =avol], H8 l9 Y% u j0 c6 u( F
+ r' O' Q2 I2 V, S2 x! F, A gen amean=r(mean) in 1' V2 a J M! U# t8 R; G1 v, k
' n1 ~6 u4 S1 I! k- V+ n3 F; B
* 总加权平均值 amean
. h4 H0 ^0 A* g% e: O) F4 x
1 J# o# H: \' ]% L" J ~ ; h3 i, C1 m+ l+ t$ p7 Z
keep in 1/240. ^3 e" U3 l4 C5 W6 f' d
% r4 W& _2 q! _5 z0 O/ s e
sum v5 [aw =avol]
# \8 M& }( u- f- J2 [. y6 k8 P' M) U
gen mean240=r(mean) in 1- {& k( ]* e" V5 e8 h9 {$ |
+ R' |6 Q' R+ G, t. T, v *240加权平均值 mean240# F# [, G8 P' T6 E$ W4 W8 e
6 U$ H% T7 [9 [0 Y* f set obs 500 & k$ s! ~' {, |; E# j. ?- d; k
# A; k/ p5 {7 ~
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
/ ~ J. U5 \8 z/ n
" `* _$ k3 c$ V' P6 b, d *240 kdensity(dx240 dy240)
: [ L" c* p6 X" ^' I$ e2 \0 M ) ?' r' ^* h+ @5 \- T% ~6 A
sum dy240
8 j' f6 j, x6 h" G, o& \& Z
- b- E1 @5 g. v gen yxis=r(max) in 11 v& j, ^. T: f! ^0 X' D6 D1 m3 c- X
" v, z7 L6 M0 T. o/ Q) ]
gen yxis2=yxis/2
, ~4 H. _3 I0 `, t2 l. \ + }% F! S; S: h4 ^% N2 T
*yxis
7 C0 S( `+ e* a' m b! |
. M/ W; x) s9 [ gen dy240max=r(max)' l9 M) t. N, x( g+ Z! E
# V# W- v, _/ I" ?
gen dy240minp=r(min)+ {/ L1 y& M! M A' l
& q, q; e! m& }* A+ _. `: r9 M x gen vtt=_n: s: P7 C V# j7 K6 o
, ~9 j Z8 @& F9 r' `; D
tsset vtt7 E: x* B6 f$ z7 v) u
: b: M" s& b8 Y7 ~6 Q+ ?% O4 V
gen ddy240=D1.dy240/D1.dx240
1 ?( k6 l) i& ^+ N! r0 n; Z6 |6 i4 X 6 F5 V1 Q P }& ~3 o
sum ddy2406 D2 U) F- u2 n# A
2 s+ Q& E+ j+ L! D gen ddy240max=r(max)
0 b" q2 C1 ~4 {3 g 7 q5 U0 u* R3 r6 p
gen ddy240min=r(min)4 J5 j# B- ~6 K U5 l: x
) H- |! j4 s* @6 j5 H; S0 h gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
. ~6 D6 j9 _" e! W6 G7 V) O " y# c$ j% @0 ^* s
sum ddy240g$ `8 S: I2 d* s( ] C
+ S* n" ^0 C |5 m
gen yxis3=r(min) in 1+ d0 |4 E; p* Q# O2 n
, B- }6 F |) {
gen yxis4=0 in 1
! y$ {/ F1 v) a- E# y8 Q 0 u8 S3 O" f4 |4 X: O
*ddy240g
3 P7 s9 }1 k7 S! J: L B " H2 V# m" }: ]; ]
) R' ?8 M+ n' }, B& h
preserve
" V0 H2 z. b3 F8 ? . n! |7 t* Z* H9 ]
sum v5 [aw =avol]( t" d7 ~ {0 A% l
9 T3 u0 g- b, [+ Q keep if dx240<r(mean)* M2 g! J Q0 ~, y4 C2 Q( ]
2 ^! ^! y% g2 N/ Z& C
sum ddy240
% i" Z, {( G) v7 O/ q! U( O/ a
& j0 q8 V; [/ I if r(min)<0 {
\' |% x# x, D& y - K& b; l5 F r# @4 f! H$ W1 D
keep if ddy240<=03 N7 w7 j% ?$ [8 O! |. J+ R
3 U) X, E& d0 n; Z, A! M count) d+ O! ?' ]( Y3 w) Y$ U( w; u0 x
/ h' \% P4 Q% r# X+ g9 P if r(N)>2 {2 W s; P3 j& f; Q* W7 e! U
: c9 p6 M+ r9 u9 d- C5 A pkexamine dx240 dy240
+ d3 y. }2 D) q R9 C+ s7 F4 s5 ? 8 X0 U2 Q! T. y4 J$ ?
local tempminp=r(tomc)
; G+ J- a: |! N! Y5 h. k3 G restore
; i4 a% L% b( Q3 ^& c }9 f* W& n0 w- ~- W
; H; ^ e6 Q0 b3 P# ]3 m5 {( M
else {
; f! {2 L+ N2 J5 W- V H0 k) ~ + z& T1 s9 {( H) w" P+ W
di "cannot find minp"9 b5 v7 @3 V* u* W
& T) L; D6 z& W5 c
restore
0 b0 F* k- u& @- ~ sum dx2404 Z5 p" d! z! j8 X! V+ c; x
local tempminp=r(mean)
5 ~1 ]1 l! f( n+ N5 V % z! X: e: [, N/ y% o
}8 q+ u' B7 Y, ?- R
}% N' Y! F9 }: P) c3 H: k/ F2 P
else {/ [! S- i4 p0 Y# {6 K* X2 g3 M
! [5 W" y. a! n# K# a keep if ddy240<=r(min)
5 B$ \, l1 ^, ]
s2 n. ^0 Z8 ?. M7 l8 n sum dx2404 G$ Q$ k/ P% U/ v0 k. D' I6 `
/ N; C: J) p2 {
local tempminp=r(min)
% s7 e4 T4 M# c9 j5 h7 K restore / {. ^9 K0 a: `+ D& c
}
. f2 a- U2 T" Q3 y( z& N
- E$ A7 C' ~. H% r# G! @5 ^) M3 y5 P- |: Z
+ n: \; ~& t# n& s$ V
gen minp=`tempminp' in 1
) v; v- b/ U# X *240 minp2 o* D+ d" W8 s. \3 j0 s5 V
3 V/ p- g2 m6 `) x( K# j
2 z: C6 i2 k! h# M w 0 C- f4 G( W% O% H! M
preserve
6 g' q$ R. E9 i0 w9 Y 7 Q! Z1 C: G6 H, t$ C( H& w
sum v5 [aw =avol]9 x5 Y6 a8 G/ O
+ P+ T8 w6 ?" ~) s3 c
keep if dx240>r(mean)2 Y: h' f2 p# w: d$ V% l
2 s' H* N! x: l" z/ `5 ?9 ~* y
sum ddy240: ~- e2 o3 ?7 A- Q7 j
( Q9 g# v* ~4 t% [5 U3 k! ]+ J( j if r(max)>0 {# V. h1 Y" V* q$ }" l
( o: {( R4 `8 F keep if ddy240>=0& E) K$ L% u; Y5 A3 I
8 r* }/ d% k3 u& g4 ]
count& _5 S4 M3 g; C5 E5 a9 y
5 k, w& |2 g9 e* P, p* A* H
if r(N)>2 {
1 J1 z( [" F5 c0 Y/ R, L
# S5 ~5 o* E0 R7 I1 `) ~2 p0 H5 X pkexamine dx240 dy240
n* z) O2 n9 [- }- a9 r 2 \: Y* z& D( [8 k& c8 {! U
local tempmaxp=r(tomc)
3 C" |+ b g0 @ [' y; L& m, [& E restore 9 J0 I M$ w! H% k4 Z
}
0 j% Y% c$ H1 S9 u
@5 c- L/ [; c: ^: R8 c
% D) {- }* @2 h" D( D2 V1 m! F else {
2 J4 ~3 ]0 _8 Q% m, I* D9 x; _ restore
/ G& Q0 Z. l* y0 F. L% j di "cannot find maxp"
" i, L9 x$ m5 |( I4 _0 c 7 Q2 P' @; l: Y' z
4 D; `: @' \9 T( b, o0 o sum dx240
" y) m0 p- @1 b' [) n local tempmaxp=r(mean)
1 d5 {6 J9 t& c3 s1 G' ~: } z, U 9 N7 \: D7 d$ U1 z0 M' [
}' h% Z+ |$ Q5 b1 N4 e) G
$ t# @+ j* V* \0 m9 ^2 q
}
2 e2 W( j7 F, t2 ` K4 s& P6 L ( t5 h( X7 ]2 C/ R6 u+ a; P) x
else {, _& b! F$ P9 C7 R. i. l! ~+ m
) C1 m) y5 z4 Q' `
keep if ddy240>=r(max)% e. _ u& ?$ d0 r. G3 X
, r0 s, r: Q1 V3 W7 G
sum dx2408 q/ P c; _5 I0 K) G$ g
4 X& M2 _; E; _5 ?- N1 N% I local tempmaxp=r(max) ) f" I1 w/ I+ Y s L' }- I/ \1 @
restore
i# d4 N% o! U0 m' n7 A }1 U8 s6 b" v" c2 Y
3 O d- y/ T" e9 D0 {
. I( ~2 z3 e# x" e8 z* v + Q9 D2 L% ~5 A- T/ G+ {
; p6 T* V3 u5 D5 C* u
gen maxp=`tempmaxp' in 1
) a$ Y- M( k/ i% ]4 o
, q0 j; F- S' R7 K& C" Z# J6 i *240maxp6 t; i: J' z& G
6 z ]7 O$ D( L, f. m' L: j R$ k+ ` M
+ I5 x7 {3 X3 V0 u *-------------ddy240pminp左侧高峰值-----( F) P: N1 T. g. p! j' W2 J
1 D8 O4 ?7 X: e9 ~9 E
preserve
]/ U* j: ~# `( ?5 i
* g, U" \' m( E+ {% `! E7 f keep if dx240<`tempminp'! z2 S! B4 V/ f8 m
& H+ y/ Z0 r3 | keep if ddy240>0
( N9 ~2 [- m- `" p
. }4 z5 D7 }5 i. V( L# ~ count
2 V9 Z( Q7 V% H' h9 m: C
+ c7 Z3 J$ k$ G$ l& v b; k- ? if r(N)>2 {9 t, Y* T, ^' A+ y8 ?
/ C4 h+ A+ B+ @9 D pkexamine dx240 ddy240 u5 q9 D6 F' H" N
& w- s. V' x7 x4 g local tempminphddy240=r(tomc)
/ B$ V R- u8 E7 c: r t* M restore
7 N& N% y' x8 C4 X' |9 _& i7 k }
# [( f$ H* D2 p% X
& e1 o' t7 j+ L" L+ v- L else {& H* `: w, P/ _, e5 ?* n
restore
$ e$ z, P9 e; W0 C di "cannot find pminphddy240"! x V" K* T6 y) h/ U
% q. x( y4 W# k, m+ g
) M* A" L6 c: s* C2 T sum dx240- x, }+ l @5 S
local tempminphddy240=r(mean)
! b" ]; o# L* O$ P T5 P# l, F, r 9 l& s" g# o& o+ y
4 K7 _6 S6 q5 S1 A7 ?
}
2 \9 P; [4 {9 a7 {3 I. \$ E
# r1 Q4 y" Z* k, A' L( Y1 y. J3 q
# {- `0 C9 a0 d/ V 5 Z' F* A7 h2 h" h/ P
. @2 N) s7 R6 M+ [2 f' }, o " s; v2 X: H& H; Q- u/ `$ y4 W
# k0 V6 D6 M- t" h+ X& I gen pminphddy240=`tempminphddy240' in 1
" u1 D, h7 f D
; S( l2 R7 n) Z8 M' f
- w) V+ b* d' q) d/ i6 V+ _- s5 K *-------------ddy240pminp右侧低峰值 -----------------
0 B6 O; J) m8 o/ e1 B1 f/ z preserve & e; w# l V6 c, N( {+ L. C2 m# n
% N& _* t# l* M) E5 n
keep if dx240>`tempminp'. M5 v% b9 [2 F9 P" d* D$ m3 l
2 \, k, \' m9 b) Z8 I' {# x keep if dx240<`tempmaxp'
1 V2 L7 E9 {+ @- K, M. n s) p 5 E# ^- H- s2 e3 P+ A' h6 H
keep if ddy240<08 Q# O) R: ?8 e9 C# U- R
; Z g# Z& I! P& e! H gen temddy240=-ddy240
- x" y% ?( E. ~7 I , S, i( D3 v! l% @; \( G4 Y
count9 i& u! x+ |, ~: p7 E* H
; U& g6 C2 K" a) N9 J2 y* U3 p) Q if r(N)>2 {) m1 r/ n+ g! D3 q/ R& }
`! I q! |. }7 F7 n: F
pkexamine dx240 temddy240
- H) h3 d6 n& P8 U0 W 3 P/ k% ^: Y, k; a4 b" F0 |! y: q
local tempminplddy240=r(tomc)0 @% a: x! C- J/ f) m* E. n* ]
restore
& Y7 t& ]; }+ @4 [ }! ~/ w% U" R2 G- A! X0 [8 W# L7 P
+ S& c9 m5 v% k4 N# Q3 d+ m1 s else {: M% w" c8 T* N/ o- b
7 ~" r- |7 z; a: Y, q1 d8 z
di "cannot find pminplddy240"' B0 c: A" p0 @, |
restore
+ v; Q6 j) N; l7 w; B1 W4 F* j% q
2 [$ ^ P! a) a& \) \4 b- d/ }. k sum dx240
* V( g, \4 B8 a6 S( Z0 [ local tempminplddy240=r(mean)6 a) u Z ?6 X7 L2 |1 b: E
9 Q$ j- j7 D' \/ a! D) [* y' e8 Y1 q( M
+ D9 F. _2 [5 ]. k. Q }
4 O# s, i0 @7 Z/ E
% g+ v4 _' y1 I 4 ?% z* X* [' E# |# ^
2 B0 \$ o! a) z9 f( |8 Z( e- M E
6 x+ n7 i' d- G; P: r8 y" B ( b1 H$ ~1 p4 V, Q7 m3 u2 k
gen pminplddy240=`tempminplddy240' in 1
8 `, O) m4 U, d4 T( p+ C `: r & W& S) J! C" W1 g/ ]5 H5 Q* A
*-------------ddy240pmaxp左侧高峰值 -------------------" l4 X) y! P( V& k0 G0 w+ B
2 y. c; C/ C) f& ]2 g5 }, g7 i preserve 2 M4 e* I% z0 M A" S y
' |8 L+ u" w% C* B keep if dx240>`tempminp'
; J6 W( S8 k g* M5 N U / t1 I* u4 q$ p! J1 w9 v6 @% O& b
keep if dx240<`tempmaxp'' }/ N! G2 ]; x* {8 K" P
' R& Y$ o) ]% m2 X+ ~
keep if ddy240>0
# S# {5 U( G! }& B count+ x& W0 G+ F' L8 u* B; ^
) G$ U4 `5 q9 t7 a! n, h if r(N)>2 {2 E7 @/ t% V; X- L: u6 ~
% ` M( w( s9 f- T+ e" C
pkexamine dx240 ddy240
: k2 }1 \& R/ K- @ J
5 \6 ^, }/ y7 q( q% n# m. } local tempmaxphddy240=r(tomc)
) y1 [; L- ]+ y( g/ g G
( J! C& K4 C6 S7 K# D; {& k restore1 L. j4 F* R" ?1 r
}
/ h) C+ g7 [) W( d' [6 y5 R" P - B; e4 U3 s+ ]$ m
else {/ \3 G7 T2 P3 |) |
% \# S8 w) D3 c9 p' |+ }2 ]
di "cannot find pmaxphddy240"% @) t9 `2 W4 A& m5 j# A M
restore
* }; y' l, X8 p& M& d. V 0 M0 _6 Q9 n" t, | {# s
sum dx240
1 w. f6 C) [9 M local tempmaxphddy240=r(mean) 5 u# `8 q% Q# ^- D/ _* {
& j2 ^0 B" ] j& n a7 p! A: S! x) N5 i
}4 ~6 E2 w5 j, \( u$ m
" F: w8 A, K# ~1 k
0 {$ ^4 {0 l, b0 Y1 ~0 J- S" [9 V' V
( p7 V6 \. ]$ X4 f7 y " Y7 G6 s( L2 J( o3 {
9 s6 }0 Q% H4 A
- X P; v% }2 `* ^1 u( Z gen pmaxphddy240=`tempmaxphddy240' in 1
6 f8 l6 S: Z8 C; x# M c. w
; Q2 }' G5 e- }" q; s
+ n3 j2 H# M8 e( k+ j *-------------ddy240pmaxp右侧低峰值 -------------------
5 M5 ^8 p& H* L% @$ V
4 g; q" A/ ]; C6 z! j+ R5 y preserve # r1 I7 q% ~7 q' Y! _+ [
, @1 ^7 }) J! D2 J& [ keep if dx240>`tempmaxp'# U1 c5 L3 q3 n- k9 {8 P
+ ]3 p+ z6 Y' Z* `* g% _+ K gen temddy240=-ddy2407 ]$ V D3 z/ b* c t
2 W. i6 I& n, s$ ~# H* ~) s4 { keep if temddy240>0
7 m$ `) x' i1 A, J% V" Z$ } / i" y3 ?5 t& ~; I h5 ~; d( f
count, S0 G8 O; {+ w* R' I. e
1 q0 l1 g& u7 a7 r2 o q/ t: @/ @ if r(N)>2 {$ E- q' Q4 j1 ]9 l6 x
# X% }& `# {3 K8 {: Z& k/ R7 Z$ H! @ pkexamine dx240 temddy240& M, e; j1 d' V
+ N' Y6 X+ H9 v, {# U) Q! N
local tempmaxplddy240=r(tomc)
% L4 `& H# p* G; d* Q3 \, N7 \ restore9 ` \6 Z4 F0 d/ r0 E' i$ \5 k( H# Z
}4 J, ~; P6 e" \( g/ S6 p
+ g* q/ O- E1 S4 U else {' @* E# L6 E. ~
restore0 [, A" W1 [ \
di "cannot find pmaxlhddy240"& ]- u1 v4 V# N9 ?4 d
& h- O5 M- P$ s' |# |, y: ^' J: Q% M
0 o3 X8 m* B% t3 j$ k
sum dx240
5 v7 F8 I9 d! ], t/ | local tempmaxplddy240=r(mean) in 1
9 ^0 t( ^: @& J3 {0 O6 X |) l+ Q
* P9 H. d' U8 G 0 ` O9 Y$ k, S
}
" }" e; I) U8 ?4 l0 e x 1 E' O5 H; y; J3 U9 ]
! F3 Y. X& \6 ]% ?6 I4 n
! O- ]1 @9 S, g; @) o8 o/ F8 |2 [
, l8 Y3 ` n# B* q$ r- n
# o) S4 {, `, f
6 W( t( f( V) }! O6 K gen pmaxplddy240=`tempmaxphddy240' in 1: d$ g$ [0 y: }$ g% j( }
# L3 H! e( s4 y$ r' } *-------------------------------------$ f# Y6 v" K$ D. E
! ? G: `9 u" `. ?+ I gen price5d=v5 in 1/20) O! F, P" W( O
7 l4 y, _! E: C1 T7 L( }# U
gen price5yy=_n in 1/20
9 f8 W1 s n# u0 _- J ( c1 Y5 @+ V$ \
gen price5y=price5yy*(dy240max-dy240min)/20, r! a0 j7 ~) l' R+ ~" s/ S
b( Y; M$ O9 p *price5y &price5d. `8 i+ q; D0 `7 J* \( J0 e& n
4 \1 j6 g$ S- k2 _; ~ gen priceny=price5y in 14 _; s) L# I" ]; K
2 w$ }# A0 v* z9 `! G" c gen pricen=v5 in 1' c& D) I6 l5 I. t: ?
; d2 j- H) m; _3 p: C- y
8 I! |6 f' r, s- a6 V *priceny &pricen! e- b ~ D3 V
7 t& I8 m, x1 a4 C3 y! ?
. @+ U$ L% Z# k# I- S" [ *-------------------------graph------------------
1 m; s/ f3 N1 ^* v
$ D" D( k& b$ {. G 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): C% m% Q2 c ^ H
* }2 R: p0 m# K5 B* ---------可选项目----------------------
6 N2 `, {6 U3 D1 ~ L4 n) Y1 j! x
$ ^% u3 C1 R: W6 E}* I- [+ y# L$ L
end
. \3 H2 r" V3 V |
|