|
|
改了一下,这次运算应该没啥问题了
; p+ G# }. G! g! ]6 [# M* i4 q. j5 G& ]
0 o9 |' Q2 X; D( t
capture program drop hello( ?- k- T$ ] R6 K6 }
0 X1 e0 U5 C$ n( l3 K% r" O: N! E' Nprogram hello/ M; L8 B# f; L: d: ]9 X& K
* T% A- r9 v( k- Z
quietly {
: J. K0 S. K: [( D5 T$ u* d- c4 D- s3 G" L3 A
clear
; k4 z; w9 M* @- K0 r( a3 Z( |! B: a
cd e:\finance\stock\20110101\source- q5 [+ r6 M4 s( U$ |9 j
5 v5 D: b/ I9 g5 n+ S% @+ Hinsheet using `1'.txt( Y4 T- g4 A2 q/ D' H3 J6 U
% W U* ^- V! U: k' Q. K
keep if v5>0( L9 D! X5 o! H! O1 t$ F: x1 K, i0 ?. S
& e, q: J& U; V( ~# H
gen vt=_n" @8 N1 d4 Z5 U
- q, K2 y- ^0 p3 ^
tsset vt) F! V9 l ?$ `7 [: u! l u) P
3 H4 S( N6 x" A
gen zf=D1.v5
/ Q5 z) n' `. H! d$ s8 Q3 H" w( J2 J; |0 n1 o
gsort -v1
9 f- x3 l# ?' x0 e, i, g- @( @2 N5 b7 x0 c. B6 t) R
gen avol=v7/v5
2 ^ z% f u3 o# I1 U! N1 C
4 K' g3 l) a& L; P3 t' g8 p keep if avol>0
" |+ N* Q, \1 z/ s! [8 F( j0 |4 X ! R1 S' E5 U- a. | s
drop vt4 D+ v/ O9 H, l( J2 b
& H, D3 }; j" Y4 Q( n4 O* a gen vt=_n
3 d$ v: T5 X, m+ w( \ 5 K0 N- {7 z9 H- H
tsset vt
0 I5 m; Z6 L9 f5 ]1 i6 u
. D4 K1 h0 ]% e# ~& y8 [ sum v5 [aw =avol]
) `% }# R0 F/ `! K; U o- [% _1 v7 o: X) [5 n, L; y
gen amean=r(mean) in 1
" Q( [, h+ p5 N5 I; c4 ?
# E! F& W, S! i( m; w * 总加权平均值 amean
- [; F) T4 S; @ z1 P8 v) P0 f5 T
8 g3 ]5 ~0 ?: E' `7 I& u keep in 1/240
% P$ h F B8 d3 S5 e2 r g: n. ]' r4 D, |3 {
sum v5 [aw =avol]
' n# d5 d( o- s9 l& h9 X
9 K+ u& J; G8 f, p gen mean240=r(mean) in 1* @4 ] q/ e3 ]+ s% K* t! z; h
5 ?. S$ w/ T. h; C
*240加权平均值 mean240
) }/ F: B7 e" t( X" t, ]
( |( U* ]/ ~' Z* O1 H/ W$ ? set obs 500 6 h0 u; {; Z+ `3 A, w
. _& r: B- `3 q( e$ a+ k kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph2 A1 c/ e/ Y u- X9 R6 G
# r: M n6 S6 e* `4 o$ X
*240 kdensity(dx240 dy240)
$ j% w' [6 U5 l' J( }! c( i
( q9 v% p7 m+ F6 W* @6 @7 @4 u( | sum dy240 [' o8 z" r% p( \/ j+ W+ X' K
, ]' A. J) T) m. }# K, P$ E gen yxis=r(max) in 1
1 o- I+ D# B2 M( c2 g
9 `4 Y# o6 u1 t' R( r& B gen yxis2=yxis/20 @; |7 u: s. X9 a5 G4 g
, E% o/ r# @& {/ U3 R1 I *yxis# _0 L2 v8 c/ L! Z7 Z: `
' b1 n! S6 c: v$ r2 C
gen dy240max=r(max)$ P: j! @9 }! c
& V$ k& {/ b5 k
gen dy240minp=r(min)
! ?; m( _ _. }- V+ c& R, G 0 r8 c( _) r' Z- I3 ~% ]: {
gen vtt=_n6 S, u( i- L: a3 E* i0 @
; ]: w4 e4 k" ^/ c: z f) I
tsset vtt
?2 l' U$ G! O% a/ k3 V! w' A; g( ^! `/ s) U- V
gen ddy240=D1.dy240/D1.dx240& Y. H5 a8 L" k+ R( N: Q3 @
) N1 ?0 T# `; s4 G: R! i
sum ddy240& D1 B/ p6 U+ K- v- N" ?1 h4 w9 Q
( e3 n# J. Y) L' A- U. o gen ddy240max=r(max)" J% w9 Z8 h( a0 P% ]; Z- i
0 r# T: @ ]8 c* Z, r/ |$ w' K gen ddy240min=r(min)6 t" L, y3 {; _$ b' D3 [
$ m7 R" k6 _7 m: ?
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
+ p8 K: U& d& [, m+ @5 ~. i' | 6 x2 A# M: U- F1 `
sum ddy240g
' D6 `* F1 W, T7 u6 q6 ]" v! ^& f ' S2 r5 w, ?+ G# B; S' i3 N* f' D
gen yxis3=r(min) in 1! `6 I' }/ P+ n" u8 S7 t
9 S% q* Y6 K4 f9 E; I' O gen yxis4=0 in 1
7 w( H- _. L+ t) M7 Z" j' f $ U1 e6 w7 ]5 u6 W
*ddy240g
7 q. I- d. D4 C( s ( m8 h) S& e$ s! N
/ k4 p: m6 K; r/ K3 W6 T9 I | preserve
3 a7 c3 p9 X. ? g7 r1 {7 |! _ $ `/ T* Q- i* k) P; a/ P# j) M) g7 w
sum v5 [aw =avol]
. i. t' ], @& T+ R* s
5 H( r' T; |4 n1 ^* u9 R Z7 d+ L keep if dx240<r(mean)
/ M7 u' _& T2 d- } 7 \6 o# z t7 |2 Z1 I: N; ~) t% J
sum ddy240" ?) V/ }2 z7 T4 x3 r! m
! b5 J9 c) y' ~7 X if r(min)<0 {
8 {: g3 N/ X) C9 r1 S# l
( ~# L { K I0 l: F keep if ddy240<=0( l' P4 |3 a V9 S
0 _2 ~! d/ s1 S- c. w/ _, m2 V' m
count+ j: K' v. v, ^+ u7 _
# q/ R, ?8 f- c! y7 Y4 @7 S! H
if r(N)>2 {- c8 @9 ]+ Q; a
7 D, h/ M& V$ F& E0 J3 y1 s# k pkexamine dx240 dy240$ t7 A; a$ i9 u
, H+ l5 W" C l: z
local tempminp=r(tomc)
- B! c9 d* ^! K3 X8 b+ R restore
3 H0 L0 `: v6 k O6 A }+ x6 T5 C% W" B6 V5 n
/ o* O J- y: p. [1 o( h
else {3 M2 k' C3 X) N- N2 S( {# w2 s
. f" H4 ]6 F) v4 v, ?4 P' C: W5 Y# p: ~, ^
di "cannot find minp"8 l+ i7 L$ S0 R- M
) o% ?' ^3 A4 _' S- \' I restore " x: F& j+ ~; P6 |7 Y" q: a
sum dx240) j5 H2 `6 S$ ]$ @& H" W
local tempminp=r(mean)3 b1 ~( y7 g9 o5 H3 c: }0 y
2 e2 y0 ]/ {% q, N2 _ }
" R4 k$ B: {( ^5 Z# D }; E: }8 c3 K5 v8 K( d
else {
, d m: z2 {; b9 B$ s1 H; b6 J0 ~
; r0 \# Z' z0 N9 w5 F" v; J keep if ddy240<=r(min)
+ h3 w" O) Y5 Y9 k) R" Q - D0 w8 w% y8 D
sum dx240! m% J, o; d3 [8 T- e5 R1 f
# J( Q% z" l+ W4 W local tempminp=r(min); Z$ k2 n# h4 k' m0 @
restore
& s! E6 i5 p' { }# v& s, X: v! j( {* W
0 B" O# F( w( i* I% r6 \/ y7 w
% |. E+ N' E0 L, b% Y5 H5 k1 s3 F& o9 P2 s) e- S( G9 G2 ]7 }
gen minp=`tempminp' in 13 p2 {" y3 J3 l/ s, ~! S% n% l
*240 minp
! [5 A0 v0 ^' B' t9 \
" a6 a) N2 i- |/ h( c6 w9 ]9 i* c- E. m; t& s: l; }
3 f2 u- T% O- H9 O6 e
preserve
! o; X& U$ M8 i
' E. E- d6 W$ H+ | sum v5 [aw =avol]0 l5 e! B: n7 j( M
, ~& A8 F& T ?' F, W
keep if dx240>r(mean)
5 c/ S" e9 L& u) P
9 v6 c- v |5 x! U% B! s sum ddy240
) d8 p% C9 M* j9 v
8 F4 j3 |6 I/ c P if r(max)>0 {
! i) _1 I) t" b$ x% g# V " Q2 {% \1 W7 t! J6 I3 _& g) x' U
keep if ddy240>=0$ ~0 `1 T8 }" z' P) `4 a& C( o
1 @/ @- r6 l: @0 W count
) O& C5 W, K& p( u 2 k! F5 E) K( p/ `7 e
if r(N)>2 {* T& _& e7 G; N: Q6 d4 `. j; ^0 o
2 |; |1 I/ Q/ K) O
pkexamine dx240 dy240- ^- Y) s- b/ }1 m t" L$ `5 \: Q& f
: s7 V# z$ ~9 t local tempmaxp=r(tomc) ; ?2 K6 v8 h4 M2 t0 ]% p; |( x
restore 5 R$ f; W! n8 r. h8 m6 _0 V+ k8 M
}
0 ?7 \- ~( R k$ M& v$ L 5 R; U* t. a" F" P4 Q
6 b0 j4 Q3 e+ F2 q U5 v
else {9 Q# Q# X2 P' x7 W( T) E4 _
restore 1 |8 j' I6 [7 C
di "cannot find maxp"4 ]) [5 j* `) l* |
$ u0 @' ?! f* _& r! w& y
7 ?/ @- r( ?7 O6 r8 O* D" o
sum dx240% l, F* l2 ~2 k. g! R1 J
local tempmaxp=r(mean)
3 o0 l& o( ^3 h8 P& y8 y: f! H: E
6 l1 k4 d6 |3 F; v9 \ }
3 Y5 ]0 v0 I C7 ` + n' ~% ]3 M3 i$ w* v, s
}' R3 i1 N- C: R: S' ^ W& ~; B! _
) c% C- b5 x9 c. H% q, J5 m7 O2 C else {
2 k$ ]4 b/ g* o
" L' {, f! B% X keep if ddy240>=r(max)& A2 E7 D4 h9 _- j
. Y8 e& l- F t% x
sum dx240! R. R. Y7 ?% n, z3 p, j$ K
& f U9 z# ]) w# O& x. C local tempmaxp=r(max)
& H( B0 g% e! F' E( B" A restore , A2 {% w6 i3 F+ M. C/ X6 C
}$ d) M! J7 | W9 x
- n$ }$ _4 m+ u j5 e9 g
. \% N' y2 M3 S3 d ( D: m P; S0 ^9 G
4 q4 V j7 g( e; v4 K8 a gen maxp=`tempmaxp' in 1; K% ^4 P6 N1 d4 D; x. `
- W1 u1 I4 i8 P/ [% X ? *240maxp" Z- P7 ]4 s' o; F6 X: r, i8 G
& N g; ^1 h8 u( X0 b3 o0 ]- b % O" M* F0 \- A# s
*-------------ddy240pminp左侧高峰值-----
2 \, A6 x/ k6 w
( A) C! x" v( V3 f i preserve
! J' }! L% Q4 _. O- O. f0 Q! P 7 O& Y) R% C9 r5 v% C
keep if dx240<`tempminp'
3 z# X3 F3 j9 d% ^; A% H. D: A / o0 L' Y: |4 G; }8 t! e
keep if ddy240>0( t- x; _" S& E( L0 P o6 L; m0 i4 e
3 W/ X; A/ I6 W! l count a5 ^5 [& g7 f6 B0 Y3 g
6 {; `- K9 Y# z6 n if r(N)>2 {
- H& I3 J- \; l
/ w6 }$ u0 D5 @/ } pkexamine dx240 ddy240
' s9 V9 k" A0 C; p9 j8 x) `. R% ^
; P( H7 ?1 f0 G' f/ Z! @ local tempminphddy240=r(tomc)
, b" A* x9 Y* E; _/ }3 P" F3 M restore
% {" t8 L% {# F }7 z) v: d+ }5 s6 v
# `" c6 P" f# y else {9 J2 Y: ]4 c: H
restore
! V9 z) t1 w+ b+ Q9 A di "cannot find pminphddy240"+ M% B0 C+ i9 y* p' l7 u2 x( o/ o- M
9 J6 x) J- E4 i6 q* q
4 m) i L% h' A- G9 B$ f5 L6 J sum dx240
2 c% j/ e9 L5 _) ~2 i5 t: I" ? local tempminphddy240=r(mean)
) _# h3 V) N' z/ W C 9 Z9 R" \7 k) Y
5 O( A4 E5 N+ E/ e% k+ W1 Y
}
. X* N5 R! m9 i) I) q
9 [/ ^5 v" ?* P# a3 p & d' F3 O) a& J8 {
1 B3 G1 D- ?' f' l
2 R# i; C7 K6 l% N' x
- F- I5 S5 ]# W9 ^ 1 h$ }5 f" |7 T/ S
gen pminphddy240=`tempminphddy240' in 1
0 ]1 I1 r5 E4 p2 ~' K ' j9 B) }+ j/ b* b* @" g% [
5 {: M( k @4 ^4 ?1 V, p *-------------ddy240pminp右侧低峰值 -----------------
1 O$ S- U4 O0 V& ]. }: } H2 X2 ? preserve 2 Q: P4 k3 X/ `' O. P7 U
. z" {, r% L, m& g
keep if dx240>`tempminp'
9 q- O Y& H9 F' J8 C4 W8 ^ + b5 {" u9 O; C7 H& s! @- ?
keep if dx240<`tempmaxp'
3 X) i3 K, J$ S7 U6 `" `: n: ~ ! m4 K x, ~ K; `8 x. o) a% N& ~
keep if ddy240<0
1 y; I/ p8 P9 Q' M
- M: k8 ]3 O9 }& Z$ N' @ gen temddy240=-ddy240
; x% U9 y B2 g4 |$ w% V$ o. E. q$ g ) n0 }( ~ V+ z6 A" s' F; @+ b
count
/ Z( p+ |% d3 }; i ^' g% `
( O$ b6 ^- s+ q if r(N)>2 {/ C3 d8 ^0 g0 G5 C5 j& V
+ x& V7 ?; y* y5 a
pkexamine dx240 temddy240' ? Z8 i& H: X0 V
/ e5 C! C! n+ O% X, i7 i6 _
local tempminplddy240=r(tomc)
6 N, c1 X" I6 G7 c restore; U/ U4 k' f& o9 m6 z
}" z4 D6 G* E* U& j) g; B9 V
( H4 M/ K. g3 h9 Q4 G; c else {
6 K% Y9 j( w5 B$ ]4 i # u) [/ `2 D, U6 f2 o) z1 a0 g+ C* c
di "cannot find pminplddy240"
) R7 n7 C% x+ S, z/ J restore
) z0 W, \% O: M1 }1 P4 b$ E
8 \9 z4 e2 r2 [/ E% [ sum dx240 T, j' ^. X" C# W6 v
local tempminplddy240=r(mean)) ?3 U# x* _$ v; v; @
2 D4 h6 t0 ~0 K3 I; ~7 e& I
! y; [. @7 O! p* m$ N& @- L
}! n) ]) ?; V9 A. v! P0 u
# o5 A* P: Y$ V6 \- X 9 `) o) n* H% f) H% ]: ]/ [
9 m7 `; O4 q6 \ Y3 u0 @+ _$ L
6 g6 ]* _. q& ]0 Y' x# \
' c2 @ S, `2 D" i: s2 H2 Y) u gen pminplddy240=`tempminplddy240' in 1
+ I* t- v7 t' r0 ] , N' U6 ]6 }6 w0 Z9 t
*-------------ddy240pmaxp左侧高峰值 -------------------
- C; L U# I- z& S W( z 4 j q" L+ u6 p. s( h
preserve 9 c, E' H5 I. P; e2 v; y
/ s/ _( G. ^( U$ [& b7 C7 T keep if dx240>`tempminp'
5 D- k& K$ D6 [( k( ?+ V" t; f
% r* [; l6 L5 O C! K keep if dx240<`tempmaxp'* M0 L+ w8 P- E* V% b: b. O
( k* i, J% S3 `: ? keep if ddy240>0
! S. s' j1 Q; [! z count
4 G6 k M4 R6 [1 P. \3 @ ( h% o5 i7 ~3 C
if r(N)>2 {% ~2 W& r8 p/ l& O
. Y3 ~; V' [. ^) E7 v
pkexamine dx240 ddy240; Z9 L+ {, j6 n6 a
. v2 o9 ]4 r* J' T! Z3 p
local tempmaxphddy240=r(tomc)
; k+ A% A4 k! d1 l8 n 4 M% c- @" l% \! }7 Y( e( q
restore6 G) v! W$ S: S7 A, J3 S* C
}2 k7 B8 k& R5 O/ l0 X! N6 h
" q( t- f% e* \6 X# P$ K else {* z; s2 v8 J6 c: ]
. E8 [( ^ s8 I& h1 C( Y; o( a di "cannot find pmaxphddy240"5 S" g" ]( c( r) t1 A* H7 @' s% _
restore
4 E7 @5 w, n; I* |, k) U. C 6 T- K% \) K. d% d' [$ Q- y
sum dx240+ q5 z- x& f$ f* i* _3 [
local tempmaxphddy240=r(mean) 3 t7 g( s, }- R- S! K! ~
# z$ J1 ~1 L& R$ Z ; ?5 Y" a1 @ |! {' ?
}
6 o( E( Z& r- f9 P " W: K7 F; L1 N; A
w& f3 o$ s: f/ Z2 e4 m" ?
) y( k. U( N# {8 Z
: H C& S& V1 g d3 W- I }4 j. p, G
+ `5 @! r, v# i& z6 A: M; n( X% S
gen pmaxphddy240=`tempmaxphddy240' in 1
3 s2 _& q, m& m9 T4 n. m' L
' k- x: J" O/ _: E8 L2 n* {& J
, F8 N" v4 P& N1 ~. o% M# o* V *-------------ddy240pmaxp右侧低峰值 ------------------- s& K: u$ l& }$ l
, K% p2 n1 w8 Z' P preserve ) `2 ^: U. l; n6 D% P* y7 G
( J* ?7 T* m( E; D8 E* U
keep if dx240>`tempmaxp'
p9 L+ Q" ~' ~/ ~# l5 m$ `
4 o* v8 d0 f, o1 E3 g gen temddy240=-ddy240
9 _, I0 g: M+ _8 G4 b y6 X. F5 H
6 q3 B- u9 `* |- m5 Q$ J keep if temddy240>0
$ I! E" N! H9 w( ~
. G* X; T2 F5 ~8 a6 Z count: p- ^) L6 N g6 `% l
' Z @* y- t" }3 G' h
if r(N)>2 {
4 Q9 t7 \! B! }0 `+ I* n
7 u3 |* ~% L: r1 `/ K pkexamine dx240 temddy2408 ?# T$ u' y7 B
4 M+ F2 Y9 O" a: t local tempmaxplddy240=r(tomc) 5 x# R, R5 \' P" A( }
restore5 @5 _$ S* x$ |; N% ]: k
}
- f9 m! }5 d; u5 v
( d; g/ P" @6 C; P else {
! [- p$ Q2 U' }% l' h restore
, N( L, w& i8 s& D di "cannot find pmaxlhddy240"
+ g/ T: n9 E+ t. G9 f; W& R
; o! i# ^, Y/ `& c3 m
* g3 M7 |7 T( d4 \8 g$ w- o: C3 | sum dx240) q* g# F+ [' I/ X/ `
local tempmaxplddy240=r(mean) in 13 m: ?: v, P x N" ^ y8 z
% Y/ y3 w0 G7 ~7 U/ Y) `
7 n/ [% @. q$ J! S2 q) c( o }
i7 f R6 ~9 o9 \) j! s
$ |- o/ O4 Z! k5 b t8 d, K6 E# k
& R" |4 u* i$ k: r' [ 0 M1 n4 G+ U4 O8 w
1 d* y& m0 D/ X' f3 x: a9 {! ^5 v& c% m
7 ~$ R: p/ D: C% y$ F
1 X! r% q0 B1 \# a7 G2 M" ^# B1 n gen pmaxplddy240=`tempmaxphddy240' in 15 z+ a0 {+ i' p
0 ^! Q( H9 e/ T. ?. W# { *-------------------------------------' m3 }! I: o( ], {3 w( W- ?6 j
. |4 l5 Z8 Z6 C* O6 h6 y gen price5d=v5 in 1/20
. r: }) q. p, A8 K1 r4 v: R6 [# ^ 5 H3 C! h4 |! @5 V% s, k0 S
gen price5yy=_n in 1/20
) ^ A/ r, A6 \. D % V) `2 u/ Z+ I' \; }$ i- n
gen price5y=price5yy*(dy240max-dy240min)/20& D1 I4 B+ c/ N$ ^
! o5 O6 [, M4 P: M: { *price5y &price5d
3 g+ A" P$ g/ g0 T* C' M & k7 M# P1 H$ _* _% T' A
gen priceny=price5y in 1
! b' ]" ~$ H& {6 u 1 {1 S6 L5 c" }1 I1 V0 R) ^( A5 u; p2 I
gen pricen=v5 in 1
6 G* _0 @7 s/ u# K
3 U Q% j* x) h3 x9 }0 H1 U
$ b& _9 m& C/ z0 V" P5 e0 ^ *priceny &pricen
# I( y: v2 z& p, ~- {, A2 L# R
3 S! y+ i+ O7 o/ G$ D- j2 I 8 V- t ^/ @/ w" R7 O
*-------------------------graph------------------( L% s* W6 f3 S( t" W* g
7 ^: O3 M; v9 p6 R, u) |
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)
' j$ y5 Q# V( F9 m5 o9 k) p+ e# f2 \0 A5 |7 ~
* ---------可选项目----------------------
- m; k! F( _- @. T% e( x9 L4 B" v q
}
3 W* Z, {* I/ ?" |% H0 kend. K6 |6 s/ K/ x/ U
|
|