|
|
改了一下,这次运算应该没啥问题了
: O ~( p7 }7 N+ v; e3 t+ a$ b' z; n& S) X+ O. Q+ S
: a4 i4 t7 q/ q& L1 e6 i, W: X8 _
capture program drop hello
( m% Y3 T6 |) w. }" g9 i- k+ q, r2 d' Q9 u$ S4 D
program hello
4 H9 d: h& T! j' O0 C8 }( A. U4 E& U4 ?% p
quietly {7 o4 ~0 o+ g& f$ C
+ E: c3 k( {" t: H
clear5 d3 W. Y) H- F* ]
1 g% j6 ?' g( f
cd e:\finance\stock\20110101\source3 r1 y0 Y r: K
) U5 f2 H1 }/ Z* g6 Cinsheet using `1'.txt
1 j1 z; c0 R) s: {8 t1 [" z) b# w+ h A6 P% z$ N F+ U: C/ B
keep if v5>0
# y; G( U$ x$ h# R; ]* z
5 ~) g! ]% J/ r+ S, {& d- _$ q6 [ gen vt=_n# h4 w: P2 |* Z" H
) c4 {6 `7 ]" @ tsset vt
4 J+ ^) T+ ^2 E T" z. g5 E) ]* _7 r, }2 P- L
gen zf=D1.v5: Z2 ^4 o3 `) n) M- S3 d( t
% W8 Z9 X( U s& o3 s' C gsort -v1
: \8 j) ]! V8 g7 N' W4 V# p# C3 m' V- B" r$ x. x/ E
gen avol=v7/v5
7 }" z& w7 M4 ~2 k4 I& \ 1 T# Y! G* i0 g' B9 S8 e* E
keep if avol>0
4 F5 }. r, `$ b7 u- [% ? / y0 w& G% D4 N. ?! f3 V
drop vt
/ p% d* c8 F# i6 a$ h . t; Z2 R7 v$ p2 g
gen vt=_n
, F* T \. F0 n. g! @0 o
6 s4 l; T% b3 y' i: W$ O tsset vt0 |( |3 V! D( j
# [. a" w6 U$ y0 U0 n- Z
sum v5 [aw =avol]1 w3 }& H$ |$ V/ l2 {+ [* U0 U
5 y4 j- ~2 h3 p3 l: K" e
gen amean=r(mean) in 1: a$ q! z9 B. T6 d2 K4 _9 f
, k7 T5 t5 k6 N( z' W3 o) ~
* 总加权平均值 amean3 O& m& V, Y" j
: s5 d- n( L! o9 Q( L! r/ V/ F
! Y6 t. ~# H( X8 Q3 m# d' p" a keep in 1/240
2 g) {, Y5 z" y- g1 M& c5 d
6 Q" w4 B: Q9 ^* y3 L' F sum v5 [aw =avol]0 V$ v$ f0 T! L
! A" p k9 o1 A1 F& {* v gen mean240=r(mean) in 1
: ~. L. n$ y; m- N
7 @/ U. \. ]. _0 u4 M6 N *240加权平均值 mean240. O; Y" k4 t* L* B f; l
6 z3 ]1 D& s$ e9 V9 i
set obs 500
; R1 w# P+ t% N9 D0 X* P! u S ! i( K8 X* e0 ~. v- |- a; y
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
5 R; `8 n0 c7 m
1 i/ S* a) N3 d *240 kdensity(dx240 dy240). d! K0 Y# O& k/ D/ d) J
1 I) |; O" t" R sum dy240
& Y% {; m! R4 Z, I/ s/ {
' o! b% [9 ]8 e4 a$ T* _% s2 I gen yxis=r(max) in 18 P& [& u- c2 b; A8 p1 g9 p
4 j& v. A) | H3 N; P0 `! w( ~ gen yxis2=yxis/2
' `$ o) q$ N" c9 U: j. e+ ?3 D" X ; j, O" ?5 D) ]$ s/ `
*yxis
9 D- F$ d* b. l+ H& I" [, T$ c! _ * o7 N% f4 v( Q# p
gen dy240max=r(max)
& { O6 q3 W" ^# }; a" M+ g
1 k% C5 w4 @2 v" H/ j gen dy240minp=r(min)! K; U8 i3 c5 J5 C9 `# S8 s8 [, Q& i, k
3 @9 h+ S. i9 N- p6 I, y% G- C
gen vtt=_n0 o2 N5 A9 @$ W% M: @
/ T- v3 a6 ~7 y/ |' Z+ X
tsset vtt
' a0 e3 S( a6 `: f8 ~# c2 `& _7 I' j0 Q0 d; X! X# D: n
gen ddy240=D1.dy240/D1.dx240
! p1 j& |, d* ~ / y @0 G/ a% A7 M% g) F
sum ddy2406 y( {6 e7 n2 y3 `' }# a2 \' |' J
3 t0 r- Y% A0 ~3 t; J6 x( V gen ddy240max=r(max)
) Z; i" P# U" C4 M , u/ C2 N. h: H9 z8 m8 ^% a
gen ddy240min=r(min)& q/ o% ]5 z8 _' O6 s' G, H
) c1 I" c A d7 m5 K gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)% C% P9 c& g/ @3 ~+ T5 `# X3 U
2 z- y0 I& d+ \' G
sum ddy240g
. q1 _. b/ o" ]0 i/ t- c
- n& i0 d; N0 }% r- M& {% f3 ^ gen yxis3=r(min) in 1& Q# q7 L6 x/ ~! b
- P, L7 Q. Z8 f$ P gen yxis4=0 in 1) |( h2 j& D4 z" X7 i$ P
8 g4 L- m% @: K *ddy240g & x9 ^( C. R' C1 M! H4 Y! ~
6 n7 s4 O# [" y9 a! T: k* |$ X ) Z2 L, C1 _; t- |! |+ B$ F
preserve / n" r7 N' a; [6 A( h4 w. B) n0 c
. {4 M2 Z) \7 G6 a Q) d" o sum v5 [aw =avol]- X4 s4 s, L, }6 s( V! Q3 B, r% t4 }
2 p" u4 S) W" p8 f
keep if dx240<r(mean)
8 w; A& P. c8 F/ B ( V5 U& X+ ]$ [5 {" J
sum ddy2400 S* s$ c0 q6 y; O- e: d$ r8 U
Z7 u* r+ R, `. w7 I if r(min)<0 {
* M0 y( H% Y2 X) \ + I$ x3 ^3 k' i4 E5 @3 y( K
keep if ddy240<=0( W. Y- n, X; ?# w* ^; P
) I' T w8 x- c' C& C$ S7 b count3 a; |+ P0 ]6 a; R9 r, U: E
8 a# E. S; a1 L+ P+ l; F
if r(N)>2 {5 ` }+ ^7 z4 n; C- \% i0 [" T
# A, I: _: ^" A+ v! s- A! |
pkexamine dx240 dy240+ c& I$ o6 T+ A4 ^" I' k- ~
" J% `4 n# y/ y, r* o* ], `2 K: h
local tempminp=r(tomc)& n/ N& o# u- k' Z" q
restore
3 m$ _# L* N# [( V/ L8 ~ }( d; u3 W! T3 }( t% V! z2 F. U9 F
% E- V' B" q+ L) S% q1 `) V8 O
else {& g$ [9 l; s! h8 l1 |+ r; k
# V# L" g0 e9 |4 a8 H! `
di "cannot find minp"" \8 |8 P4 t# @$ a5 f u# O2 [
, ]! n% F+ N: D" q8 {
restore 9 U, \4 e8 C" E! Q
sum dx240! R' G' ~7 ^7 G; f
local tempminp=r(mean)! \% T/ Q" A0 K/ [9 g
4 K# }! g) Q; ^ }( D5 T/ i/ }5 U! q G* G' g% R6 b
}% p" g! U& e! ]- g- l
else {
( h) ?, V3 S8 Z7 d7 ?
( I% S! l- m$ L4 q, s* ~ keep if ddy240<=r(min)9 H) K4 `; g W, }/ V' A
% R4 V6 E j6 ]6 H5 X& g
sum dx240
e$ {) `0 q( @9 J8 G8 W
+ k9 ~3 [2 z* U# U5 u1 p local tempminp=r(min)
4 @4 f7 ~: S& n R' Q4 {' x9 L restore 3 }6 S1 \2 l, `+ X4 C
}
5 ^) |6 H9 d- x- r
1 G$ `. ^; Y: v3 _3 T3 P7 ^% i1 H P0 N. O# F
# j2 O; D( w' u4 |2 \ gen minp=`tempminp' in 1& w3 [( N' Y8 O; D' ?" {/ y
*240 minp
4 C7 K! V& b1 E3 [$ D# p. w4 v4 w6 C* C6 u+ J/ N# N' a
. J5 s$ n1 u. T0 k
/ I$ I! V% [, V8 \# t' b
preserve
! A" {. |4 _; G1 z8 m6 V' e 9 t# O" a8 g9 h5 C! m
sum v5 [aw =avol]5 C, O2 M. R+ `& |
5 W, I; w6 u3 b S keep if dx240>r(mean)- I& u& t @2 o
: s/ O- D* e; c& s
sum ddy2406 y" B5 i' H) U* K+ b5 o7 L
2 ^3 Z: c4 m2 v% S/ i& u) c if r(max)>0 {
8 O- U/ D2 j7 t9 ~4 v% l
( k, m+ v0 r& P. k. C4 ~ keep if ddy240>=0
( V$ H- r/ _$ [2 H8 W3 t2 E 6 `8 Z$ M V# H: N0 r/ W' k
count4 A6 C3 k9 O# }4 x
: z) p# o! K% G, q9 y, t* O
if r(N)>2 {
. d% _3 G) U" I9 |2 s! ^ 9 S6 M: v0 ~: V# Y) r/ t% g4 P
pkexamine dx240 dy2404 f' Z& ]2 a8 Z+ }, L7 z9 D
; g% m4 ^6 u4 J. O* T# I
local tempmaxp=r(tomc)
% H: \! s4 L, V- J& z restore % [. B3 K- |) ?: x: |
}
- T; Z1 P" q8 x& V+ t8 c & g q* [6 M" h4 V& _" C
: K! F/ S" c5 }( s else {
2 Z2 b# y/ R' e1 `& O. @ restore 0 C/ L, W x7 m& B
di "cannot find maxp"
9 R0 l: R: z( a$ ?4 W4 \
7 P, X: W4 i {9 `" U0 E# p" b & K" l/ b- z# T
sum dx240# _! g9 U+ u6 d# @
local tempmaxp=r(mean)
/ H# p$ `! w' I3 T5 g3 Z9 |% p - ?2 _9 W2 F8 [
}- L+ N) X3 S% R5 u8 C, ?
9 B$ ]! J- T- J. o" {8 m
}
& R& ~$ S- o: p; O2 N
3 ]& ?; c! F6 L' ~4 n5 a a else {) @1 l5 L8 f/ u1 U
" q) T9 @6 L" l: l keep if ddy240>=r(max)+ V; u1 Y2 I) D5 t5 s9 M1 \; f
8 s7 x+ N; @: z* F sum dx240
: `1 A P5 ?0 L( V6 K
8 k) U( a3 s3 Y9 @ local tempmaxp=r(max) & V+ B; }( E) ]
restore 8 \3 k1 }% ?2 \/ ?) H
}4 x+ z* n3 L: f$ v& L
8 h4 n+ V i$ i; r+ F, A3 x. C% C/ S9 L3 x! Q
5 _6 t3 v) y; k9 E" J" A0 t) V7 K5 {7 m! S. E
gen maxp=`tempmaxp' in 1/ e+ a' A% `2 \4 Q" v
. o# o- g. W; `. [% J" a
*240maxp! A8 k' P- M U
4 a1 |* h+ Z! D8 T) k
% G3 e1 U# Q. h* I) l: G4 D8 h *-------------ddy240pminp左侧高峰值-----
9 m" R. Z0 }9 {) h, V2 @ # u5 V" z1 z2 @* U5 ]7 T& ?
preserve
( G8 Y2 d7 G2 C' z8 H: Y1 j
& }% A- W4 \$ u+ O1 C" h keep if dx240<`tempminp'6 t2 z3 T7 X" d8 u: u8 ^, }
" E: m0 A2 _- n% _$ X3 ]0 r
keep if ddy240>0
, n8 r! \# h+ Q- J3 j/ l4 q
/ }! j9 c& r6 c) D8 X3 Q7 P R& q count
* J4 w4 X! m: n. q! ~5 q/ f3 b ! a6 I/ X% p, a" V3 T! o
if r(N)>2 {
. c5 L1 v' Q& x( h7 d
{( ]- Q# l* H) g: P9 F; @; F pkexamine dx240 ddy2409 C E2 D, j h4 D% N$ Y. d$ O
- D, n& j) h( k. A& l- X. j
local tempminphddy240=r(tomc) & t* h* K) y; w Y% M& t |" Y
restore0 D- x, y9 G4 Y# g" h) w
}9 P, r' _+ j/ \
( \; C* l" h" a4 {# B9 [0 k8 E else {% i! P2 N' b- V' M- O4 x
restore & f8 C& S# R3 z/ G2 n Z
di "cannot find pminphddy240"
4 \1 p' ?" o5 |
3 a+ V m1 D$ X3 X2 f4 ~+ C, V% n
3 F! e) t6 }' V2 I( ^ sum dx2400 W& A' T4 [! U5 r
local tempminphddy240=r(mean)
* Q$ X$ Z: ^% h4 Z( \' U ) N8 M. E+ A0 y* i* H
: E! U/ j* W. g& Y. x- ]* m/ l }
1 I0 s* T- s/ e
% G; g* A: [; |8 n0 v
R, M$ p7 e1 {4 h/ C8 b* c 8 c+ B+ L9 h4 ?* A
2 }- p! t: g i- @( B. A
6 q+ ^ o1 v" o 3 J, o) b" `+ I2 M' u- e3 L
gen pminphddy240=`tempminphddy240' in 1; R) _# l) d- S3 E! D
; |0 w1 D. z- t; f
5 z% h& o3 M; s: Y1 R *-------------ddy240pminp右侧低峰值 -----------------
7 U1 s0 { v7 d- \' }' y preserve
. X, S( s& B* s. e- V, V0 s8 D
+ L- z; \' L5 Y4 I$ r. B keep if dx240>`tempminp'
/ O' g& `# ]0 c- |
, Z4 R5 {( x3 O2 e keep if dx240<`tempmaxp'
; }/ b5 O- R4 r+ q: O
3 R# q- ]' ~! W/ N! p) B keep if ddy240<0+ M7 W- P/ Q7 V8 K' j6 A
" A: o' x; D# G2 _$ \; X$ V/ x$ q. H gen temddy240=-ddy240$ O, Z9 ]0 M" _# ]" N' d. P& a6 |: B
/ W( l& J/ N, D/ B1 u# Y
count3 M" b( f5 t# z
5 ]( r) V5 F- g8 j1 A6 B if r(N)>2 {
" H, u; [# M8 I- r$ `! _! i* F
$ D$ I Y' v3 s9 T pkexamine dx240 temddy240' C% f& l% G+ M" {
" J# `- a8 `, z; o7 h8 w local tempminplddy240=r(tomc)
; k7 l! {# U0 C W8 U" t restore
6 c7 p J0 |9 h3 g# N' L }
! T f; |& L3 _- E" v8 Z) V. R ( V; M# W; Z! d
else {3 s W' ^/ o5 M2 n% B
& Q7 ^9 C9 o2 b# e g! W0 o2 ? di "cannot find pminplddy240"+ s" J8 ~7 Q- F: M$ u
restore
1 L# `% N* z' x
Z/ C6 R5 c& ~# y9 p7 K- c% X, K sum dx2409 @0 R" ?, r: L; q1 B. U3 r8 h9 K
local tempminplddy240=r(mean)
8 l& v5 D9 S! H- @ + g5 [" B& H/ n+ |
5 L7 Y/ L1 t7 d! ?- _
}
7 C4 f1 o$ H) w1 Z& i 7 N2 z! H( T4 U6 g5 O# n9 H0 a! P
& d. N; }4 C8 [8 R# I0 f) e# L
- ]( Q6 T: x: e' Y
! b& p7 s! M+ k; o9 v
3 R6 N- {1 d# x. k' L3 P7 ?' ` gen pminplddy240=`tempminplddy240' in 1
1 f1 b' Z+ I* f. T1 j, X& x 7 b! ]* S, ?! G3 f
*-------------ddy240pmaxp左侧高峰值 -------------------) A, v. b+ r H
. y9 L }) d) L0 W, z% O7 b. U preserve
; h3 c' l# r4 W$ S$ Z8 I# Y ! B9 U& g5 ^; [0 S. n$ h
keep if dx240>`tempminp'
5 U8 N- I# @+ D0 F4 ^
5 P8 G1 g6 e" B7 `* P9 }* Q keep if dx240<`tempmaxp'
! w9 ]: E" h1 l4 ~ 3 Q* r7 q! t% ~3 @* T! T U
keep if ddy240>0
5 Y& H6 J& Z0 D% a1 _! Z5 h count( z! w G/ z0 d6 D$ Y* |
5 i2 I8 r# c# e9 a9 J8 }" `' Z
if r(N)>2 {
/ f, C* S' F/ Z
% f+ j# d, e! h9 Z+ T) e pkexamine dx240 ddy240
7 A6 M" E) v, A( }: s3 z; Y) H : Y, Z4 ?# e, |$ }, [
local tempmaxphddy240=r(tomc) 3 k+ D$ y4 ~0 D0 C& @5 h
6 U+ W3 k. e0 J) c1 A restore) ?9 ?! s0 @+ V4 i! u; ^
}" @- L! }! U, T c' N# L
" M/ c* ?/ G8 l9 I5 ]
else {
6 L9 A) I" V! H: z6 \- |* O5 N* k 3 Y1 \6 r r4 Y( \/ k4 l+ ], |
di "cannot find pmaxphddy240"
. _# t' g4 Q1 E8 f) ? restore
2 _- E& X5 ]5 }" w) c
V% ~1 i g8 D7 Y sum dx240& p5 ?9 P. J+ N% |; D
local tempmaxphddy240=r(mean) / r" P, R: c( E0 n5 q/ E5 a7 E% x
8 X, D7 h5 I {5 J& u
7 R3 a; P* s1 n+ W4 K9 |! @. Z }
% l% N- l% y2 {4 A
9 G& B. X* c1 v3 }& \ w0 ~
4 p2 J) Y, n" ?9 J1 o ) U" X7 {6 {4 |
9 I3 j8 u/ z! x5 I1 Z5 e# I
4 ?; j8 \. L3 M1 b$ g
# \/ F2 \3 _6 U7 P, X gen pmaxphddy240=`tempmaxphddy240' in 1- ~1 Q6 d+ `/ p2 t; t' h
}6 |* z7 a& V7 i; O
4 P- p( ?3 o! t8 ^ o3 V
*-------------ddy240pmaxp右侧低峰值 -------------------5 {$ H/ x8 D5 v; Y3 ?7 ]+ V
" f. K$ w0 [9 O6 J
preserve ! [: S- H+ G, ~; O( |8 K. d
3 f% `( n1 c+ B P+ P; b+ x keep if dx240>`tempmaxp'3 A/ d* T2 @. V& {8 L( \
\8 Q+ C6 y0 |$ ?
gen temddy240=-ddy240
$ U8 X' G1 |; A6 [' s, s 5 E! G2 ?- n- N7 e: {8 @/ v9 R8 L2 ~
keep if temddy240>0
* Y( o+ M9 q4 W0 K6 o. T* q : ?$ @. n; G) W! [0 I( `
count
6 W. X5 ~- D8 n" e& w+ G E( J
! @, X' M3 o4 Y if r(N)>2 {7 j' G* I. R9 j. m% A4 d( T6 H
# {( A4 m0 P- Y7 T9 Q
pkexamine dx240 temddy2401 r, ~# \1 x5 g; X3 h
& x0 B R3 R: U% o0 F# w
local tempmaxplddy240=r(tomc) * t4 ] p( V& ^7 Y ^
restore: j. E. x+ Y; [/ Y$ ?
}
) Y+ W0 Y q: X% W( e+ D% w 4 @/ I9 u8 m" C6 u3 g
else {
. P% O, ^ g( \- D6 P restore- S1 c. t; f* G
di "cannot find pmaxlhddy240"" B, N! N& Y) U& {! G6 M0 Y
) Q' b; S6 u6 c X4 q * } k4 K8 W6 E( e$ c' G
sum dx240# R, a9 Y' `. b2 O2 u
local tempmaxplddy240=r(mean) in 1
1 r: {& o6 c4 x7 M4 ^$ z
1 G4 ]1 H. c, C& O# d6 I5 {
& \, T4 G d4 p/ }7 D0 F }( ?3 {% a X) B) g* ]
0 H, g/ T/ D/ }- _' X1 z% r' @
: `+ S4 W3 Z$ a; H4 _, g. U
0 c8 C$ F3 K1 U$ }. t% {
- J/ q$ S# }% O5 b$ k5 ?
/ i# M: {& @+ G v& c9 k5 c9 t
% x6 Z. d, N2 H, n2 E3 k gen pmaxplddy240=`tempmaxphddy240' in 1
$ H. o) C. o6 E2 c' s% A ! {: O: ~! w0 r: v% |0 E2 o% [& w1 r
*-------------------------------------/ V% s d8 Y) a8 ~4 q9 C Q9 F
: {5 N5 h8 x* z: W, _ gen price5d=v5 in 1/20$ E- Z1 A7 U3 x* S& m) ^9 p' f
4 ?* q0 [$ ^$ H! e0 B gen price5yy=_n in 1/20
6 D9 U" {2 H( K# J4 ?& B$ v( M
$ U$ k0 L6 Q$ r7 l3 Y4 A$ z gen price5y=price5yy*(dy240max-dy240min)/20
1 Z5 Z% B1 ?5 d9 M S% Z) u( X: O) q) p+ M) C. p; H% s
*price5y &price5d
. C& x! G5 `; ~- d$ @3 A% y8 L7 E
/ ?' A Z' n3 n gen priceny=price5y in 13 o& w' e: S; o' A
( r4 L& t2 W7 L2 N2 }/ W
gen pricen=v5 in 10 F! i N# o9 a9 I7 t5 m& S
3 J3 m/ v7 }5 h' K
- m1 a7 W/ e! v) z/ z O *priceny &pricen
* {) m- \# E& [, i. P
/ M% l9 s, J; T . m3 K% h n) n V
*-------------------------graph------------------
& B- o/ ]$ p3 R( w9 I/ E! N $ G8 f/ H [8 d) f: ]6 c
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)
( M7 Z$ o" |& m( C7 E) E! c* f/ N: `1 S% }# n
* ---------可选项目----------------------. W4 D e M# Q9 R4 D. V( F
. C+ x7 d' V8 d' s6 Z}5 ?# |1 Q+ p+ v2 [1 l6 }
end( j0 h7 F2 S/ j0 ?, o' M: P( `
|
|