|
|
改了一下,这次运算应该没啥问题了
- O U, a% [2 N3 ~$ L# H
8 H4 W t* K0 }$ d2 ]; i: P; s# k4 R8 g/ c
capture program drop hello5 W# |8 U9 g6 i* s
+ ^9 B6 Z9 K, x# o# @. eprogram hello7 V4 I- n& M2 y1 [% t9 A8 x
6 c$ \3 \2 M6 \8 q quietly {
, V1 J, K9 X+ M, _8 j: f
4 R& l* H6 R$ Kclear
0 r+ _+ Z) P1 f" G* {$ B* O) J5 n( I
cd e:\finance\stock\20110101\source
/ d' n$ ]% F, @8 `. j# K: G) r/ c
insheet using `1'.txt1 h! P0 p: B/ k& \4 A
9 Z# I" Q1 R2 }( o0 H8 i% X/ U8 v3 X keep if v5>0: i6 {& l: n) o7 C, o/ J W5 A
9 T6 c4 h- J# \' p2 S7 h gen vt=_n) B7 j4 D2 [ U+ i
, i0 q' B" |! N
tsset vt7 c, M0 r6 e6 U: x
' U9 z! A3 n0 g1 j+ f7 h gen zf=D1.v5: e& }, Z6 p1 n1 v) \
: J( j/ d' `- Y! n" f
gsort -v1
/ l ~- Z, y+ s4 H" z3 [% M# K6 I9 @+ Q4 F
gen avol=v7/v5
( Y5 ?: o, P5 x7 y$ c
! Z, k* c9 d4 X( n keep if avol>0" R \) ?9 }8 R# u
2 X& @3 c- [8 a
drop vt+ Q G. S. I: F' Q
( j( J! ?/ R& X4 ~) t
gen vt=_n p- k: K( h2 \' b% c
1 y/ s5 e( E# k O- g
tsset vt
) ^- c$ F }' D: ~ `7 X) O3 N5 E0 J( u) K! f
sum v5 [aw =avol]+ e' ^! m; B7 m$ D2 @% l; \ `0 C
6 y4 |5 T V' L: v' ?* Y* } gen amean=r(mean) in 16 p* \7 N4 y. _$ j% X
: `! T# H% ^! ?, i7 s; P * 总加权平均值 amean! V; m" J. H. o8 m5 P
& c! F* P& q7 p( {2 z/ K & }8 b3 Z# T; V0 d" q
keep in 1/240& T: q. _1 d" _* l: n' p) i7 ]. K( [
9 Q/ p4 p: P+ P
sum v5 [aw =avol]7 W) J9 @0 s0 y2 e6 o
3 V5 r% k0 X# G K gen mean240=r(mean) in 1 d$ N$ c: q) s* e. I
' Z B0 U) F$ u, E# n
*240加权平均值 mean240) \" Y) H& M9 @ D4 M" u; V
3 m# @1 X' B" C$ s$ J" I
set obs 500
* M/ U0 F: D# Q9 f! O
) K( E8 f; {$ l$ h' }( k4 |7 z kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph8 A9 D2 n5 p* U. v4 Z, \% f- _
( [# e0 }7 i# R* c
*240 kdensity(dx240 dy240)
1 P) d2 V6 u1 L. }" a+ f
; }8 R& z6 j* ^% V sum dy240
6 w8 ^4 }" v7 C/ M
# P8 w4 t- P3 b9 ~8 @* K- u y gen yxis=r(max) in 1- w: L; ~8 {! m& l% R
: ^. e+ [1 K4 x) E gen yxis2=yxis/2+ g' }# M, d' _; X: A
4 a% K7 i- I! c5 N( @( a: j
*yxis- R0 z9 e7 O: f8 W+ f, P/ h
* P: t- R0 e, I8 L; J5 k2 F% {/ ~7 [ gen dy240max=r(max)
3 P# {. l' L6 @2 s5 v6 s
$ V9 |6 h/ b' l7 H( ? gen dy240minp=r(min)
; e3 j# K8 A. O" H; P 6 J6 @8 H7 G+ [8 T7 @; F+ ~$ t
gen vtt=_n
& V1 X+ t6 E/ S- T. w9 n
+ d: O5 {/ \0 |0 J# ~ r tsset vtt% l. i0 f8 t6 Z( c. @1 S" \( f
1 @6 s$ ^6 r( L: n; X8 `* S1 [
gen ddy240=D1.dy240/D1.dx240! [ S" e! d9 z2 W2 `* \
b: \" O/ U; ^$ N sum ddy240
! m0 i; E2 p) ]) H/ O! x3 v7 p" U a3 L 5 W" i0 E2 x4 S, K5 f/ m4 J
gen ddy240max=r(max)) D$ n3 a8 u& g0 a/ s2 a
3 d9 s) l+ ~' ~+ ]4 P gen ddy240min=r(min)
: y% D% ^6 K7 q: g0 {
1 O! l2 ^- E' ?4 b1 t gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
* ^7 _; b: I/ \. s" t! q% ? ! z* c& O6 q1 b& A7 ^/ ?- `
sum ddy240g
& Y" L* q! ^0 W/ a g% h I$ o
0 ~- u0 m. S$ J, b gen yxis3=r(min) in 1
3 L; r1 \7 m( P: H/ n6 c8 [6 U2 s 7 X* f8 ]. W' e" U' [6 k1 b& I
gen yxis4=0 in 1
! V: n+ ]* c9 I4 B$ K! ^0 ^3 f' w/ t ' ^ U! x2 a4 k# Q, |: f3 I
*ddy240g
1 |1 e3 x: j9 j/ d. ~. ]5 T' n7 l : R- s2 n. h4 i. N1 F; z1 D
" v7 A( `$ W6 L; U
preserve
% t* ?: E) {/ x6 { ! ~7 a! `% d& x) D, J% _
sum v5 [aw =avol]
$ C7 u; Q. {/ s# L2 N
9 v- z( ~6 r" H) A1 M keep if dx240<r(mean)
) d9 h1 t8 Y. a9 P: L8 b. t
1 q/ ~- W% Y% c' S6 M sum ddy240
+ V( S" I7 [ U- O0 W& { - r5 [( Z7 o9 t# n9 d5 O$ T
if r(min)<0 {* {; s; \' i1 J4 t* j
" h9 ]5 Y+ ^% b$ ~/ b% D9 Q4 `2 T9 L keep if ddy240<=0
6 v3 i- V2 I1 Y& l |+ T / j) K9 m& ^+ ?3 G; ^
count
7 W2 F* k$ \- W# b( G$ B9 p
/ f- S- ?- E0 z if r(N)>2 {
6 w9 e$ Y9 _& c9 W
( c3 S" B& K9 X# _: I# G pkexamine dx240 dy240
! M% ~" _6 Z, ~$ Y: g - J3 ~) O" Q5 K; S
local tempminp=r(tomc)8 q% B9 P! Z0 U6 z9 V7 l" `2 \
restore 9 ?4 n* C+ N4 s. D( D4 G
}
; T/ M; c7 l# P$ C 4 T! u& ^: W! t; e1 d1 D
else {
. t8 V/ G% r1 e: M % B6 Z3 H: R! f4 o5 @
di "cannot find minp"
" N3 z8 g9 A# Y5 j3 G/ c, S. Z ' } X4 t/ B; I& g
restore , H5 s5 L( g0 A2 h& K m1 G7 ~
sum dx240
. d% t2 g4 j4 q$ `% t; I local tempminp=r(mean)( N2 w/ \) n' |& D
2 j" ~1 Y6 q; t, |9 B
}
2 i( R3 n4 Z8 }2 k+ H: y }, @4 n% a: Z9 D; r7 v# X- c
else {
. w- d! A" @, I/ Q# H Y# f! _
1 f8 m+ d5 j7 ^. j1 g u" ?* ~ keep if ddy240<=r(min)
/ A R. @2 C# B& x' L
4 r4 g+ O. }% ^; c# M sum dx240
" k# Y! _0 \! m2 D+ @) ? : R! j$ g9 Q* f$ v r5 y+ N [% R
local tempminp=r(min)' C1 B* X0 m- x! I. }; _8 c4 }
restore
5 ]+ V- s3 ]( f" ^ }+ U" p' r' d8 u0 U4 ~
2 D% I2 X8 a3 O) P1 o$ [: Z
! U: @& O) L! p/ q4 c( B. i% X+ \: l- F4 U' Z
gen minp=`tempminp' in 1
* V+ x$ o0 P0 a4 {/ _) Z8 B2 g *240 minp9 S" ?: \5 y9 Y0 i4 O8 g, d
* l$ @3 r/ h; Q1 C7 P# O! J6 |. a
" t, }) Z% t' {/ @* E4 ~ 4 M6 s3 W" ]8 p p3 e3 `2 i, u0 K
preserve . {: V1 R" ]0 c# d& E! T7 J* `0 s
g& P1 [6 U9 O! I1 w
sum v5 [aw =avol]' z6 I8 Q1 z* @3 `) I2 ~
2 U# l( J. s0 D* o; Y( r3 ]" R
keep if dx240>r(mean)$ ^" U' Z/ N# `- b
4 m& \- F+ ~1 r) ^8 i
sum ddy240; E) p- i) j8 h* y
: n, N2 z5 W0 g if r(max)>0 {
+ E% f# z' N" |8 Z/ z
* g3 p( C9 c1 R keep if ddy240>=0
3 ~" X+ { m1 g- J' @ $ I3 ?1 y/ \! |; u
count$ I2 }) y, C# G- O! S. ]* l+ `. Q
9 ?4 c0 Z, z5 r6 V; o$ F! q
if r(N)>2 {: |+ f6 {5 g8 x
' F) A3 T0 {4 d$ x9 f4 W' w
pkexamine dx240 dy240! q+ D1 u6 }- c
& n( V& I& A! ]" {* |
local tempmaxp=r(tomc)
' o; J6 |) q$ f2 A restore % ?( }$ m/ W8 b1 i( \- Q
}
, q R. F0 T/ n! P( ~$ F9 m2 _ 0 g5 W |9 R+ |: Z& b7 V4 ^
( P; e- Y0 r% a/ [1 q! p6 \
else {, b4 L Z9 I5 J" y# d. q& r
restore
3 D9 `0 A1 V4 o, T1 g5 l di "cannot find maxp"
- b2 e+ v6 W( `, Z, S* j
9 [2 c8 _* D$ V9 a3 I: p/ O
! b0 [5 ?, t7 ~3 `7 @, s sum dx240
6 H* H* K+ h' T8 d/ w- T local tempmaxp=r(mean)
# a! w8 @ `$ l$ g5 L/ X2 ^ $ |! d7 B7 |: ~, o' [
}/ A' Y, ]% M% m3 D6 k' l% _) |; L
( S; R+ i8 E4 D2 a, R8 t! a }
4 k% b" t5 A7 C' h) q4 T, o. T 8 I! S) w1 m+ W) K' Z9 M
else {
" z$ ]: J4 @& a, e5 g
& m* G5 e6 X7 L% } b' j+ v; V keep if ddy240>=r(max)
2 N" t" R9 h! _3 P - g% y& b, v- U, l- D
sum dx240
6 a k3 q! q' ^
0 E1 }0 @* `4 A8 A local tempmaxp=r(max)
3 f& F, H' m! Y; s restore ) L# U1 A1 c v" o
}7 j/ P" ^7 ^$ j, o) W
* A; @( f8 c' V, w5 T& m& M3 B
. @8 G; E+ m: n7 y& j7 E9 l" |
$ D0 P% \3 t& q& q4 h& D
% Q r7 w* J z, U1 p8 A gen maxp=`tempmaxp' in 1
6 z& G! m5 T4 g
' U; i! C$ h, [8 f' ?9 L4 N8 y *240maxp& X1 H: ^! g4 n% R! w' j+ [) i
- G2 \3 C& \, R( h2 @
) A8 j9 C: }" C8 \: q! _/ i *-------------ddy240pminp左侧高峰值-----! G' z O% W" e. o- y2 [9 z
( h0 S% q0 s/ k, Z/ u% T5 w
preserve h# o. l( n) i6 | H8 J+ D; F
7 \' g) S% [+ ]# I. q) r$ w" O
keep if dx240<`tempminp'1 G( `+ {% H( l* f
2 K& j9 k: t3 i
keep if ddy240>0" c" @8 |9 }; G1 v: S) }1 f; R4 u
* l4 t6 C0 o/ l, N5 T count
! {- U& W( s& H" x) q6 C
9 g" q% `8 P; e, k$ U" y if r(N)>2 {
" n3 \- f% ]4 N p) C 6 `8 r0 {9 I3 S ]3 d$ k H
pkexamine dx240 ddy240
* d' E6 Q7 _6 q" r- m" ^ ! g/ e$ z2 O- @- E/ B: A
local tempminphddy240=r(tomc)
. l$ S* }7 N8 [4 S, J0 P0 J8 i restore9 o# Z* l- k4 I. e) E# \
}
8 L! D. I3 p+ p" G5 t - g' o% W9 S% a# g; \
else {, m, `' P8 ?% C/ w z* \
restore ; v4 W: N) _+ @0 D" r- E
di "cannot find pminphddy240"
! ?. \7 H" e: e& _ I # [5 T7 Y; }! Q. r, D' m
& z* n! ^# l3 B5 c. S sum dx2409 D7 M# K ?9 N8 ]5 d# c+ U7 \ D! t |
local tempminphddy240=r(mean) ! m# o, _* t9 H/ V- ?
/ R# Q8 x% u& t! h& Z6 J( O
. f: e, D) r$ U7 D6 y5 R }
! ?9 C j) B; F 8 u u% ^4 `+ W& y) e& b4 t
+ M3 D* @& N5 z/ g a! ~
% y A6 V% M/ g* P
' @, r7 e* y K8 R
; { D; c1 F: v
+ f2 f5 u/ H' ^, `. l4 @
gen pminphddy240=`tempminphddy240' in 1
' l9 ~7 w: {5 Q* v
2 f* b/ V! L2 R4 `
) z- p" N8 z- B0 F" n) y *-------------ddy240pminp右侧低峰值 -----------------
6 l1 b7 G8 k5 A2 h3 n K; ` preserve * @$ g9 J& S. F6 r/ N; z2 H8 i
, }; t( p% f! o0 k9 t# P
keep if dx240>`tempminp' k" v! Z' ~3 V& \
, T8 f# ]6 Y+ M9 {7 o
keep if dx240<`tempmaxp'/ u# s# |5 Z$ y+ N0 k# n3 C7 j& b
! f8 W2 `+ I9 } e ^
keep if ddy240<0
4 F9 v' ~( {& W " J* @( I! ^2 u# H/ s) \/ I7 C
gen temddy240=-ddy240
0 C# d0 _4 j0 C+ U7 }. F 8 F% s3 q& ~- \, l7 t- k
count
, R+ l- X7 D" s) Z* _7 _ / Q% I; \8 w5 I' i3 p
if r(N)>2 {
+ h, {, h9 g* G/ t. |* ^" `+ T
^3 A. ]) u: y' W4 t0 n pkexamine dx240 temddy240
3 Y" Z: f/ l4 [7 P( G R% J" b 8 y3 o. t8 g$ L: U6 m" O" Z
local tempminplddy240=r(tomc)& E, G3 @% g7 W, ]0 T/ i
restore& J0 M4 ~# C6 L c, S
}9 ]. t, v" w0 L0 _) a
" h! i, I" N" X8 E6 S H
else {2 R4 t+ X7 N* ]' k& \
9 D* d* @) w9 ?1 g9 H/ _
di "cannot find pminplddy240"0 F* Y3 n6 v9 ?9 m% O/ j
restore# p6 y. N: f: O- U6 p
5 M N. H- k7 l8 ]3 ?) t sum dx240
! Y: a e& P, ?, q local tempminplddy240=r(mean)
0 b9 V1 J6 L$ }5 R, X) q; @ ! p, N& h7 c& p( a) Y2 q
$ D! z7 u! q% { }. b$ _. n, W: J' Q* L! V' \
+ N/ l# ^ K3 C8 B5 i7 A4 i4 K 2 V; K$ E* J1 d9 e- |, p
, n0 V Z2 o1 Z
3 H. z9 {1 I* O. ?( W$ _7 y6 ? @0 P
5 T U3 L2 s* a Q. F$ J g gen pminplddy240=`tempminplddy240' in 1
3 p3 f9 y9 C b8 D
' y( `! A6 u& ~3 \+ g' ~- G *-------------ddy240pmaxp左侧高峰值 -------------------, J" b& t/ B0 N1 g7 h/ x# z# i# ^( p& h
. B6 Z2 g: b5 V. p$ I3 V* R- M preserve ( e. r4 C1 M4 y' I2 ~, w
; v" ?: k# x+ }7 v5 M: l keep if dx240>`tempminp'
8 D# u9 N( H- v3 V' N [. o5 ^ 1 G/ H/ c2 f# N( ^. \( H
keep if dx240<`tempmaxp', n. v& ]* {& \
, R+ ?, l. |2 K% @ B6 z& ~# m" t
keep if ddy240>0% |' L3 `! @4 l+ ^( X
count" `/ L' \5 _$ g0 }! n
8 _, H; K- j, C# t if r(N)>2 {' D( L% [: c: W4 o3 P+ z
) M# A; C! O4 [5 ?# M7 d0 { pkexamine dx240 ddy240
# d# F2 r7 Q9 E . z4 Y. b m2 w# l0 O
local tempmaxphddy240=r(tomc) ; D- U Z3 ^; I* w
8 X* Q$ }( w- b1 D, I restore- x+ g9 o0 R' _8 i
}
) W7 S/ f; a7 H. y6 c$ \
6 t* w' C# j1 g2 A/ X$ U else {
, q) P, y! S# y + c2 R* p6 J7 Z
di "cannot find pmaxphddy240"5 s6 [5 m: m" h3 ~
restore
4 @. a" R6 _4 h3 @, _* H3 ^ % y0 {7 Y' V& }% q
sum dx240
/ y% Y8 e4 {) |; F* u, k local tempmaxphddy240=r(mean) / |2 J% x' o' b
1 ^) @, s1 |5 A7 u% `+ T) ^ # C; O7 l$ L4 I
}) @! p @ Y+ z1 `
# W1 X, t) l# C% \8 u; m% ^5 q8 z
/ h& M/ E+ U2 G& O, o5 R) ? % P3 p s5 @6 q; a) n; _# x
3 F# R; ]; \ |$ z9 W
- {4 m$ g+ S0 ?9 B
* F, x0 x- w6 D* E9 B gen pmaxphddy240=`tempmaxphddy240' in 1
- p2 S0 \1 l$ F + m9 P% x7 V; v$ |. X/ m
7 X) u+ T& t# L- k2 V0 i
*-------------ddy240pmaxp右侧低峰值 -------------------
9 Z0 H/ M7 s2 p3 R6 m. @8 ] N' [& R* Y) N8 x2 {# i% z
preserve
, D" o5 m) y1 E3 {" e- s- A& ` 7 N. S8 I7 y+ I) G
keep if dx240>`tempmaxp'
* d, d3 R! @8 i) {, M
~( {( S' C$ ?; D9 ?6 H5 [ gen temddy240=-ddy240
$ c, \+ ~ c$ }9 C" P6 C) U
6 v$ v* a$ g+ U/ Z- H) O! V7 S! O) H. G keep if temddy240>02 D9 U6 f1 P' b8 F. h
2 b- d# P0 W0 L
count( P: @# y7 P: t4 a4 s
. j. E" I& h' x, v& Q! p
if r(N)>2 {
/ I" B# O% h+ f& x5 Y" v : ?( H: a" n1 k9 A* S! ^6 c
pkexamine dx240 temddy240' p) R% M( f# h" b/ D8 P. I
6 I6 x" o* o+ |4 h5 p8 D* A
local tempmaxplddy240=r(tomc)
4 J3 b/ n' s3 `$ X6 p restore5 }5 k7 l6 ~4 o
}$ N8 d% o" `$ t; p+ d( |
# a# Y9 R `0 r
else {
# ~+ G- M/ l2 v5 U; N restore
1 M6 u4 V! n3 }4 Y+ V di "cannot find pmaxlhddy240"1 C' e3 U: Z- e# H4 Z- F7 }
* X G) `4 R, P- ?* u6 }( A& w
6 I- U3 Q$ |' _" ~" C1 K d( l, } sum dx240; ~2 [2 s/ D) { J4 x
local tempmaxplddy240=r(mean) in 19 g7 F" T9 `# q" n0 c
( A" h) l, e, x3 m- z: {
% g! |+ ?4 R* z. [/ _ }3 \& {, B0 R# `7 }- n3 B, M
! j' J* M; k# q2 g- x9 T) e$ K4 R
4 P( `7 Y) M, ^+ l& F y
2 ]6 d8 C8 L& s/ e
" y% j/ e' o5 r; e5 | 8 b p: ~& N- E' U2 k) q# F! C+ B
$ ~3 f4 q* z# w1 u0 u& e+ d
gen pmaxplddy240=`tempmaxphddy240' in 1- i" ~2 z+ p" L& x- @
. z& ? I$ J+ u+ }2 E *-------------------------------------
7 z0 Q3 o& W5 h4 ] Z/ D, F$ E
" f& j" D: o' x gen price5d=v5 in 1/20* v3 [! p+ Q9 @, x# X5 @$ [. i$ H
* z. q T2 u# B
gen price5yy=_n in 1/20
# \, e$ y% O3 b% m! E2 s3 \' Q
/ R/ n" v; j3 N. t gen price5y=price5yy*(dy240max-dy240min)/20
9 b$ L; b* H7 {/ D! r( | - N% g$ a L0 H, F3 O8 ]. |9 N' E f
*price5y &price5d# k. u3 k% l4 j$ X4 M
5 F3 j6 O% \0 {+ N0 `- U
gen priceny=price5y in 13 B4 X( O& ?% J& F
0 c2 E2 K: _7 I" }& G
gen pricen=v5 in 17 M' r: k( g1 l6 l
$ @& W% s9 Z# q+ E2 U
4 Y9 v3 u7 j% Z- n *priceny &pricen" i: M, m0 F5 Y
! H( W- ~( l; U1 n, ^5 c
- m# ^- F! }0 n( h" I* W *-------------------------graph------------------
4 |7 _+ k2 y8 D* R: x* L . J4 J3 {& T7 @3 b; p* n
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)
# S! v+ R$ q- g# f- \. {7 v: \8 T
o$ ~) c, M/ e* ---------可选项目----------------------
1 d5 |6 ~& Q5 R" Y
7 N' X7 H3 t2 G7 G}$ z/ S5 @! p! T- l" X' P
end6 I2 B7 S8 L0 |4 }" {: J9 _
|
|