|
改了一下,这次运算应该没啥问题了
, G7 a/ Q) {4 w1 o1 A/ d8 {' A1 d$ ]0 h0 e& I; w% D
' ]1 c" C$ w3 f! w; ^capture program drop hello% p, {# {. I0 x9 k) z2 A
7 W# `* _4 c. r F* B/ K
program hello" Y2 a- N$ y" ]- x) ^
) i; H! n, r. r v
quietly {
& b; N9 g: q! F9 N
) g9 C2 {! o, Wclear# {8 _% T, a" m0 r# }- l5 A2 X
% Z& b: N9 p+ F! C/ j! |cd e:\finance\stock\20110101\source
. ?& y7 ] ?% W* x# M; }) i9 i1 M
insheet using `1'.txt
& L( t" G- R9 `7 O! d1 |8 {2 t2 S0 P. g# \7 j
keep if v5>0: r5 n% m6 I. R! Z3 U) G/ @( ^4 e
& M, b: I; A5 [6 _0 G9 R) @' N gen vt=_n
" q% n% m/ V1 b: u3 r( x
b8 {) c$ @5 U' t% h tsset vt
# y+ C: L* P' _ X0 K# z7 @" e" E
n, g. O# {7 G6 K" C gen zf=D1.v5
3 q) v% T2 }( k$ H1 L3 W
0 d$ |5 h8 k3 k B+ ?" L' f! b( j2 I gsort -v1
: X; Z/ ?* u( t
6 R. r7 r- x0 B/ \# U& d, J gen avol=v7/v56 ~$ }/ Q7 e) O) H( p
0 T6 C1 I7 ]+ }
keep if avol>0
+ y1 f, t% o) {4 M% N1 |- t
- W1 J" _6 `7 L; T, ?' X0 a& e) ^$ y drop vt- ^7 l4 T. m& \/ o+ k
+ u, v1 O7 |* j/ G6 g- l0 y7 L% U gen vt=_n6 K% u1 v0 {3 O* R) [2 o1 y3 r
9 m. q' @8 Y9 h5 ~5 ^$ r
tsset vt' P1 ?5 E t# h9 Z) P
# v- T% x* Y& A7 _6 T sum v5 [aw =avol]
1 m' y$ }# g& c# q. ^
/ g V$ ~/ b/ M) X9 X$ c gen amean=r(mean) in 1! F l9 N1 R* M6 P& H7 T9 T
- l7 y( R2 m' r/ ]. @, O
* 总加权平均值 amean8 y$ d* ]6 P( B
( N9 y, {& T+ d' H0 T/ {4 R 8 i; C6 G: k$ G
keep in 1/240
( z1 V9 n2 E8 M0 {+ Y
) R5 u, \4 f0 [! P( R3 b sum v5 [aw =avol]
" U/ j Z, E. a; j& z' I7 l- t# N9 r9 v: x' q( ^
gen mean240=r(mean) in 10 H- S4 r U2 B* T8 u! |" t
! Z1 x, s# F! M* O! p
*240加权平均值 mean240% W& \4 ^6 P( ~2 |1 [
$ J8 A; t& E! D! s set obs 500 ' T2 q' L- H8 m' ?3 J5 P
/ F( n) k( X, R; m4 z kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
7 W' _! a( L7 R( m- E7 j/ [& G4 z
. d. I6 ^' e1 L7 |/ Q7 M4 H *240 kdensity(dx240 dy240)$ w! g* I2 u! E2 i% J" ]% h
* `9 k' ?# s' f' c6 } sum dy240
8 E! Z6 T2 m6 R% {$ m, E b ) @* i( j' S, m: w4 H3 g' w- E) M& ]
gen yxis=r(max) in 1* X, b; K( ^" s4 Q1 }2 z9 g- X$ _- T
3 c6 m F3 X, _/ v8 V gen yxis2=yxis/2, w# e( ?* G+ F# h/ D7 J$ d4 f9 f- O
; E/ [" W5 k* A p *yxis
1 f' \5 Z+ N7 G, m' N, l; L + R* F) @4 u0 F, H' c5 D. V3 ?( z$ g
gen dy240max=r(max)2 u, e; V J3 H4 a9 Y2 w( `0 r5 [% I9 M
# q& }' e+ {3 Z' o" n
gen dy240minp=r(min)' [4 U- u o- F+ z' P7 l8 N# X1 F. J. M4 ]
8 V5 A" s! A8 g7 S' P gen vtt=_n8 u! X* s! [7 g' d
$ B$ o- Y1 f/ z9 \. a$ o
tsset vtt5 |: a, d+ y {2 Y
; M% A6 h9 y9 F+ d
gen ddy240=D1.dy240/D1.dx240
+ f" t e; V5 L' _+ s; I( C" X) h ) n5 o6 p, _& G# {6 G
sum ddy240# U, K. D# `; m( U
1 F% T* M" s9 a3 i. G( |) } gen ddy240max=r(max)0 r& W/ o( a! N6 J: m
+ H, Y& Z( h4 I0 ` gen ddy240min=r(min), C& N4 v% z/ \0 x V( W' x; w
' b; ` u d& ?4 Z; r1 ~+ Z gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)/ {8 P+ q, Z2 q" ~9 h
3 i7 J: Q7 s0 _3 K3 @2 O. z, z3 B0 ^ sum ddy240g0 \* m3 O8 @& P3 |0 i6 s
, H) \! n) j* ~* V# H, A; X
gen yxis3=r(min) in 17 C0 q0 S0 E: L- e2 P' ]6 Y
+ \7 l% s/ |2 k8 t; G8 [
gen yxis4=0 in 18 z: _- k1 o. z# J& A
& ~ H8 u# ]4 g+ t2 @! F n7 \& r *ddy240g 0 O9 L; c% J7 t! ` i. ~' W
0 ]( f5 b$ m. a4 g, l5 G9 G7 |0 i ; w# l- M. q# @2 s" D
preserve
`: m6 W$ N0 n
6 U9 e- ]1 G6 y4 Z4 n% R9 v3 x* z sum v5 [aw =avol]- D% q# C' q; N8 I& O- Y
& i3 o8 x& R( F6 k/ O keep if dx240<r(mean)
$ Y) u; C7 e k% P+ z5 v6 M 4 t" y- }6 S# K5 o5 N
sum ddy240
' T# E3 J- r( m+ K1 @ 8 x0 _& ?1 ?0 ]- `9 Y
if r(min)<0 {6 V: V/ p: B1 m- V
% Z B! L/ k6 }/ W ^8 B0 A
keep if ddy240<=0
1 B N' e2 {$ \8 y( }& z0 p * | W6 g y* K5 w' p" \/ G$ e$ l
count
( j, K, ]. x0 h4 d1 a3 d; a
% k& s7 R- ]2 m+ }: D! P! J( ` if r(N)>2 {
I0 C$ J- g& k2 g
, o7 A; u8 X+ n pkexamine dx240 dy2404 l# J1 a& T/ {/ ]) o( l6 u# B. g
2 O. p! ?# i5 g" o
local tempminp=r(tomc)
1 R+ G% z I, O, T# S# U restore
* a0 S4 N5 i- a. Z7 D5 V; @$ p, a }
% x( X8 H3 y1 E* S+ Y% u
$ v, I8 |4 k( Q: O; g% F else {: z3 j- S% K5 B5 L' e( c
# z3 P1 k, u$ |+ _. l
di "cannot find minp"3 X/ } Y- S2 _$ [+ g
1 J y9 p$ f) y o* _$ o
restore
# B6 i7 c6 b; a' A- X sum dx2402 {. w( l$ C; }1 s% [3 l
local tempminp=r(mean)
' v+ _' i# S$ ^/ Y0 O# h0 u2 J' e
. g- N g( _, Q. \ }
6 A" s% n0 ~0 a/ q7 S }
& F/ J# ~ j" j; x, @, Z else {, V; K0 ^# @2 d5 [* q
) ^4 N! l& z# w. G2 D- G keep if ddy240<=r(min)
. l( h1 Z7 _7 m) t
7 Q7 q+ g# ?7 x4 k9 r; e sum dx240
. V% J( k5 N6 w5 K% A; r. B) Q0 _/ S
# x) [/ h! C3 f }# M! _/ N local tempminp=r(min)
3 X5 J; _7 @( J( c- c restore % v+ V. D: H; K3 Q' k
}
# A& T5 ]3 H" Z1 i2 H) i6 S" Z( r5 v9 G) r N
; P6 t [, ?' d0 f
- C; p8 K, Z" N: h0 C+ K
gen minp=`tempminp' in 1( Y; o' N; N' I0 F5 T- c0 Z
*240 minp; p7 _# f: O6 I) p- a
$ `! f& K# M$ {2 w
( _0 @/ n1 w" c, L m( b ; l2 p% q; r! ]7 P9 Y: R6 B0 R
preserve
" t9 Y1 M( o. s- S 2 u* I8 i; L$ r0 s i9 E
sum v5 [aw =avol]
7 l' t8 k1 i! X% j# t # B( ?# M3 h% Q. L
keep if dx240>r(mean)
8 z) r) i+ j2 d# S
* J/ t1 {: N( \) Y- x( B; K9 w sum ddy240& b4 a( X8 l- i# t9 J) n
' D1 u) K [1 F' A
if r(max)>0 {, K$ l) c& R3 `* b9 w8 F+ }; e
! E# ^. @: `: a( F. e! }: i
keep if ddy240>=03 P8 W. e- u/ ^/ \2 k3 i
% j' z, b+ Q. k0 V count( q& O; ?# A8 W
$ n n' F; C3 S- ^
if r(N)>2 {
; d0 E& m2 h9 g3 ~* }; o 3 j7 S- ^4 }" t7 U) a' P" w. u
pkexamine dx240 dy240
$ b% [# y! A! F( K3 t. a5 w1 A 8 j, Y8 j# X% J7 V
local tempmaxp=r(tomc) E& z8 p9 [: V) e+ r& U
restore
+ u! ?1 T8 q* T9 {! q; ]+ K1 t- d }, D5 w0 ^ D% b: [4 l/ ^2 g) O f, f
$ W3 e9 J4 ^" c) W+ `7 c9 U
7 ]- `) t7 y0 L+ p( w2 E
else {
& _9 ]$ s" i6 ^7 ?) l* I restore 0 _$ _# P2 A1 C* c0 h
di "cannot find maxp"
5 h9 w# K; s' D5 R9 T $ v$ ]1 `8 C& U3 x% Y6 o6 W. q$ L9 M
* D/ x" S, b* x+ Z; x/ _% d) ?6 H sum dx2405 ]( t0 S$ n8 }8 S) }% D: ^2 _/ R0 o
local tempmaxp=r(mean)
+ y" Z/ I% X7 q% x5 |1 Z4 L. E3 C8 n2 c
2 X2 |- Q3 k8 b+ D7 x3 ~: s }( ?& z9 |# K5 |9 p' j
6 q& {; A! O2 ^
}) }/ ~5 z4 [3 o6 Y4 ]2 G
0 g& I& k2 J' F# I& y5 a else {
: `+ h7 ]5 v! `4 K# K
1 \' L' o- y$ @7 F8 y4 w keep if ddy240>=r(max)
. C7 s# L6 Y: i" G' i9 w4 S * E/ X" v3 l1 O: L6 c+ m2 J
sum dx240
, D3 Q. p+ f2 h% Q! K2 w
8 l, w! E3 F9 Z) t( r local tempmaxp=r(max) 7 k8 I: I3 w2 l
restore
: Y* e# Z, _: k0 \: j }7 l8 _% X: g: ~0 J, B) s
& l; s, v2 X* M3 U1 g
- R4 I/ `4 [8 ]; d4 x& H
?" z8 V8 @6 ~& K) E- ?9 J/ T, Q# z* \/ Y+ C- a' |
gen maxp=`tempmaxp' in 14 d8 ~+ ^, O4 u% t& f& L
; Z( Q* E7 _& T# J
*240maxp
) H) B+ {' H" o- M 1 l+ `! i P7 o+ v
& E0 w; x; i! u& _9 s/ B *-------------ddy240pminp左侧高峰值-----5 `9 D a# z5 b C
$ d1 `: } i' B: v0 Z preserve 3 o* M) C5 W5 v
- e* f) P+ `" \
keep if dx240<`tempminp'9 D5 i* h7 c0 E S6 y; ?" Q1 l# [
% M7 v3 S* J+ r3 F( s
keep if ddy240>0+ |6 Z6 U$ ]1 ~2 T' K5 G
# `/ O+ [$ Z" p6 V8 W3 S* g) M count) q- L% o7 `- _" m2 _, x1 }
" E9 x) A& B Y9 m- S3 U3 r
if r(N)>2 {
; s+ V2 E4 `4 x, ~( K: Z9 {
/ X, Y" j8 ?* g( }) ?( U$ j pkexamine dx240 ddy240
% d) j% M! I2 t! z
- A4 p! s7 g- r& f, w$ | local tempminphddy240=r(tomc)
) \- i5 M$ G" O+ @4 Q restore' c* x3 M' J5 l {8 V* l
}
/ \; o9 f7 t( d8 J
( Y& ]8 Z/ h: } else {
* n" d6 |& C" F% p3 m6 K restore
S# {7 L1 X0 U! R di "cannot find pminphddy240"% X: ]* `8 u2 h& \6 w, B
7 @ M0 A( V) Y1 E
" p6 R$ n$ \# I( \1 R
sum dx2408 b9 x) g/ K: P6 D2 e- o" t0 f
local tempminphddy240=r(mean) + _, g+ U x5 v
! ]/ ~- e* X! ^0 ]& S
4 s( E% O) d* M }
* l6 ]* n0 _% Z6 u ! b" y# e* ]) u; u
+ ]+ y/ E: I) H( d) j A
0 ]7 x) L" u5 b; d3 n9 r4 o+ A ( M$ F, B+ r# [- S; b
* g6 P5 u4 _' x: D$ R2 H$ s
9 v- I4 ~6 P# J2 g0 N8 l5 i gen pminphddy240=`tempminphddy240' in 1
7 R- W. ?' u7 }( }
0 m5 x1 {, O: ~4 \) a
4 j8 U6 w8 P6 K, {6 N *-------------ddy240pminp右侧低峰值 -----------------. J% Q* ~9 ^' @& T# M& S5 u- X9 Q
preserve
* S( }9 M, B, b, } q4 Z+ j
2 b0 h' [1 E1 N7 X" }9 m keep if dx240>`tempminp'$ N' t+ g3 C7 [* n
, m& E/ ^! \7 N keep if dx240<`tempmaxp'6 K0 Z1 [: G2 R/ f9 r! A
0 k! _6 A+ R/ E2 d( E/ f3 y keep if ddy240<0: M# `6 M3 K) \# i( m7 R
, M- J( _: o0 P+ d' j. N4 M# W# ` gen temddy240=-ddy240
1 W) c) B) Z" v 3 k- \2 E2 V' y) }2 t6 T; o
count
" Z* C1 K2 \ W$ A) ?" u$ ^5 p : ^ A& N- H [* C+ G, ^
if r(N)>2 {
& C: K2 r7 Q7 C$ w7 J 4 ~) D/ m! J; t& H( h
pkexamine dx240 temddy240
o1 Z9 N( h' b. b8 o
3 n; `1 z9 G3 C3 z local tempminplddy240=r(tomc)
4 ?$ \+ V! o" O- W3 y5 g, k, S' j restore6 X/ @9 q* X2 u( @( a: e
}+ f4 d. N7 ~& U
: |/ C8 F5 P2 a% w
else {! {) \5 \' I3 W; R0 f# W
) ~1 j" ^" W. _# x- f
di "cannot find pminplddy240"
7 l' T& y9 `: m- N restore2 B& r) W0 c! J! E, j
, m1 b( V% I2 q% v. D" b
sum dx240
# }/ O' n' i2 h( O" L4 e local tempminplddy240=r(mean)" Y7 {8 R8 W& X8 k# |2 g+ f. _: q, [7 U
7 z# P0 s/ _$ m0 U" }3 C
6 ], o" s. M4 L6 p- x+ ~ }7 [ e" p0 y9 t9 ]$ W; c
' w8 v0 e% C" @1 t ]" O - w, ?) t9 h9 p4 v, a
( _" m3 I2 K2 `$ `3 f2 K8 q- l
- O; u$ p! m1 T
. P& i6 W( B Z& h1 ]! W gen pminplddy240=`tempminplddy240' in 1% }* {& M$ M/ G9 X1 f
: ^( o- K/ V* c+ b, X* E$ p
*-------------ddy240pmaxp左侧高峰值 -------------------
4 }3 O2 C6 i4 a* U% I) W9 P
8 `8 s9 R0 k% j. b, p+ y7 x! N+ w% V preserve
?/ l# @7 j: p: w; f; Z- |
/ W8 e! v+ v4 E keep if dx240>`tempminp' J: ^! h2 o1 k5 s$ ]4 a: o7 _7 C
0 c) ?* i( _8 e |5 N keep if dx240<`tempmaxp'
+ _0 b0 s. e: a$ n 3 L9 D: {- M- K8 T! b
keep if ddy240>0
# f+ a+ y6 ]+ f1 Q2 Y3 U4 O count
f, j4 v9 S& p" {: s+ ?1 S; @
I! h3 c% v& @ if r(N)>2 {
4 P) ^' V+ @; Q0 e
. G3 ?/ Z$ ?' R8 l) l pkexamine dx240 ddy240) p I2 U, {3 ^, H
: q0 O6 Y& d3 i4 u# |# |8 a# t$ M
local tempmaxphddy240=r(tomc)
8 ^" c. D% @$ u$ m9 L % B( w) m. X {1 u
restore+ ?; B# I- U% L1 K% t4 \) E" v& o
}; B& u! w0 c/ ?& d2 d
- B2 s( Y4 T5 g7 ~7 z
else {
3 b" W: \6 v0 J* F 9 s8 e* n1 k: {; m
di "cannot find pmaxphddy240"
" ^0 I! Y, N' |/ s$ g restore+ b/ P# |, k- j* k: a: _. f
$ Q$ ]$ U3 Z Y- x. E& F8 { sum dx240 ^7 u6 Z) @' J- H/ r
local tempmaxphddy240=r(mean) 6 X. A7 D- c+ l3 I$ Y
+ z: O/ Q) l ]
5 K9 f: N9 S# l& d6 {5 n( W+ ^ }2 v) c3 I3 }% R! j8 T/ N D4 H7 F
3 U" c- u# h+ M
1 x: s! e5 R$ [; O5 ~. H
& |' C" p2 K2 h4 F5 e+ d- h/ x
/ K4 r4 [7 I: _) V) d& Q
) v) a p. b& [) n1 p
" @0 L& k( j! a& H4 a8 E5 ` gen pmaxphddy240=`tempmaxphddy240' in 10 U& G% W+ Q/ S5 `! }# p
, N$ \, C6 C. |2 @; _$ J3 O ) v" v0 K9 A5 r! q
*-------------ddy240pmaxp右侧低峰值 -------------------
9 b2 [8 q6 w5 g$ H, b5 e * a) c g: L: q, h! T: T0 p4 ?
preserve 4 h: g$ P' ?- @$ U! v0 s
+ t* J* T; S( N* v! ~. w keep if dx240>`tempmaxp'
- d# S9 Q- [7 t8 Z " w8 \; n" E2 W3 U j
gen temddy240=-ddy240
$ ^ v7 o9 ]1 t6 K1 F : t9 Y% _* ~2 w7 Z( r0 X2 }
keep if temddy240>0) v# w7 R) f; t1 X" }
: j/ j# @/ ] z5 X5 \' b# K count; s ~; Q; g6 _$ w
- X- z* A0 n% ?$ s6 r, A' L
if r(N)>2 {
3 d/ i# y4 a4 H6 Y0 p
0 @" b; r- a" u7 M pkexamine dx240 temddy240
, r; c8 G! ^9 N7 x
- G, \- n) r, ^+ E; Q local tempmaxplddy240=r(tomc)
[0 I6 n8 R; ?' \3 h# j restore
- c. a8 T( w& U$ M }( |4 }: Y% T/ s
/ I2 S( d( x3 V) [% o1 t! o9 l; k
else {; p, e5 x# N* P. d7 _( a p% h
restore: r; X7 ?- l( I5 c) u) s
di "cannot find pmaxlhddy240"" |) I! j, o7 e. f k
$ g8 P3 L9 ~& g: j1 K5 ?
/ Q+ [* `; [) ]3 T8 I f2 B; T
sum dx240
* |$ x( Y4 R- c$ H; z local tempmaxplddy240=r(mean) in 1+ c* l7 i' e( ~
8 V$ `. J# M; \, Q: v - Y7 \% t! c3 G' \# g5 E+ _0 m
}* a( }/ x) C/ S: E5 U
" Y" R) r- |$ s0 V
4 {' x, o6 j6 K7 Y 7 q6 w) }% {' k2 {4 r; ]) A8 Q- v9 ?
/ w" v. n* _5 ^$ V$ R( [. @ H7 q) d
; d4 X2 W9 o' W/ I; u$ ~0 F; y; o
, f" ~' i o; j; ]+ m1 x# i gen pmaxplddy240=`tempmaxphddy240' in 1 p3 j1 O; O& x2 _3 _* _
! w3 N% o& ?* J1 B" D4 L *-------------------------------------$ P( J. r4 f* i9 j" k1 e
3 D( Q9 M& i1 }2 L gen price5d=v5 in 1/20- @% C8 V) p: Z- o2 |6 ]
! s! n4 Z' }. c* q( w! F% w5 r5 n gen price5yy=_n in 1/20
8 W4 Z0 T+ R& U1 I% ? % o$ e3 a# H8 w: g
gen price5y=price5yy*(dy240max-dy240min)/20' j0 p% Q! ]8 F8 G1 ?
; t7 f4 n0 k; B- c) u *price5y &price5d% k/ _) s& P% k/ Z* d ~
' j. h6 g! _" F9 D
gen priceny=price5y in 18 O+ F: c$ a1 n6 }: n! t/ `
$ m- Q* i& w: S5 {& i4 E% G* d gen pricen=v5 in 1) |( z* Y+ V9 ?* L& }
8 s* ?5 Q% D3 Z# h9 q& B# H ?4 U ; B. b- j' j- n/ @
*priceny &pricen: ?$ Q# b, w; [
, {8 P1 J' M: i % N# J- u( ]: J* ?" T
*-------------------------graph------------------
5 I1 L0 n- }* l+ w) a8 N% U : y l8 @1 R& c% p( F g
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)% g$ t9 p& e- h' _ ]
1 {9 W" M* y/ n. J
* ---------可选项目----------------------
! p/ s- _$ N" y5 k4 `
; y- p' h5 d9 ^4 h}
. [6 [. R" l% l. P7 O! Dend6 ?- y( f; B2 A# Q# x% R
|
|