|
|
改了一下,这次运算应该没啥问题了' s( Q6 S9 G% d% M- b7 T- C
' O/ u2 l+ D3 U$ U# V
+ n8 X. Q1 C: H2 j& I8 o
capture program drop hello: r% \0 b; n0 v! h* ^5 n3 S4 t
; K3 r! z3 h% {8 ] j" X
program hello
3 J; F* F- v$ M0 x; \+ p* {8 G; b! c: l4 }! d; Z5 n$ T
quietly {. B6 `: U$ \( h$ E& c
) A+ o6 P2 x5 r) _/ f5 N" ~clear
5 k R+ `+ N q
1 l: t, w! H2 D& `2 |cd e:\finance\stock\20110101\source& X% e( ]; _6 n: v/ ]
/ R# M. B+ ?" W) a; F3 X8 Vinsheet using `1'.txt, @+ o# J2 a0 p3 a: K4 T$ e
1 j q1 Y5 a' c keep if v5>0( B) D7 a0 a8 n/ J" Y0 g. m$ ^
/ U. s4 ^5 O! Z6 F# a( I+ e
gen vt=_n
1 x# @. T X" `5 R; p + J2 O9 s& \# u( n0 U; A! T$ G2 s Q
tsset vt
+ z' ^' B3 u3 z6 E1 N8 ^. h2 {3 ]- s! Y. j- p
gen zf=D1.v5
( x0 S6 i! D1 K& o/ T. B9 z
" s# ~, z: z% p, O) A' } gsort -v1
2 \3 \5 V. Z- M! p" P8 d L' _4 r; _% v1 v) G0 h3 g$ A
gen avol=v7/v5
w0 w6 }5 ~$ h: A( t% r, J, [+ p" [ " ]/ \1 d2 X! |! ?0 ]: t
keep if avol>07 ?, f `+ Q/ B
: C& n' s) l+ q& g% N# q; i! q
drop vt. i; Y( j& D* F x* p2 i4 a
+ x6 S4 R2 q# J; L( e7 Z
gen vt=_n
/ |/ `9 x, I( C/ E C % y: G6 o" B) D
tsset vt) h5 @$ ?- s" {' D
/ J4 A9 a/ J& E( v& T/ _( ^- r3 _ sum v5 [aw =avol]6 I. \! t/ o5 W" U3 h. x, ?1 G; ^& A
: G# G* H- ^! i. V. q0 K+ P
gen amean=r(mean) in 1
* D4 Y9 o: _% H3 i
( m9 a( p/ _2 `5 C * 总加权平均值 amean
( t, a4 R3 D9 l+ p
6 A1 J7 Z' ]; ~3 h
, j) \3 r, ^+ u: ]1 @ keep in 1/240# X7 {1 Z* k& n5 I5 E2 V; r: p
1 o- n* j Q8 u5 p% x! _1 ~# o
sum v5 [aw =avol]) {0 t1 f0 C N
7 O4 r" o. E4 m7 P gen mean240=r(mean) in 1
# T8 D; O5 d/ j# c1 h# e @
1 P- H2 R2 k" h' q *240加权平均值 mean240
. t! g' Y! ^6 b) K, m# x4 w% {: V . J! _/ g. F( t) O# J/ i
set obs 500 1 i e7 U/ r) u) Q9 u7 z
4 p/ \5 A- L/ `8 T
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph$ D" B5 W5 s7 n+ s+ D4 B" e
4 E2 r( n, \+ O" h8 v *240 kdensity(dx240 dy240)& Q: M- c# \/ Q
$ m% K$ S5 m4 |& ? f* I8 | sum dy240
5 M) z% d* g* j8 e1 k5 c( I' E
; s6 |: {( n) V1 x- m! w( w7 t gen yxis=r(max) in 1
' R+ U- k1 N9 H1 b
4 [; _9 t- ?- T$ t8 R% ?8 U- L gen yxis2=yxis/28 I3 [. o- T$ L; [8 ~
9 A$ y5 U# P2 o! `
*yxis
5 M+ ~6 K( R, i8 `$ H; l& g! e
7 R5 R; `7 B4 J# x gen dy240max=r(max)
5 @8 n4 h* N5 }7 w3 g. f& ]0 i 6 t0 Q) E9 c8 B( @ S
gen dy240minp=r(min): W$ I) f. q* K, Q
* c& e* T' L- [* Z }0 o
gen vtt=_n' o8 ~) X2 A& ~2 ?5 H& L
! @7 f2 e0 }/ e tsset vtt$ W9 B# F0 a; i
1 @/ _: m i0 J
gen ddy240=D1.dy240/D1.dx240
$ W. D; c/ o* O) W6 V" T
/ G# I; O, `) I; y& v sum ddy240
6 a, k8 L3 E% x& |+ c : r8 B( B2 j7 M- X+ z5 ]+ Y
gen ddy240max=r(max). [; B- h U0 d) U# P, }2 @
# W" V9 d$ D4 j" I. N gen ddy240min=r(min)$ F* `$ I/ [ r3 `, ~9 I, U
; F7 C' m0 O- V1 ? gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
+ M! A3 _" j$ w0 u ; ?. e5 z5 ^! {) J5 r, Q4 w
sum ddy240g5 _- q) v, ^2 ~4 J/ H
4 y/ W9 C9 U3 e7 j8 i4 J. }( ~
gen yxis3=r(min) in 1* ]; z, n; H! E- c
) \ q0 K; `5 S gen yxis4=0 in 1
5 J8 C8 o! h' v& H# L, {2 Q
1 C$ q: Q" e1 O1 C *ddy240g
; V) P0 |, @' a- S+ J5 e6 l
: o8 g) d* r/ R$ l7 F( i : v) Q' ]6 V @: }- H" ^: P% e
preserve 1 ^6 X% @1 x2 `, c; W0 _
% y; A, V4 c( K, h) l
sum v5 [aw =avol]
7 C: _* T1 G& ~7 i, p) ~1 Y 8 [5 q I3 u$ E- e
keep if dx240<r(mean)( D5 ?, X) w$ @8 X& `) }
v9 i' p3 q% T$ A4 p
sum ddy240" r; i$ x5 }7 B( ~2 ?
9 t) x5 _) _3 T/ k if r(min)<0 {
5 w; `* K2 G9 N! q8 M
$ Y. n" `3 N0 K) P3 [ keep if ddy240<=0& O4 S, \' G% @" k8 \+ }5 f7 v( t
# |" ]2 V" I3 Q# b count. K R4 t0 v( x# x
) H1 y9 B- ?0 g2 c if r(N)>2 {6 @: d* D* W k+ s
% x# r) X9 F* b- ? \7 O6 ` pkexamine dx240 dy240
1 r0 M& O( @/ H8 C $ U. L$ k! ^1 G) [- n, n# M/ i
local tempminp=r(tomc): B7 n! {% N; u; n
restore
3 q. S/ \) A1 b8 v }4 u. B8 I! F3 T! c9 N8 v
+ ]. w# h8 J0 Q7 p: l O" j
else {
- H T! E0 G- p; ~
6 K, Y- N. G3 z* F di "cannot find minp"4 L/ ~( V( y; O/ H
% C6 c- Z* i) D
restore ; _) b0 c, D M8 Q; Z3 ^0 M
sum dx240 `) b F% x) |2 U
local tempminp=r(mean)
3 Z8 [6 ~, _3 l1 Q
! ~. P+ o- ^3 L' h& L0 v* V& D/ F }
/ R N9 @7 I0 X6 c% U; \ }0 S+ W& j% I3 O; @
else {+ t( q) b7 A' _- `: @
# z9 R- Y T! @/ N" f1 \8 p keep if ddy240<=r(min)
3 B" z3 w3 a& h4 l# ~/ G
% R* I! N! | s& W4 M0 j: Z sum dx240
' x4 I6 J9 n; a, C2 t" e % {- |% @# J. I& f
local tempminp=r(min) k" `5 I# w! d4 Q6 J v3 o
restore " H+ r; \9 t% {# I9 k# z" X
}
0 B9 d K9 H% O O; G' `8 H% a" ~& J3 w
+ c1 F- t d# B# w
! [1 P* D" c2 Y2 V9 K
. l$ a- o% ~' U2 k% g gen minp=`tempminp' in 1" \5 U$ Q( M1 r
*240 minp
- J& V r" r4 H8 p4 i* J
8 v4 L1 E J8 T5 l$ y% I
2 @0 K1 O7 R& S+ R8 V
! j _1 l# z- z) q preserve ' m0 c; {* A: B( @. o
! ^8 o q4 Y1 |- K; p; B8 ?6 n sum v5 [aw =avol]
+ }) x. y* ^4 v3 G# G: N2 H : w5 X! J4 \$ b) H& R
keep if dx240>r(mean)
' J3 H( R' @3 n$ W- y3 H, {4 R7 D
# Z+ V; {+ z" R$ `7 z sum ddy240
6 N' W- R2 d6 k: f' K: p - j) p$ v: q2 \% ~# p3 M
if r(max)>0 {& I# I { ^% i- v
6 @3 n8 Q, Q+ C- v" z: f
keep if ddy240>=0& Q, R% v- m5 _* M1 p" r4 I4 B" E
. w' h- B& C8 i& v! Q2 q+ y
count
0 g6 ]) F4 T" c! a' y& ^
2 I: c0 p0 W( o; H if r(N)>2 {
' Q: Q* w) f, ?
; U ]/ i# Y: B: @# h' i1 | pkexamine dx240 dy240
1 f0 w& `0 p3 k) M, ?/ R8 }# ~( T# H- j ' @5 K: n9 p! b, A. A# w/ t) ?
local tempmaxp=r(tomc)
4 q+ M) R' a/ x- z7 x2 ^: _! U restore / s, V' m3 R) x
}
; y" s" [: c% _
: `5 x5 J& W' D( @+ |& Q$ z 8 k' z; v0 P, W6 N3 s* \" F
else {
% K/ |8 K, `1 v6 y restore - Y3 J/ Y% t. q6 F$ E
di "cannot find maxp" r. n+ K* O* V' s
% E: w! F8 w0 x4 Q5 k3 X$ y4 `: e
: I: q" t' C4 e! x: J9 a sum dx240( k5 W% h9 |' H& p1 |
local tempmaxp=r(mean)" M" P( P* o% U2 z% R
- F8 Y3 k: j. ^7 b$ s# B& N' b9 M }
) W9 `, x. B* a+ B6 f/ q( x8 _
- ]3 s( X7 ^$ @5 x4 D }. _9 Y$ [" y4 x" M f
* J# ]8 q1 `5 k4 T2 l
else {
1 Z& D1 K H- P- C
9 T8 F5 ^7 }4 x' W keep if ddy240>=r(max)$ E( }1 \0 |& O2 K7 Z
0 U* @, L; }1 f3 d: B# [1 G sum dx240
1 I6 x7 d3 T& o$ R( g; C8 y0 E2 P
9 C5 a5 f5 ~. L$ Z# b* J; g( R local tempmaxp=r(max)
$ P2 Q) ?4 w$ Q2 a! f restore S3 I5 O. |6 Y& ?# g, F7 G
}
- r1 b& c0 s M) x H! t
2 M. r& p4 [; T- M, Y8 c8 F3 E( f( P0 ~
: Y$ @0 o7 s _4 o* ^$ R! t% B; N0 g; z) z5 d& C
gen maxp=`tempmaxp' in 13 @* b' x! w/ F
$ z6 [) S7 l5 M0 O% ~ *240maxp
- c# K+ j4 Q7 @1 ` , p s: I2 ?1 G7 h6 H' G4 d
3 O& ~* _- O$ t *-------------ddy240pminp左侧高峰值-----8 b6 @, U6 G* W' C5 r
/ z0 J3 X# w8 v- A# n preserve & z* `- X1 q. A/ g& V! |, F
0 g8 P/ p! H7 d$ L keep if dx240<`tempminp'6 ~% E; D1 D# e+ y) z D$ h5 n
1 R+ p6 X; }) g+ x/ g' s
keep if ddy240>0
% C' O3 x6 `. o8 Y3 Z, a3 w; ^
+ _; z: y; M/ ~ count+ D& H0 c( d* Q4 ~
" O: c* s9 d7 O1 a& f if r(N)>2 {2 L, g! g9 N) d- H
, J! l$ j( Z% `4 b/ C pkexamine dx240 ddy240% ?6 g J2 Z5 ^
$ y4 o8 h9 v' P6 B7 J5 q
local tempminphddy240=r(tomc)
. v4 x( c3 r- V- `% y i0 C5 ^9 w restore
" Z) A, X$ Z* m }
6 ?7 ^% @8 G& l7 F) H& C
( M: j! a( U" I3 I/ }' _& x* [7 | else {0 g6 \0 m5 c& a( K* `5 `7 i4 @2 [; ?
restore 2 e) k. t G- h& S. b( G6 M1 i$ s
di "cannot find pminphddy240"9 U9 Y- f- x$ c: g- K$ f( I J7 O
@/ }* |0 e6 a
+ d: ]0 D" d4 e' q* s1 [ sum dx2408 ~) x8 x. h5 L
local tempminphddy240=r(mean) ) t4 S# x& l; c8 W) B/ l
' E2 i3 @# g( L2 f
- G6 G7 u4 X& }5 H* } }# n3 W' W2 M/ U( L& B6 b' Y
5 X, o1 i* ]% Y6 Z9 i. U
$ D2 q1 ?, e" f( V; n- F
% H o! U8 K9 U% D2 Z : \2 I; |( E; b Y
; N1 K8 w o# h2 y7 _0 u, ~* s
0 l& r: ^* h- F5 `* ^ G s2 ~+ T2 k
gen pminphddy240=`tempminphddy240' in 1
% W0 X- x2 a8 J1 A9 o
0 @6 s) F" [2 l2 k
. t4 r E) K- W4 w8 G- @ *-------------ddy240pminp右侧低峰值 -----------------+ d% ?" y% E1 y( D7 U
preserve
$ U6 l! c5 |3 |7 i6 T+ h ( S, ^' A) H# r* |% J9 r* r
keep if dx240>`tempminp'
/ g/ @' K# ?, |' I& a/ @( _, U |3 G " y$ V) ], b3 m! D
keep if dx240<`tempmaxp'+ [$ q" g0 z7 d, ^. G3 ^
3 {9 @' Y+ k$ g+ \ n3 X, a keep if ddy240<0 [" R: J: S; ?# X8 l4 ?: t
0 T* r, l: |% u6 ]: m; J gen temddy240=-ddy240
1 D' Y" v. n" h- [& @ / F0 |1 O2 P" d, z/ ~
count6 J" [9 u ?! {' j% m
0 J; k" d6 u$ L3 U4 h, e8 S if r(N)>2 {
! F+ e; V. m- j . K! {% N% k: j4 ?1 P
pkexamine dx240 temddy240
! \: c" i$ }3 g% B1 J0 |. D% D ' f# q( D8 R$ y# m6 T$ A4 `
local tempminplddy240=r(tomc)- x/ f0 b3 [9 \) e' O: w
restore+ T4 j3 N& h* ^
}
: B, J- x' b! e * w3 u6 |5 C5 B# f: A
else {
4 C6 y) D$ x$ w# E& w 0 {! n) V8 U/ r
di "cannot find pminplddy240"9 L, U5 t5 C6 O2 ]1 b
restore: Z8 `% D( j3 n( [" i4 b, V0 h
/ I2 N# p3 w* C4 f sum dx240: l+ U) d [) d& e# D: i i
local tempminplddy240=r(mean)
3 p* Z8 @3 h1 _8 l
. l- B/ B! s1 `1 e
( z' C! J- D6 H1 ^4 g* m, y. H/ | }
7 ~$ h! g6 p8 C# ] # y4 J/ r' t, [, G/ x4 N
h, g4 e5 B* H2 S0 [7 o
) h8 f: b; O2 x: ^: l4 U$ F1 Z- m
' _8 E1 X' G7 E
$ }( h" f+ W, `" e9 C6 b- y- V' W gen pminplddy240=`tempminplddy240' in 1
7 }1 g# J* N! L- J( J) q
6 c: d/ I& q! d' v *-------------ddy240pmaxp左侧高峰值 -------------------0 @ [$ `0 c9 d8 ^! ^8 w& I
3 F! j( [ L6 c' V# Z
preserve
' z& A1 H0 C8 }
0 F8 r' o7 z# ] keep if dx240>`tempminp'
7 k# Z# g$ G' M* [5 p z/ f: j/ Z9 o( p7 v* T# y0 M
keep if dx240<`tempmaxp'
; }4 i' ~+ u; ?) e3 P' \
p& e" n6 K: S( ?2 m" u keep if ddy240>0
' r9 Y/ Q: a+ J. J' X* d' z count
1 O/ S- O; H7 a w' b" H1 x 5 F" s I6 N! k0 A- h# K/ Q
if r(N)>2 {
1 A7 r$ P) J. ~3 ^- Z6 k" I
" r$ k: A3 [1 M pkexamine dx240 ddy2408 H6 U9 W; [; Z+ E0 n( C
! ?1 a+ O2 T/ x local tempmaxphddy240=r(tomc) 4 p: Y$ _3 H$ P5 }' l3 m
$ c0 i8 ~( d' }$ l
restore
( u9 T7 T7 _0 X v0 q/ d }
0 _8 z7 y* T' d4 G# N3 b
4 o5 J/ ^7 a: U! f else {4 i4 j B" d* @5 n5 N, q
" e9 L6 H f4 c3 ]1 _7 g4 Y( v
di "cannot find pmaxphddy240"( u6 e/ G. r/ J+ Z( I
restore
; J# ~- m6 P% P2 u& t
9 F7 ?' U! m8 b. ~) W4 N" T6 [ sum dx240
2 }2 O# U) e" i: z/ R local tempmaxphddy240=r(mean)
P0 [( {& [4 g: r# ]6 F
* _# q: S! r/ X( B/ \* k# u+ F; E
' N7 {! m' h7 V+ z2 y }0 b3 u/ n0 {5 F4 q5 F( M& S
- D$ N. i+ `- Z7 _3 y
- i- J, Z) j3 u" S: [ / q+ n! T* F* l; R, N
4 _5 @% |0 I2 ~) Z9 B8 r ! V7 ]. G' B2 n# {1 O" ?/ ]$ n V
3 A% P2 z7 h6 H! L! Y8 A+ X: Z gen pmaxphddy240=`tempmaxphddy240' in 11 n4 ~2 Q3 D A8 ^' f) Q6 s
8 l: x4 S5 y2 W. u" z
# u! F, g0 x3 w1 r; o Q7 ^5 ]% T" o *-------------ddy240pmaxp右侧低峰值 -------------------
/ e2 V. i3 \7 ~. X+ O0 r+ e; w i
* x: N3 e) }; E& n! O% u6 I' k2 L preserve 5 ^0 r2 R- C$ F! Z2 t
5 v( H1 }; Q; ~
keep if dx240>`tempmaxp'
; A G1 E& R- m9 v H0 ^* ~ v5 j6 X5 U; P
gen temddy240=-ddy2402 b0 m$ j& E* W7 O8 ]2 o
7 e* I; j9 \& @( @4 f# U keep if temddy240>0
$ ]' ~1 Y6 c! M( y/ K! c F4 \
/ D# ^/ ^- o) [9 g9 W c) x count' Q2 ~3 S" ~) H/ j
9 S8 x' l- k/ t) `
if r(N)>2 {
2 {; A- [) U, n. h- z0 @% E 4 l! e0 ~+ u* T$ j
pkexamine dx240 temddy240. g1 q, e$ W/ Y- T
, X6 G6 P |2 ^6 q
local tempmaxplddy240=r(tomc) * t+ o4 N& _2 k, c% R1 f
restore
5 j1 ^9 f, R' `+ X0 |8 j }+ E0 _ g& |/ S$ F9 P& L M
* g! a; G* q3 P" z3 O. d
else {
' \8 i1 W, Q* E' w0 q/ Q8 y# S' ] restore
7 W- P& e" b! x; n9 t/ g5 Q2 Y$ |$ } di "cannot find pmaxlhddy240"
& G3 u* m6 o8 h9 g : I% k4 A+ e6 ?! G$ P) S
! M$ ^; p- r4 V6 ]3 E
sum dx240
# r* j: D, z! i9 @. L8 ]; p- | local tempmaxplddy240=r(mean) in 1
) \ H/ k8 A+ N" a( }- k7 x: G _ 9 ~" K; `* J: |, p" a. t
9 Z' o; i/ k5 ^$ b2 ~ }
* v+ @, D" Z0 a1 s # k' ?+ i$ K/ s1 [2 w
: h) F7 o5 R; f2 |
0 R0 c3 F& c# C/ F2 ?6 z0 W' ]
0 j2 U4 I+ N9 v# z; J
& ~7 c- w& L/ h- \
I9 l% Q! g p2 C
gen pmaxplddy240=`tempmaxphddy240' in 1! y# E4 z6 t) U& |7 A* `0 V
% C4 ~5 M' s* g7 H6 l
*-------------------------------------
! n& j: N3 c0 f" j
2 J- m1 f$ ]( P G+ \, I$ f$ ~ gen price5d=v5 in 1/20
. x I6 R+ s+ Y& p
" q6 j6 h, W/ K) ~4 N* w8 @ gen price5yy=_n in 1/20
0 K' C) E4 G" d& ?; }; d" Y 1 ]% R, ]2 N3 G2 c% W1 O5 T$ H
gen price5y=price5yy*(dy240max-dy240min)/20
( Q; G: _/ ]% a* S( f0 W " I" h7 p; C& n, w/ y3 g) T5 A: d
*price5y &price5d& t1 h7 q F9 t; H" B) v$ @
5 J) {6 y1 Z' t2 V% _+ m! a$ r U
gen priceny=price5y in 1, U; c) v3 f" C
. h9 K& B/ Y! T. B
gen pricen=v5 in 1
; d) ~' q7 O6 ?7 z
7 `0 x( o- b6 q. [% T- Z3 j
' t+ y3 c0 M, r( k6 W) M# C *priceny &pricen
, K: h3 k5 A# w" l: d " {1 _& g2 `/ [% y: u
, Z2 ?/ z8 ^2 W, Z$ | *-------------------------graph------------------
: m" a6 g6 K! _( x+ Y1 I* v % q( O6 }& A7 v
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)
% C" i, b' J- v Z+ c+ d ~( K
) u( \; J: j# T* ---------可选项目----------------------5 t6 R; s8 R& {" K4 T9 u
7 y' r% ^' y0 {4 X s7 z
}8 p5 } m6 Z# K1 I+ `6 F! _
end
P4 F" W( N0 W) O3 B( s7 P |
|