|
改了一下,这次运算应该没啥问题了
: o) Y- I) P1 O
' L- T3 U+ t) A2 |, R% O& u1 J5 z% x! [* K8 X
capture program drop hello
- o8 u& F% A- m' Y8 s0 s
0 [$ A5 Z% F' m+ c* H2 A# |* F1 @program hello/ E" r# S2 B f" U1 _
& v3 f! A# W: V; g4 D% C& k# h
quietly {' T" @9 Q X7 Q4 Y9 F3 \
# ?: J e- J7 m d% mclear
7 h) S N( \" D* R& T
1 l$ p0 n. X& S l- F2 acd e:\finance\stock\20110101\source# J2 C9 G& g/ d5 |9 F7 {
( T n. |* b' Qinsheet using `1'.txt4 l2 l9 Y3 v3 c, c+ G2 D4 y
7 |. B+ o7 I u! l1 y7 e: _7 S keep if v5>0
' P$ V# Q. y. @" j : l" g% {# L- c$ k& r' B
gen vt=_n0 l: p! y0 H5 b( K4 r8 [# y
5 Z3 q; k) p) E3 Y3 \+ k
tsset vt0 @6 ~# p" j# ^3 \- H' u
3 J" n6 D; V1 P {' z
gen zf=D1.v5
" p* s. D, q5 c3 ]' F1 ~; a1 n$ d5 x7 ^3 l- Q k1 l$ \
gsort -v1
( J y+ \3 G, S
1 l" K3 C$ I! F0 h% p Y. a" _ gen avol=v7/v5
6 c) r) S+ m, \( q3 b9 G2 X5 _: j / b! F2 s1 u3 R" W4 h
keep if avol>08 j' r- m. [% u# V; E
2 c$ N/ t* X$ X4 W' w v
drop vt
: [) F2 j h7 i7 i7 v " Z) [& @' ?# M3 V* x5 q& R
gen vt=_n
z7 B: \1 O S! P: E) ` ' o2 V% ~0 K* H9 r$ ]8 l d: g
tsset vt
$ \' W9 K2 y$ E3 @, W
4 n4 s8 Q# {1 M8 _ sum v5 [aw =avol]
0 e Z- B8 H5 ^9 x" ~ c
6 @7 M) e: P A% L gen amean=r(mean) in 12 I! l0 |5 O }7 [2 C" P
: l- Y1 c7 ]7 H4 f u * 总加权平均值 amean) n m/ R5 j& p
1 j4 z: \+ K$ L( I+ Q
$ p( M& F6 w: l keep in 1/240
+ T+ I- j# m6 a% c$ z7 {3 l- E) P: C( B7 M' k( T" c
sum v5 [aw =avol]3 k! ~- j2 I0 ^, ^7 R
; Z( {- Q6 {- N, [% C c7 ] gen mean240=r(mean) in 13 x4 a' y/ ]- t, r# Q% d
: L! p- m: u: @, W& i8 x# h1 i
*240加权平均值 mean240
8 d% R: ?7 p- X, t: J" J Y$ h R0 W+ o0 a$ Q2 I7 ~/ Z
set obs 500 9 x4 ~3 {3 Q0 g
0 d+ m' `$ s/ p% y4 t! o) {+ H kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
; g: w. I3 O! }6 b3 |. @ % S8 M$ ~) Z; Y L+ p% p1 O, q2 s
*240 kdensity(dx240 dy240)
' D- a/ A: `5 q8 W6 B 8 T& R9 `; Z3 j4 X0 T/ m7 X1 `* r
sum dy240
2 y! B2 F3 C* w0 c' j) H
* u3 `* M3 y% g3 H gen yxis=r(max) in 1# ^, o' T7 o e8 E) A5 [ I. u
& R b1 f' m! O% e gen yxis2=yxis/22 w# D/ D8 P/ n0 g ]. a
9 [+ ?2 d7 d8 k. b: @7 ]1 |
*yxis% C8 [8 t5 f1 K# v$ u" l" [
0 ~# a# H0 q$ b! q# F gen dy240max=r(max)" M. @; q+ v# T
( t( W t* Q( F3 T) ] gen dy240minp=r(min)3 j' k; _& Q& ?5 h1 b7 r
& O# M; n9 S# R
gen vtt=_n
/ x( P" p8 G0 v- P2 c% R* u
6 B9 }% U; |, h m4 N tsset vtt
v- ]% f* C6 h! b+ B- q
2 N; k- g! K# W( Q ]! X9 ^ gen ddy240=D1.dy240/D1.dx240: T* a% b) Y9 P3 r
; L- w. U2 ~! r% `$ H
sum ddy240
6 C- D7 c% S" t5 C
. F4 Z K; K. L5 x gen ddy240max=r(max)
}9 L# N# ]' N8 F) [* B 2 I( Q0 s' e1 y. n3 b4 [
gen ddy240min=r(min)
+ Q1 Y- i" v, Q7 I, O- ~. f
* [0 V0 r- }9 w4 S, B, p gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)5 C+ H. `. }, U* A
; T8 j. d0 K* ~/ S4 T
sum ddy240g. O' N2 I( y! b @: I
& `5 v1 B0 w2 G0 I
gen yxis3=r(min) in 1# a7 O1 t9 V3 w l5 x% t
: M9 t# M1 s7 ]5 E gen yxis4=0 in 1& [& K3 U( m% ?/ i: g
5 h, g' k$ k& A( u
*ddy240g
" L x0 K; Y$ c: f# _; m 6 j; z) A( \8 I
/ g! k9 \ e9 h& K7 o( o6 ^ preserve
0 H; y4 k% H# f' C/ s6 M0 d 8 G! W' e. [# y0 \
sum v5 [aw =avol] G$ s) _9 B9 Y X6 j/ i
& ^) _+ ?0 V/ ~0 {" s0 p6 Q5 p
keep if dx240<r(mean)* W O6 b0 v& C
4 h$ ?6 S4 y, p9 D( }
sum ddy240
1 W7 e8 ^3 L2 `. R1 j0 h
7 j+ Q0 n8 x5 ?3 ^+ b; M if r(min)<0 {
m) U" G7 Y2 c
( Z6 ~( B3 R% K0 F4 G keep if ddy240<=0
% s; c) W2 z3 I5 ] b2 N $ b# ]0 n: s) g2 F6 q* \
count! b8 [$ M3 W+ P
/ l8 S E- [5 v7 z9 T# |' r
if r(N)>2 {6 U5 e' j6 E6 P8 z
8 Z0 v% g5 U# C pkexamine dx240 dy240' W3 b$ k3 ~" V K
; P# a% v1 v# c" ^% {3 B
local tempminp=r(tomc)
; j: P0 Z3 W- r: V0 m: R restore
% D: _" s5 {; [3 j4 L& i2 o& e }* r% p# l- x0 p( j* i
- ^- T! a' `8 F% V1 B6 k else {
o6 }, W, K7 G3 U$ z0 s2 p2 h
$ J/ B) ?' b% U. l& V di "cannot find minp"
$ L, Z d/ [+ s* X7 W
4 g0 B: M4 n& K restore
8 D/ ?$ [1 D7 f sum dx240 B# N/ a/ f1 z$ c
local tempminp=r(mean)
+ V' z3 e& r! P$ e' _% S. ^
' U6 x" E$ {* F; B: P& P' o7 @: H! V }
. K- H* }) n( i/ o% V8 m }
+ z2 [: Q; s+ R8 z$ l) \; r- ~ else {) q) `# R2 C, R
. d; i7 x6 P r5 f4 _
keep if ddy240<=r(min)
& S$ L/ R0 i8 K3 r7 D
. K% h$ V5 L! d+ @2 { sum dx240
, f- o- @6 ^$ ^7 Z. [, X; A / w" v8 y6 d( \* ]& N
local tempminp=r(min)1 A6 @/ L; p7 _. c
restore % B. X6 x& r. g- [: H! U
}" D# j0 B' p0 ^* j+ j i$ K
, {* Y; j5 n- t% q; X W K# b0 [1 h
3 i0 |9 s; I$ g# V
: T) \7 W+ m& k- }4 q gen minp=`tempminp' in 16 l2 C, m7 _" W6 U$ ]3 E" ~
*240 minp
" W' ^. F8 u# ~% z
+ Z3 p" [4 k" v) o1 P. Y5 P5 y4 n
+ X# C0 h* }+ ]; m. A 3 R0 e1 I& u% ?
preserve
/ K& [3 u) i+ j2 J. e
; T: |1 i" w9 Q3 X+ N# d* f O# d sum v5 [aw =avol]
r2 Y: { B) R8 R 3 {) v& s: `* F; l7 _0 B
keep if dx240>r(mean), {7 t* V* J& B
. q& y, n' k" |' y: [ sum ddy2400 V; w y& }/ a& S; a8 ^7 N
8 k8 N1 J `: d# M0 b* t7 F if r(max)>0 {
: S$ |: d2 c& |5 L( w
( g- C3 t2 q! F( K) O keep if ddy240>=0+ K2 V) h; `! l8 D% I- u
# _3 i% o4 @+ d9 J
count
% s' c: O9 Y9 y S9 q& X3 Z
' V: P0 t0 c# v, V; j1 f8 z, K- i if r(N)>2 {) @7 f" K6 m9 x9 C
# g. H2 F \) X. s! d5 D
pkexamine dx240 dy240
7 U0 p9 G1 z. \/ q, \* z
) J( U9 T) @8 L# z7 S local tempmaxp=r(tomc) ! ^3 E! M$ g/ O5 W# A
restore
3 Q7 q* y6 E w5 Q9 ]$ T5 u }
$ m o1 ^4 M4 U$ {/ x6 Y
9 ~5 b# Z: P# c. F- q) F ; Q% {8 Z8 _9 N" f
else {" E4 d6 l' {7 t; F! S! w2 A6 ^3 a0 b& B
restore 3 V( M( x$ K3 |0 n4 {! x& K! o
di "cannot find maxp"
g; w$ y. v: s- u7 U4 j: i 4 h8 U! _8 I) n# d8 c& x
5 ]' D- I" a+ t4 q4 K; j
sum dx240
! q7 u- g1 a; V! C$ D5 X8 ` local tempmaxp=r(mean)
% R) M {- |6 K7 J+ c9 e D
# [, _7 n* L- { }
& ~& F$ R/ P- \* o9 P6 l# u# W, N _/ _" z8 V# W+ c, r
}
- ?6 Z, z- ^. C& `( w. `. O4 A
" _$ Y7 @3 `2 W- ^! R+ }* |! p else {
" M9 q$ M' `5 s! q! b
$ ~- @( Z$ G/ H8 W- ?- B5 T keep if ddy240>=r(max)
- t" F9 U- D( H6 g9 E0 s4 K/ d6 m+ a, o 6 F6 d1 N. V3 _. j4 F
sum dx240# {1 x( r" y3 D: @, y. K
& F# _" [/ L* h( p+ ]% q
local tempmaxp=r(max)
. w3 ]7 `4 x" f* T2 S( i# X! b restore 6 J/ @5 J9 V1 N: X/ B# [
}! ~( M6 z/ Y9 R F( ~7 j7 n
; {; F, l+ J' Q& M
) `1 R. H0 T2 g5 P- h 6 w; r4 q0 C7 I! H( D
, {6 ~0 ?9 W. M: a5 m+ Z1 R/ E
gen maxp=`tempmaxp' in 1
$ ~/ P1 ^4 T/ t 7 D5 |6 _& [# g7 _( R G( ~0 R! T
*240maxp
; J5 Y5 H( h. |% D$ k- k + l& D2 U3 Q/ m6 [4 @
- p( C+ ]: O4 c a6 U! P *-------------ddy240pminp左侧高峰值-----( `! ~2 q8 |: Y) y9 l) _
5 I4 m9 q# L! k/ p
preserve # { e# H3 w* F0 p( k! E
8 T7 h" @- u2 [ R keep if dx240<`tempminp'
$ K# f+ e4 }% U- m/ n # d4 G1 O* W2 g; A
keep if ddy240>0
: v. }: E8 b* m& h" x9 d! `8 H: ~ * z% \+ \4 R2 h( r) ^- w! A
count, i0 G# e% ^' s0 d4 J: R
* Z: h7 ^, f& ~2 Y( r
if r(N)>2 {, t, l! e: `$ E- ?
% ?6 ]# P7 t# i, q. H' k
pkexamine dx240 ddy240
: }# k, c" V8 C3 G" h
7 F* V. ]+ x) u3 U7 ]' q1 k0 v local tempminphddy240=r(tomc) n% B* A2 [6 y/ ~7 Q: h
restore
" p/ J- z% G/ o" ]& k: n }( \, d, `: W( G3 ~# n
" r! H a+ U* S& x' N6 P6 _! y else {3 b$ h8 L [$ }: s5 o. h
restore 6 Q" t% U# ?. D: {! s
di "cannot find pminphddy240") Y- N, I- ]/ v7 t8 j7 j, m
8 z" `2 Y; q! d) z( Y
6 }7 T2 _- z+ O% ^. d+ T4 ~
sum dx240
6 q9 R* r2 v8 }7 f" I& E local tempminphddy240=r(mean)
8 A z1 @ x2 z- \
6 W/ a+ q! Z. P- n; Q8 i; J 0 s; I; g* T1 k0 T/ p6 S, S. c e
}
8 Z6 d. ~, L: ^ a3 C- B3 d * L% D4 m: P1 E( h
r( s3 d! w4 G8 B
; ?3 `; h* e) q v
1 P# y2 C E/ k' ~ x( k 8 e* a; P$ i3 h3 m* h
5 D( }) }6 c7 C# h
gen pminphddy240=`tempminphddy240' in 1! O* H! \7 G6 l
+ P- J4 O/ {- V. h C
; ^* v8 R0 \* f$ Z1 P6 u$ H *-------------ddy240pminp右侧低峰值 -----------------0 F# Z) E+ g$ o/ ]5 ^
preserve ; _' a& w! J8 y$ o- j, p
2 z: G6 N. i8 J; N8 z5 x6 ^' L5 i/ d7 j
keep if dx240>`tempminp'7 R# y) E* }; R! s* d
, R+ |% P; e* C9 r7 d' J+ _4 P keep if dx240<`tempmaxp'3 W7 {4 U+ D+ _( s
, E+ C3 r4 h$ L8 f keep if ddy240<0# o) _4 `3 v) s0 S
4 d( ~) R- ~% h0 b9 |) t gen temddy240=-ddy240
+ G& Q3 W% n& Y# E# U8 k4 J0 I
) {% |3 g$ E, j7 s; W count" O/ J! A, I% _! Y! v" C9 {
( j/ l; v8 {" D if r(N)>2 {
6 G3 ^ |' r) d' [$ Q/ @4 _1 O ) j5 \2 A F- e9 k7 F0 O- X5 Z
pkexamine dx240 temddy2403 l2 d5 i# V0 e6 n: @8 r5 k# H
. W- l4 F7 Y* U6 y( @
local tempminplddy240=r(tomc)( l: K& A0 m4 f' @( l
restore
8 r. \1 E, R$ x5 K* n8 S* s/ U: ^ }! O) Z" Q% T0 A! W% U0 Y/ p% O) ~
3 N; u8 o1 V: X+ M" P: \
else { d( w, m) ~4 K2 f' n4 k* a; f+ D
+ T' D* X5 r! D" T# s) T0 m
di "cannot find pminplddy240"
- H' S5 d, @9 i B" B restore% K% |$ |2 a) q- a; }
7 E' n8 _+ O6 a. T# e# |
sum dx240
7 Z& Z J9 Y* x local tempminplddy240=r(mean)
0 v& W& A2 X' t7 f" k ( G4 S, ~1 y% S' e# a
- i8 c9 Z2 |7 j }
% I" ^0 c0 @$ d n' v: ]2 y' S 0 x/ f2 b* ]0 M; D+ k! i' h
$ T/ K$ D/ E1 J, D4 e% H 9 o9 C& ~: w; V0 ?% B2 b7 A: C6 M
5 F8 n, ~! W( f4 m5 y3 l
5 O9 @# S8 Y; [: U6 V' {
gen pminplddy240=`tempminplddy240' in 1
; f) n/ m% }6 E; h& W: i; R 6 p7 D, M8 b' h
*-------------ddy240pmaxp左侧高峰值 -------------------% n& b/ e/ q+ o- T+ L
, L5 d( P$ n6 }& }# r$ @ preserve
" f$ R2 B. x8 S% Z( d8 M& O: ]
- i" q: k9 F3 j8 D% L keep if dx240>`tempminp'+ `' v. O" X5 j! F' Q
% s4 n: X6 u: Y+ z& ~8 Z- m4 N! d
keep if dx240<`tempmaxp'+ P0 U% E; E& H6 z9 D9 @
( ~3 Y3 Q6 R7 N. E R
keep if ddy240>0
4 z* g( ^+ U, f5 q' K+ X8 O count/ @# W2 e" W2 e8 H) v' D% \
) `4 p4 a, V1 R& `* ~
if r(N)>2 {
2 X9 U: b$ g; n
/ v+ v5 z, @, m( Y! ]9 v pkexamine dx240 ddy240# @/ W0 U4 v# ?5 u/ \' b' T. } [, N
* }) G5 m, |; d8 ?9 m local tempmaxphddy240=r(tomc) f0 D% I7 H7 x& _) f- g$ ?9 H
3 D) |' H2 c6 A% N3 J% }
restore
. O; f9 L" N7 m- S0 Q! f) y }0 Z8 [& P. H! H0 _/ y5 D, k, E
9 \4 D, w$ s% M' x M" K
else {
. `8 k% o+ M5 A
* h+ G' u- B+ o, G& d% u2 J) h. n! [/ Q di "cannot find pmaxphddy240"
) a# q2 m. u! S" d restore
/ [& R# h. M B) K2 ^: d5 V
2 n0 X& C, A1 X7 v: y1 _ sum dx240
8 N3 ?! V$ F, L4 `% Z local tempmaxphddy240=r(mean)
8 K5 D$ @: v/ q. K$ Z1 l, @4 F" t# i& O
& n7 {% G9 `# N& | , h; L6 g _" d3 B1 X2 a
}% o7 f6 B, f/ ]7 K4 S8 r! J
1 ?6 w$ I( c% U4 I+ G1 Y3 R6 K
. y2 b9 C2 X+ B4 D
: L) J9 j4 [8 | & `4 T+ P: b: j6 u; C
# y$ u5 j! ~7 K9 {& V: [( Z: ~0 x
, B0 f7 J$ \" \! m7 Z1 t% D7 `. @ gen pmaxphddy240=`tempmaxphddy240' in 1
/ s2 H( b3 i& |7 m. n; I- g 3 W! [' H% `0 Y3 N7 |
3 K* D( m: H2 s, L; O$ O( V
*-------------ddy240pmaxp右侧低峰值 -------------------
4 Y, B; C2 e) X/ _" m6 _; S( } ; u/ I. W( s$ H! l# l
preserve
% _7 N, u$ f5 @8 Q7 t1 o3 H) f- i s" D6 ~* K2 v
keep if dx240>`tempmaxp' o. v- ~4 K- j. j; F( }/ q
) K8 q. c9 c9 o6 w* q* B
gen temddy240=-ddy240( h C! o% o1 G K0 _( N' C
; d" h# F) I9 d3 ] u. ~" _ keep if temddy240>0
1 H$ Q/ Y2 s. n+ R
, {4 K4 e& w/ E5 h count( e: I( |# V: c( C; h' W9 M c
3 F: e6 P- ]1 G$ c1 }+ P3 L( ` if r(N)>2 {
, _4 M* \! _& Q* S7 }" Y) @$ H
. p, w& h8 }/ f8 \' d G4 ~ pkexamine dx240 temddy240
* C" q! B- W+ R: f7 v* d' N & L; J" I. u! G1 z. J) U% J
local tempmaxplddy240=r(tomc) 6 s) P4 `& U3 c
restore) Z4 p6 W2 I+ C9 }+ J
}! O3 l: f/ r5 v0 T7 [/ f
; [4 }" f" v* l/ l else { I; A* I. D- l
restore
$ Z$ T; z- Y: D+ I di "cannot find pmaxlhddy240"
% Y1 m: m/ @' i0 }5 _ 3 i) ] D0 p+ ?( ?* a2 e. s. ]$ S
* i" H7 K9 Z6 C1 h sum dx240& B1 e2 Q" a* H- i5 A0 v
local tempmaxplddy240=r(mean) in 1
/ Z4 ^: g$ r \6 D - j* m+ Q' _+ |) M. b; N
1 c% a) D) z5 d! M
}
& R: W1 G& |; A& }% m
9 N3 b" t" A* y9 i Q + c. S) _& A" A) \) B; ^& s6 @
: v9 v7 d, e/ Z' Y3 J; U
4 i4 w1 s# K' |0 Z; R) X Y0 X
- ` ]: @6 m# @ \
- K) N F0 B; [( r; P. p) I gen pmaxplddy240=`tempmaxphddy240' in 1 |4 T% M* U% @/ @! j
( B" \7 M3 V$ Q
*-------------------------------------
9 c; Y5 v, Z. j% X5 F1 Q3 _ 6 P. b3 l ~; W% Z
gen price5d=v5 in 1/20
1 K/ D- D" B" q. z
+ q2 v# U1 v A1 d$ o% @' v gen price5yy=_n in 1/20' @. T$ o4 s4 V: q7 e
~+ }4 M7 Z+ X! R, A: ~ gen price5y=price5yy*(dy240max-dy240min)/20
% U. [- b8 ~6 @7 q9 G $ _6 ~5 Q3 z# g+ N, P5 O* U
*price5y &price5d
7 G1 u5 I- L# a7 o; X5 x
, u0 Q: l+ J9 f8 B7 l$ F p gen priceny=price5y in 1! U J+ D& K0 w) j
% V) P8 g! o1 u# a5 \3 x" [ gen pricen=v5 in 1
7 z8 m! k2 K0 m# I# }6 W9 g# W" L9 P7 H. r) k. ? b
0 T" L/ [4 ^& ]8 d4 ?
*priceny &pricen$ d, F% s2 p0 D9 U; V4 p/ i
" t/ D; _: Z; ~/ u2 @ ! t4 M! o& Z/ Y" `
*-------------------------graph------------------
[! P& W: R$ T8 x
! \( `1 k; u# e( z7 Z- P( @+ k) E 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 O- j& w" T1 l$ t' p
5 A& V8 \1 {% ?* l: q; }6 o
* ---------可选项目----------------------
) p# F- ^, C4 Z+ e0 ^- a! j3 j
0 \3 z. }( y- v, H6 \}$ l+ Z9 Q" }/ c4 u. \- C# V
end5 i, i _* D4 i5 W
|
|