|
|
改了一下,这次运算应该没啥问题了
: V- g6 L! d9 l4 E8 B; p( d6 W- l, c$ W. ? p; I
# g3 P: j; V! |1 ~# V
capture program drop hello; L9 G: u: `" j
" o& u* i: Z( b/ |2 B% i' W& Z
program hello
8 i: d5 U1 S3 Y8 ^% i3 Y! o* g4 P* X/ R" X
quietly {+ o# o' C T. w6 [- ^& Q
' C* _& \' \9 h1 E
clear
' ^" E9 t/ N+ r8 \6 f! O
% R( |+ g2 U% Rcd e:\finance\stock\20110101\source( E; F- w( S0 g: O! S+ c7 c
! X' ]/ ?8 B) ?' A( y U) vinsheet using `1'.txt0 b9 r8 l1 `8 _4 G# G4 P
( H& }; R0 R4 Z keep if v5>0 r, A6 E( m0 S* n/ W2 @
$ Y# z- j$ D* y9 L" d. Y gen vt=_n
m3 [" `- G1 [) [4 E" T 4 `1 D( Q6 j& s" v- T1 v R) N' t
tsset vt# L: y1 q. z1 S/ s
0 ?" }/ M' c* n8 c$ `, Q
gen zf=D1.v5! M( D% D0 P$ o6 I& Q
+ `* K7 q2 x. h+ F. |- s q
gsort -v1" b5 o+ k* f* l# d3 |
; g$ D- {0 d# `$ \ gen avol=v7/v57 Q! X9 R9 H c' u0 {0 W
# d& I) D) r' [6 s4 C keep if avol>07 n( {& c) L( i! Y- r/ S
1 K; g+ M4 w+ W- g1 P5 S drop vt( ?+ a8 v5 h5 C) z. M
1 y5 c; D0 x/ G- A, @" ]
gen vt=_n$ T, b7 }( n2 {" E8 m2 T
# L; X, `( A, w D" l/ N% b tsset vt
' k9 J8 E5 [( Z1 A! U7 m5 Q7 v ! d g! A; N E7 Q
sum v5 [aw =avol]
, p( u2 i- J' H# G0 g% J- O$ I t% \4 c- g! A$ r) ~/ b
gen amean=r(mean) in 1% `- G& h& u" [( @) i% U* b5 O
/ l3 T! a* O( }0 j$ K q * 总加权平均值 amean' `3 \! t" v1 \( T( [
' J9 k- C. G( H, T2 D5 `( H- t/ H5 B
s* J3 c1 c% t4 y keep in 1/240
( v4 m3 s( C! C# J. `: A( U. o6 K7 A8 z; X% v. S8 L6 H: V: y
sum v5 [aw =avol]
4 Q4 z' A$ s3 h8 {& p
1 s0 ^ J, F" ~& w/ T gen mean240=r(mean) in 1
1 ?( M- C- h: ~- ~2 `5 w h' v3 y" J1 `3 F
*240加权平均值 mean240
9 ]6 k8 j4 R9 Q' {# ]
7 H5 \: c% A6 R: ] set obs 500 7 C( t4 g1 Z& g6 w2 v
, T5 k& U$ i0 J& Z& _ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph6 W5 ?! \0 \0 _4 f8 n/ z
, f. p4 A& g! j; h: L. A
*240 kdensity(dx240 dy240)) a1 b0 G/ v. I2 k8 J0 Z+ [
6 W* w* v4 K. M2 K8 c5 h" @) Z
sum dy240
# y* x6 T; B0 h
2 Q* q Y( |: S0 o- \ gen yxis=r(max) in 1/ f* r+ n9 V9 G
! z* i; h; x4 Q, U9 ~$ Q
gen yxis2=yxis/20 Z+ l3 K& v/ W' j9 W
' W3 b: ?+ P: V* z, E
*yxis
4 C# {5 V3 Q. ?
]2 {& `- \( J1 F$ [ gen dy240max=r(max)
" _$ E" ^' D. A7 C( V5 P) W) M7 t
- ~9 m* @& J: U: r* c6 i gen dy240minp=r(min) N! \+ T: {" r6 l% _6 @$ c
) ?9 h9 |* t" F gen vtt=_n
- h* V# N* D$ S
9 {* l/ M$ Y. e7 K1 u tsset vtt
$ |+ o) Z+ f- }5 l6 S* e+ [+ l7 p8 D: M S4 g( }5 Y' \
gen ddy240=D1.dy240/D1.dx240
8 [; r. W9 f E
z1 R+ e4 I* A* H6 h. I; f sum ddy240
1 ~$ h" m6 A2 a7 S
0 U6 _# w# o2 P' Y gen ddy240max=r(max)
- I0 [0 c% G+ X1 {& R u
# M" J' j, A4 ]' H4 q gen ddy240min=r(min)
. }. ?( H2 u0 f* Z# M0 m
+ F6 C' n1 j: j/ x' Z( X# O gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
, R% G2 r4 X7 ]% w( [2 _# u5 a9 E$ J
/ i" l2 j+ i) n$ ^! S; q sum ddy240g/ ?- H! I5 p2 d+ ?6 G
# r$ x2 |3 M% l6 [* k gen yxis3=r(min) in 1
* I* F0 o. K; T
4 J6 `# h' s* t) f' g( d- T' v$ T! h gen yxis4=0 in 1
& h* y+ i, Z, J% l6 X, K
z m( Y0 c5 o" @; o3 w2 F8 x *ddy240g ; P$ j+ y) c1 O2 d7 {6 ]0 Y
& N! W3 }# s: b; u _5 j( J o' i7 a4 z5 l3 w, B/ b; @0 r1 a
preserve 8 g9 h' M* q* p* d2 U
3 N1 \! a4 P! m; F4 D4 X2 b- e sum v5 [aw =avol]6 A, H- l# F2 t |1 B, B+ b
+ q4 P% s/ ^* G( f. p5 c
keep if dx240<r(mean)3 O6 b( k- t, ]) f. N
5 {2 v) c/ L* s1 `8 s
sum ddy240
8 `1 A, F7 }* J2 N- ]; ~# @; s0 M
. Q/ z6 b6 o/ ?9 G if r(min)<0 {
. c/ r: R6 I5 Z l. h9 K
t+ Q; G% _) y- A0 \8 K keep if ddy240<=0
# m/ Y) f( r& M8 X
6 O* I/ J t1 t! ^/ h8 E( J4 k count
5 o3 k0 r: y& T1 v: K
! c( w; A$ t( A' X; X4 L* Q if r(N)>2 {
! n# B0 J. ]! b
. `: y3 o6 ?/ v+ F1 z& t pkexamine dx240 dy240
% @, X$ a0 H* Y6 {! u/ @
& s5 ?& o% J5 i4 Q: S; W1 C9 d local tempminp=r(tomc)
0 V, c3 n: {0 { restore & g. w+ n+ i) |
}
5 s c; y# h4 ]0 m- Z. V
r/ Z9 ]' t8 f1 F7 } else {5 t7 w# D3 u& H
, O" J' z! s6 s- i' E- z2 {
di "cannot find minp"& t- D# }6 l7 F1 I1 Z" Y
* I' G2 w" U' S
restore
2 v4 L( I8 h' O o( |; Y+ m! l sum dx240
# v: H( I8 d1 Q6 h local tempminp=r(mean)& i8 @" i) ^- O: y
! O/ ~! `% i+ _2 p- a) v
}8 _/ P5 d6 {. F4 q
}
# D! _& s% H, D5 S else {4 g/ A+ o* F& f8 l% y
' l* O" O. |6 |8 Q$ a9 i' p- s, u
keep if ddy240<=r(min)
' r1 O7 y8 k( Y9 h- A% v 4 m$ n% V! u; x# v6 O
sum dx240
# d1 `' ^8 m" _. n( O , w% ~, T4 B/ e, ]: d# A- Y' l
local tempminp=r(min). k1 `3 B3 @% V( w5 [
restore
- \4 _- k2 O- y( _# z }
+ A9 y2 |: ?4 X$ L2 Y' A! a+ E3 H* u" h# ^5 Z' I
. H$ t X8 I1 t7 }- }+ h
) f& H( G: l1 \2 w1 x5 E& g1 v
gen minp=`tempminp' in 1
( s9 }& Y+ l# r1 @1 t6 @ *240 minp* d4 K2 A$ h/ S: n2 D9 G' j% ~
: }- @1 g2 r: _% |3 j O( \: N
8 u N; P K+ O; x/ _
+ n {3 J z! g3 H) W" g
preserve - G" j( k( _+ a/ c8 Y9 z
' Q3 M4 j$ o( }& g; _ sum v5 [aw =avol]) K3 `2 Q$ W8 H7 J$ y- p0 @
+ e0 j/ h& ]1 C0 W* d keep if dx240>r(mean)
2 J( S) y) H* K$ @/ Q $ a: y2 h' J8 }1 N; U
sum ddy240" N3 I: e. m$ w; a! s& C3 Q
+ `" _" h3 j# K if r(max)>0 {/ _0 c7 x! M& N
5 q+ j5 {1 V: Q/ ~4 Z* c
keep if ddy240>=08 s) K/ t. G8 `8 F5 G
$ R- ~4 L. B+ d g7 k
count
& a- D/ Q( {1 L3 w9 C # ?- `1 I4 S3 V( C
if r(N)>2 {% }4 @! F- E; @7 J; e9 Y7 J
/ Y3 U3 i8 J3 a3 O& W0 c" m pkexamine dx240 dy2409 K: H3 z( u+ b2 a/ M
0 d" S$ S& _" Z9 E9 a" q( [ local tempmaxp=r(tomc)
! t5 D+ a+ b4 b% Z$ m restore . k' i; v9 i7 ~0 z, e4 u
}
* O, w; b% Q( ? % G8 x, Q: r( @$ U% Y
1 K3 L/ n% b' b7 e* s else {# w; g% @% d. t8 J
restore
y) R+ Y) R9 l, g7 Q) B di "cannot find maxp"
; s# d: o K5 ^
5 j1 Y( l. `1 h. `! f
5 n+ R# k4 j0 d5 U ` w! X7 [ sum dx240" x; c5 Z& l- E K% ]1 f/ `8 s; d
local tempmaxp=r(mean)
, i2 |8 ^2 `5 {6 A3 v: W# y 6 f: a7 q/ O' p
}; x5 O! v* l$ i" F" Z2 {% v, [
" p) h0 e2 L5 o$ p4 a* g }
D5 Q# `0 }) G. ]1 o
" y" p B4 |# B" [ else {
, }: O$ i" H) O
! ^6 D, q5 B F keep if ddy240>=r(max)
4 q4 }7 x' r/ b& t9 S& o
6 U; o6 W G# W& F/ d/ o; }, T+ | sum dx240" n" K1 e/ i9 n8 S( f! X
" F7 M- ~2 P9 e+ Q: p" L9 d$ O/ P local tempmaxp=r(max) ; E" t6 ~9 c! h& M
restore
8 l2 t3 ^ G! n9 T }
# p& c' I k6 c$ k' X7 a) a. n % Q3 \2 ^/ F1 G# N$ a5 R7 B
* Z/ E5 k6 F3 ^; h( W8 g2 z: P 4 K) F. o4 T. m. a% M
* C/ c% l- X" P( ]2 L+ U$ y+ M
gen maxp=`tempmaxp' in 1
, D$ z$ i, X$ u. Y1 b+ y$ O8 E
- z6 e$ `: a, G( m, n( s! l' F *240maxp
* v' K9 @( V' I5 V5 q: {( I. j
: |$ N- m- l# B9 a ! c) u( c5 b- @ y" b/ p
*-------------ddy240pminp左侧高峰值-----
& @7 B# V0 c: G - l3 d3 O H0 M0 V, m: j7 _( G
preserve
1 }/ u2 V# @4 E/ n; d& }5 k
) c/ A0 P0 i, y5 @; f. y keep if dx240<`tempminp'
6 M# }$ o* C2 j& _8 y- h 7 d& ]2 d5 k9 x$ B; A/ k$ o6 Q4 i
keep if ddy240>0
5 }/ d3 b2 ?+ L6 H t3 p+ j3 ?$ C $ u v. D2 w* f+ i$ y* S
count
5 a! {1 D, U1 A) s7 Z5 v+ y0 j
9 I9 v: r) S1 s) r if r(N)>2 {$ P, Z! D5 j4 h) P
2 a; c+ ~" |! v7 G. F5 I6 c: p pkexamine dx240 ddy240
1 f- b" p b7 T! r' F- k3 S' q ' h5 ^0 n6 @. @9 ~4 e
local tempminphddy240=r(tomc)
& X6 h, [5 \ ~( Q8 z e restore- C! H7 W* J; h+ B' @" M! v/ a$ v
}+ \$ m* U( d4 l
' E' v+ g" O/ H: H' V; z else {
+ z/ f) P- X# }5 Q L- _ restore
9 F- o7 _, L Y di "cannot find pminphddy240"
! ]- y8 L4 m, H
3 E0 I/ b: K. n8 G/ P& u( C
+ F" v$ n3 \9 e. h sum dx2402 \$ g# x& _$ b0 S3 x& b2 s
local tempminphddy240=r(mean) 2 n3 h- I; e3 C0 [- a8 `4 ~
1 i1 H- r- t% s" H( S: u# G" K" y : f' N* _/ _- X: e0 ~6 }
}8 B f4 c9 \6 Z: h
" @7 b6 N v, e3 s
/ ^; y! _+ _9 r. @
) O% f* ^1 q, N4 e$ ~6 @
- l* E3 y9 S* v1 [1 s4 \ 1 P& j+ K9 ^3 B0 \- N
1 ^: i+ ~: M7 J% M# u0 y1 d
gen pminphddy240=`tempminphddy240' in 1
& |+ a: l' P- ~+ {( G, F Q- k! D) u4 B+ c
+ u, m- j0 F# e, C *-------------ddy240pminp右侧低峰值 -----------------5 q% Y# ~5 U. Z7 W1 S7 x7 D
preserve + `2 r! J1 d( e* @
2 o, n0 k1 i7 s1 m keep if dx240>`tempminp'
; ~' }$ Q3 R. x* d/ W 4 P3 ~7 W# V0 U* O+ y* F: L
keep if dx240<`tempmaxp'
% f& y0 T [4 n9 ]3 D8 ], R
6 E+ }! U9 ?! p" A! \ b& q7 D4 S keep if ddy240<0
4 t' J1 I' e3 ?% b$ p
# r7 v/ s" L# |9 S3 A. W gen temddy240=-ddy240
5 C2 b3 g1 V( M- s# b , v. P0 I% w- k
count) p6 Q6 Y0 F. _
. ]& c9 z/ k. Z' w) U7 `- ^ if r(N)>2 {; G+ I" F9 k ]- d- S
; W% N( {; t( h% V8 |, h
pkexamine dx240 temddy240
9 j4 a. [' P0 `5 @" _0 Z
" r5 u) Y/ P$ Y* h local tempminplddy240=r(tomc)4 h$ c, r# f% ?* x1 r+ D
restore
, f* a2 T" v$ l, f. p- L) J/ J }
: W* E `8 ], S8 y7 `5 j6 J$ O
. `2 q# y% l( Z5 n& _: i else {
, T. L) j$ G O5 o7 p' s " l8 \! f: [7 _7 z; a8 N
di "cannot find pminplddy240"9 ~% e" S. i5 O+ v1 g9 V( g1 K
restore* c2 [0 m# p6 X6 w1 k1 @$ I! V
( K+ b* K3 c$ [: T8 C
sum dx240
5 B, j; D8 H. @ local tempminplddy240=r(mean)7 ~3 v! N# C3 D- N
: \% T# y* ~5 A% j0 l
) M2 h6 L5 t! o: Y9 C }
8 k; R% a6 J2 @( t0 o+ z
) T+ `9 Y H) ~8 N) o % x, I; f: a9 U. {* C) ]4 x
+ B9 u% R2 x* e8 [& Y" {' T
8 e) e) P$ Q$ ]. {5 k5 v0 n1 b# F
6 c/ T& y6 @; b! Y9 b gen pminplddy240=`tempminplddy240' in 1+ X& ~ c0 F1 Y
+ a; L1 b! z' ? *-------------ddy240pmaxp左侧高峰值 -------------------' Q8 @, X% {0 \2 S. U4 w* V& `
6 i' |+ T# K C- ~# \
preserve
! V9 N& _! {2 a) g; m
' J+ s0 R6 j% ]" ^; R0 ]# Q keep if dx240>`tempminp'
8 X5 _+ Z* I5 j# A8 a; Y1 p
- a k; {+ \5 q0 a/ g* A keep if dx240<`tempmaxp'0 Q/ V4 g; K" d
3 }: p& X" Q# ]- b( s; N& n: Z; V$ N: o keep if ddy240>0
h; M9 \; a/ b5 L count+ W& k! F, j8 ?' F: i2 p4 _7 W$ V
' }; o; T) d. F/ L" ]( U$ [ if r(N)>2 {
! k. ~# f; y) I$ i ) J& }- b: a$ V& r* a% B
pkexamine dx240 ddy240
& k N, c) T9 l& y+ a0 h
3 @! \) b4 q0 C* `: c3 D9 g local tempmaxphddy240=r(tomc) - Z$ K' F& P [3 p& K, b: ]" {; \
; w9 N1 x$ w4 z2 T) T3 k! p restore
! D" t4 p7 h* K5 W+ h }
" W! P, V, u( t) q: | 1 s' { b6 i. [6 N
else {- z8 U7 h/ U% d& u. K
3 `: f) k( V l; [0 B7 S5 Y di "cannot find pmaxphddy240"
$ q- w" Q8 f4 E# s9 [* C restore5 Y. V6 I6 E* G2 c' I1 D! u
( z @2 ?2 L2 ^9 M2 b sum dx2407 W) T9 U/ r0 \6 E: ^
local tempmaxphddy240=r(mean) 8 R$ k, q4 j, |. E' p
0 j! i7 `) E( D7 W( }9 A
; V5 k, `: L( \1 G7 O2 |& j
}
$ Z" Y2 ~7 k8 T) S8 P. ]# R s0 |, U ; r6 m9 W+ y9 K0 c) v+ h
* |' c% m+ A# w
- _) X5 I1 Z- `2 k4 ~- C
+ ^' A+ v& o k5 `+ }
Z7 D, }) E" \! R' p
( _$ n9 ]6 w* N5 g gen pmaxphddy240=`tempmaxphddy240' in 1
6 j4 j1 h6 a3 V; y $ S4 h8 c) k0 [9 a+ w
( `7 s* d8 |1 K' F! w *-------------ddy240pmaxp右侧低峰值 -------------------( @7 l, ^- p( r
4 P$ V5 B4 ]! L' H9 V$ Q: v
preserve ' ]0 H: n1 J- h1 C/ m9 P. B% X8 ^
& P5 l2 v- u% l" O* u l keep if dx240>`tempmaxp'0 E% V- y6 n" l+ B- n" l
, }; p0 E; X, Y& j9 Y gen temddy240=-ddy240$ V8 y* L: S; P4 `
; }9 m: T0 ]8 Z2 t
keep if temddy240>05 |1 X& z6 R4 N/ _3 _
* z7 H9 z% v7 Y4 {
count# v% q# E4 {- p9 a& [8 t& d
7 g* A" N8 k8 t l8 ^; [
if r(N)>2 {9 M' s( i8 v; @( \( O* n4 g
3 g( Q& r/ y- W g7 [+ c pkexamine dx240 temddy240
" v2 p0 B9 h0 s! L2 @9 \) W $ b! g% ~5 J& J) ~9 J; K2 f0 @
local tempmaxplddy240=r(tomc)
6 i6 n, G1 |6 J( o( t! c% \' | restore" k; K1 i8 _$ ^/ S
}
5 l; h1 M7 a3 B' J/ B6 g
1 R: d: |& s3 m. Z7 B% L2 d" u3 f else {
* e& n8 s, h) V restore" D5 h* t! Q# P3 K9 m) S. u
di "cannot find pmaxlhddy240"
/ R# }6 ?6 e. `. {9 D$ k
. e, M! X2 Q$ r 9 p5 |2 E# A2 w* M/ c; e6 T0 ~7 P
sum dx240
) H3 f- S6 J! W local tempmaxplddy240=r(mean) in 1- V4 j# X) R- Z5 v+ L+ e1 T
& O1 D: w/ g! v. W7 f9 _" ?
+ n% Y. a7 V8 _" [' \3 | }
r* | l2 T8 D) f
4 f o Y3 x) Z/ S# m& w1 ^ & A) \; `3 ?' m# z; T8 W
: q# L7 {% I7 F9 L! d# c( F. A) J2 ~ 4 d- j7 n! P5 v+ Z/ A$ z0 U- A! V9 ^
; m8 }* e' ^: A5 H) |
) G. T* J0 H3 e& c
gen pmaxplddy240=`tempmaxphddy240' in 1
; k* h' g. w% D 6 m% O G2 L8 x6 Y( s
*-------------------------------------
2 E* \8 q, A2 M# u3 Q! m. H) c
+ p% d+ Q* f# I6 G, k& i$ | H# ] gen price5d=v5 in 1/20, ~6 \- e( g- h( Y: q
4 C$ p$ f5 \+ }6 m gen price5yy=_n in 1/20( A# A/ z* D9 E
) {: d' A {! Y+ @ r- H* t gen price5y=price5yy*(dy240max-dy240min)/20
' j" m" n6 k; I& }5 V8 o$ W + \7 g8 E/ U8 R o, k6 T
*price5y &price5d/ s6 [' M+ {+ R0 J3 i6 t! A
( [; r) ~( E7 z1 ^
gen priceny=price5y in 1
2 o! p1 @4 S0 Z4 r3 V 8 A8 j6 |/ y7 U$ ~+ Q! a0 R
gen pricen=v5 in 1
/ t- t' m) Y* {2 M! G- J, @1 w. m/ E8 H- p8 U3 e* m m7 X/ o
$ Q. c+ Z, C( m% w/ U& U5 H
*priceny &pricen
8 `6 X2 r# U5 }" `' ^1 v' n; V * C' W4 i; h0 {6 ^: q6 A4 W
( s g: ]1 Y+ e! W' N *-------------------------graph------------------1 ]8 e0 A9 L5 X/ |1 W
6 M! p/ c* s7 w, _! x! n/ d" x 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 Y) \" D6 v( ]& `4 Q" _
, J. T) n0 }) G% ~" F- H3 t0 D* ---------可选项目----------------------* c8 H c3 m w) }6 Z/ Y. h
+ E& L; O+ S7 K% T
}
2 |3 `. i [, qend4 Q; o& F+ j9 H* U
|
|