|
改了一下,这次运算应该没啥问题了
4 _4 C% z. n/ G$ H) e" u6 ~) E0 a% W" D, K" x4 B0 ~9 F! a) Y$ W- C
5 ~+ E' G! Q! T( w/ a2 e" G* g8 C4 N
capture program drop hello
- m2 B: P7 x- d% G0 }7 K9 @# [4 W
program hello
% ^2 i# ?2 j* _$ q" i3 h# W' C6 ~" Y/ ~7 p
quietly {" o7 J" b5 |, Q# |+ J
3 |" R2 P. }( h8 Hclear7 G9 w7 X0 R; k1 T
/ P" n+ V0 ?' Dcd e:\finance\stock\20110101\source! L) R- l6 G. A
2 I; J- ^! c# @& F4 P- s- x/ u2 R
insheet using `1'.txt
- z5 H6 d' m7 l8 D8 L) l4 D/ t, Y* N7 B! \3 ^( a& Z
keep if v5>0$ l, M, ~/ R$ E: n" I/ v5 X) l4 m
+ L+ C1 t5 o; H- V
gen vt=_n
% G& O' Q7 |6 v# z$ c# ]: X 3 V; c+ N& c* t0 b$ P5 X ^
tsset vt
2 ~; w( T' t6 i; X+ D& ?- \6 r
, R9 G, ]7 R N. f. j gen zf=D1.v5
" d8 H- ^( p0 ^. G' q
! G4 C \6 u! i gsort -v1
3 c9 M6 l1 j0 F, t
: E! }$ k, o& C& @+ ~7 v( W gen avol=v7/v5
( J. _9 ], l* G
. w0 N% u- ^2 J! A+ y- } keep if avol>0
- S; o l/ g: ~0 Q5 f0 R$ h9 ~ 7 }% K9 O, ]! K E0 J
drop vt* u1 x. e* A5 Y4 k, y6 v. V
$ h$ ^& L+ \$ B6 K; c gen vt=_n
$ h, T1 j5 Y% f5 m' m7 S$ B
7 u+ n, ~* }/ @* s8 [' N tsset vt
! z/ T0 B7 V' j ' D& Q* V9 a& y. k' x' ?6 ^
sum v5 [aw =avol]+ f- {1 j* @6 g/ j- @* R1 T2 |
; p) M7 C6 L F) z9 M7 z3 `: B; z
gen amean=r(mean) in 1
$ {9 E! h1 E t5 W, x
z. }/ y) ?4 d* [# R2 l# s * 总加权平均值 amean
, |3 ?! K: A2 `/ a+ } " c! v* Q% c) R1 Z' u
& V. l1 `- y: ?# q. h r3 G# ^) a6 k keep in 1/240
4 l, Q- b; Q \3 @
' u- m" ]0 F$ i: P, B sum v5 [aw =avol]* x+ {& _; N# S6 o# _1 ]
; o) C' E4 B' L C# K gen mean240=r(mean) in 14 ]1 L' { A& G$ M& L$ Z
) P# U4 @4 U% Y *240加权平均值 mean240
2 F( z7 n) [2 ^
( L0 [. [: T9 C9 j3 o$ M set obs 500 $ V* f! N' V% Y- Z$ F9 z+ m
; b- W: w) j% g3 U& H1 H) m
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
2 b0 _1 P6 S; y* D# y6 A: |; _ ) o; [# h4 G! w9 \; y4 c' S
*240 kdensity(dx240 dy240)
$ p2 C/ @& p+ s) ?: S2 R % n, R& t4 W) |! ^
sum dy240
5 ^4 c! w. Q9 Z/ U( U) X5 E+ G 7 m8 w" V1 D& i! x, H+ s
gen yxis=r(max) in 1) ^& K& M' f$ }# g, ~2 P1 e& T/ T! ]
; B" t! x3 t' G1 Z4 ^
gen yxis2=yxis/2
1 i4 u4 g8 r! D6 d r, n " t3 L. K1 V# ]9 C8 @( O+ `
*yxis
& ~6 s0 n( a# j# F9 y" I0 S ( ]: ^8 L7 e9 M; n6 B E: P
gen dy240max=r(max)
" M! y6 n. }1 L |1 {* Q7 f + B2 L: c) i! o/ ~
gen dy240minp=r(min)2 v* W$ [1 y, t3 e5 E
5 Q& s" c' p- e# e" ~* ^0 W gen vtt=_n
2 P% q% _: n, m7 g4 r, Y: R: m: A) H/ Y. K# r; R5 }
tsset vtt. s$ B! { J3 ~
) N8 p- X/ q4 w, E! x6 n+ f s
gen ddy240=D1.dy240/D1.dx2407 X- l9 N! b5 P# J
* Z8 ` r5 Y7 a- C8 }. p3 `6 Z
sum ddy240# d* _- O: _6 L# J
9 O' h% z4 R4 }; Q/ z& Q
gen ddy240max=r(max). [9 `/ F; Q, c" p9 Z5 r
q0 m8 {3 N1 L; d1 P9 M0 M& t- U gen ddy240min=r(min)0 W2 h( |3 c5 R) W8 O" q1 S2 d* N7 s
; O; N. v: i; i8 @
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
& R u: ~7 w1 d1 q3 F) k/ P
0 p& h) e7 I& q: M% }) I1 Y. C( K sum ddy240g' L* k7 t* l) ^! d8 N5 A3 a
1 \3 W. ^% `7 D
gen yxis3=r(min) in 1
$ L5 i1 N, T. k2 ~ m 1 E) F- d d; y- k( O0 Q- m, y
gen yxis4=0 in 1$ W! \) a. E* x+ c0 e0 l; g4 ]
6 ~& L) X0 ?' X& H6 r, |9 U) V j% W *ddy240g 2 Q1 ?0 J) L$ B J$ ^
: z ?: J* e' A) H* W7 l( G8 m
, b- m: V; {' e- S preserve ! E* ~8 A& Z* x2 q
7 d% b; ^2 U! K$ i. D/ U
sum v5 [aw =avol]
* B8 A0 b# p' _+ Z( A1 G. e 0 z& B3 f9 B9 o Q5 F0 k
keep if dx240<r(mean): T9 |' P3 p" r8 ^; G- Q" q5 @
4 i% k" P, x( F7 b: ? sum ddy240
! |( C" z: p! d( v" G* k6 H6 _8 m 0 x( [3 z% w: z* B
if r(min)<0 {
3 j: u% X; J5 k" G" k + V5 I( P. D0 }: y3 i: |. D* _
keep if ddy240<=0
* N0 }, y/ I+ y% [ # x1 U+ P# Z9 g
count4 f' ?4 s5 a& |( Y- @$ F( s9 \
; I8 c- V/ U! @$ H) h if r(N)>2 {
0 Z4 g; G) U X5 N8 ]8 F9 h. x
5 T8 D5 i0 ]% w) [3 W1 u0 D6 O pkexamine dx240 dy240% n8 c; u2 C- C! K$ W+ H
# \2 t- i) J, T& o5 o4 H
local tempminp=r(tomc)
% _4 G/ ~1 F' A h restore
8 ^6 Q$ I& o6 t* _) m }9 l8 J) Y% ^+ ]: x8 @. N8 g0 m
0 U: ]: M% y: ~/ T$ C9 s else {7 M/ W. T$ q) s( D1 E; Y. e% N) R
( d6 ]1 y. {% w: P$ ?
di "cannot find minp"% l/ Y1 [ Q8 g+ @
+ f7 \6 s" k1 n1 J) f: l
restore + |& k' }" C1 [3 u
sum dx240
" K$ f5 V: W7 A local tempminp=r(mean)
/ A; B. C6 ?& D + F l5 b: X9 L0 t: e" U( a+ D
}
6 S1 I+ Z( e1 s \ }
2 I J5 a4 Q8 s8 {* C+ A else {
1 Z! P4 P7 j; S/ E/ P2 r
. K; _; z& S) c5 O, Z7 s( d keep if ddy240<=r(min)
- D x. S" e' `2 c ( I7 q8 c5 a! Y% ]2 j0 |
sum dx2406 Q" H( ]1 W7 x: t
& t2 ]" e- ?/ K6 { local tempminp=r(min)0 _$ [1 ]% v" {4 i7 A2 M
restore 1 D1 H, \; D0 u9 P8 H
}+ ^! U! n5 I* D3 k2 h3 \
2 \; {; f' b( z5 }2 F* ]7 ~
7 r! ]# N4 A& G) n) z
2 y' p) z/ K( }+ ~ gen minp=`tempminp' in 1
0 A0 o9 |% z! O0 R% p *240 minp
8 b" ^' o" L' y0 W4 B$ U: O l& q* W
- T, G: T! C( r! L6 l- _# Y% n% w8 m( u4 ` ]: @1 s% x" U3 r: o" G
) K% t5 s3 R; v! u9 a
preserve
- T8 K& ^5 D7 Y# O
6 H( H' j4 t; p+ [' h. B* ^ sum v5 [aw =avol] x( E, d2 h3 t$ _
* L; U) }. b4 D keep if dx240>r(mean)* J. t1 O w( x- _( ?" b2 V' y
/ f) a& _: u+ s& p
sum ddy240
$ ?* ` B3 z) e
! r/ M; g; ^, N; r* ?8 W% ^' C if r(max)>0 {5 t* C# y. k6 c/ u2 P7 E+ s5 R
7 Q; ]* e* ^% N" D3 v1 H keep if ddy240>=0- v0 j, _3 G; _9 E+ f! v* e9 G
2 r4 i v' P; ^( ?1 {
count
+ I% P$ K! f r2 u0 S+ ^* c- E
2 |& m8 o; X y( m if r(N)>2 {
5 w& ^$ r1 Z# z U; c " L+ ~: x9 J, ?6 O
pkexamine dx240 dy240
. ]; P/ c, K. ^( i / V+ o$ s0 {( v" a. S
local tempmaxp=r(tomc)
E5 `' T7 M$ k) E* U restore
, f" ^: W k, E; v* b }
; L1 V7 K, r0 L2 l5 q2 s/ ^* D 7 z; a. r& H7 h. t. B3 o
/ s/ M# |3 X. ` else {
6 l7 @% m. n+ C/ J9 v+ I restore , w1 V* `5 ]% p6 [' P, e8 w/ Z
di "cannot find maxp"
# L4 X5 F# g* D; r6 R ~6 `+ o9 m
, V9 [* y4 t+ S
* S: @+ T" _/ i3 H9 j" @9 }" ` sum dx240 O: o2 I/ s+ k( a3 p3 W, m! V3 p
local tempmaxp=r(mean)+ ^" r2 I6 u# {5 k ]
2 L7 Y9 s6 j5 a+ U
}( ~ S+ B+ v) Z# d7 ]5 i
' r/ ?- Y- a& c9 z; q6 p# L }! r+ @8 ?& _7 a# w! t0 ]5 M
" K! C- B0 a; t+ q% r else {
1 O8 J8 ]5 b) t 8 K# E- E* \+ o
keep if ddy240>=r(max). [( q( p7 T2 }% x2 A
: g( |) c" n( O) ?8 O. p. B% i sum dx240
/ \; p# @0 V: _, \3 g $ F4 }1 {# m- w7 l
local tempmaxp=r(max) , N' l* |2 L; [
restore
$ [! s) u/ i$ o: i }
5 a& b* j/ P+ c! i- W6 B
5 x1 W& f$ ~ _% X9 e' U
" h( v7 {3 p; v/ y7 t . a2 q9 a. N, Y5 q
. ~' U# a( @8 u9 U. z* Y gen maxp=`tempmaxp' in 1
% ?9 q5 `# P5 x7 G+ V: d! \) K- K
; V! w0 o; ]# E. \& P *240maxp
! k1 P/ W- K4 D& \( ~6 F
8 M8 Y& p, P5 v 5 T2 v$ C4 M, _2 N) G# i# D4 X! F
*-------------ddy240pminp左侧高峰值-----
' v! t6 r9 O( N) X# V9 [ / n" k4 D) N" @" u4 W
preserve - c, P4 k7 k' T
5 a- y; N8 s6 @( R Z# Z" R+ @ keep if dx240<`tempminp'6 r, B* _7 r" Z( v! v% P
0 O/ x K, q p9 | keep if ddy240>0+ N/ Q5 l# l9 z8 G
9 o# N/ `) c. ]. N
count* s8 o$ _0 d' z! E4 p4 i/ ~/ j' {+ _
% x1 N- @2 M0 k8 w if r(N)>2 {9 {( G$ {# y* ~' f! g( |( w: D& e" H
1 d3 A8 g& L3 D
pkexamine dx240 ddy240
& M) w1 K) c6 J3 [/ ~
' J* b' f' `& S( l; m* S, E local tempminphddy240=r(tomc) ! p, i9 e0 y" Y* w- ~' \% ], x$ j
restore
$ |6 _& j) _- M) a+ a3 ^" R }
& Z+ G' t8 g: G, w% {3 x
! w' `* c4 [' m+ g5 U else {
( d$ D5 c/ }( Y, W/ |' K; u restore
) {5 K9 _6 j2 t$ o8 k0 f di "cannot find pminphddy240": R! ^8 s$ ?% W3 O. T1 Q) F
! W/ J3 X/ Y5 \( O: Y' j
' x3 i/ q( w7 I. A sum dx2409 r9 g' ^; |# i2 e8 q; c' k) W0 m
local tempminphddy240=r(mean) & p- U- a- R5 L2 F. i% b) t* G
( m7 f( r3 k7 I+ }
% x' z! H2 g" _8 D }0 {. R" ~2 S9 T$ i& l; O3 I
! {3 t f% J' {4 O# e1 Z' Q7 u
3 T) M8 x6 c" F$ u: t1 k+ r- B
2 I" l9 Y& ^. [/ G! ]
: j( T+ v& O" L, X S4 U( I : a3 I7 \; K1 u& Y
. n; a) i; ^8 x. L" `+ [2 Z gen pminphddy240=`tempminphddy240' in 1' J3 Y+ K3 i* a+ L, [ |, m3 C- a
; ? R0 I/ i/ ^; P/ Q5 y3 x
6 R5 u* M- |; u' p% f2 s
*-------------ddy240pminp右侧低峰值 -----------------3 O m+ v/ U; p" q; M, |
preserve
% j- m" l, a6 d, O, x; x
8 t, O) K1 h% w/ t" y4 E keep if dx240>`tempminp'0 B( e( W) @; l' q- q( \
' t4 Y( {5 Y8 t* |& h+ h) z3 g/ q7 k keep if dx240<`tempmaxp'
8 o# x! \3 E" o# a( V' g ' q; e" `( t: V% Y* @4 n
keep if ddy240<0
" f# i! J" t4 d: T2 a9 r " F/ \& M2 j- Q/ H% B8 N
gen temddy240=-ddy240! M; i- W) W( ^, d+ ]9 Y
9 _0 L5 p2 b3 s1 b+ O6 R) R
count- F! K s2 x- o+ s. a s6 c. _# ?
* B$ m' B, c. j' J& O/ Z
if r(N)>2 {6 e$ U" I |; a5 O d {
/ {7 w. e9 b5 M+ D2 c; e
pkexamine dx240 temddy240
! _- u4 j+ A+ k , C9 x* h7 H: F- c# P; k5 A
local tempminplddy240=r(tomc)
' W# n7 b- V; {2 R restore+ ^4 u: n7 K( J; J- z8 \
}
0 A6 B% _% J# P9 k g 2 t( `. |( ~- ^# h- o
else {) C& F! f w' o3 `& v, t. f# P7 h
6 }( m( S7 P% W
di "cannot find pminplddy240"
1 @+ V, Y, K$ J \: k restore+ _! M; @' _' c7 k
5 S) N% Y; c3 q. H- ~" W7 ~' p sum dx240
* I8 ]& Z2 D& }7 U& s local tempminplddy240=r(mean)3 F4 z; {/ ^7 d6 p
, i& v. o# r+ ?! i2 g! ` " w' L' i, V X' }, p" g. u
}
# r0 o) E' y9 g' V9 b8 f+ m " [, k/ b7 D* h: ~' i( T
2 x9 `- s2 Y3 M" n, A- J
' i% c& T1 U& d+ \9 R. d
C+ l6 O8 s' J9 ? - ?2 ?' _( f2 g% p4 [, C
gen pminplddy240=`tempminplddy240' in 1, Q4 `& |" }" ^& ?3 u7 D
4 l- G/ x, `1 ^. c" m. B
*-------------ddy240pmaxp左侧高峰值 -------------------
1 N, j/ M7 I; r. p+ i6 F# D - `- [1 i) e2 }1 J5 B; ?
preserve * C. K" j2 o l& t( s U/ h( y! K
; {9 m5 u# U2 D( |+ S keep if dx240>`tempminp'
0 S$ Y7 d, \! |
- a- P" H, v& U keep if dx240<`tempmaxp'& N* V& T" o( y; U; @! E Q
2 {. \! C- p8 b! K% h4 _
keep if ddy240>0" }, R5 ?- A+ k7 C
count
( r* X! F7 Q0 \& Q
3 q! m9 h3 @1 {! W5 `# L) ^ if r(N)>2 {
8 H/ w2 u s N! X6 U) t
+ V/ U6 D4 p2 [& W+ R6 k" N6 r2 |/ [ pkexamine dx240 ddy240% A! P0 [. H, B7 j, |
) y3 U: W+ N3 Y0 @
local tempmaxphddy240=r(tomc) & U7 D4 w, A% c7 W( Z2 ]
9 @) O' e d; I
restore
% F! A* V) [ Q; ^1 {' o }
! E, s3 F( g5 u6 Q+ k& S/ L
2 p- A& X/ q/ c) l0 v else {5 ^' x" S: D( O5 Y" b1 S6 X
a. n. L& h* k di "cannot find pmaxphddy240"
3 p: E$ z$ U8 q restore/ l3 W. A, V! f
0 {! w' u2 {5 F- j9 m. v8 R( b7 p sum dx240
: g; B; V4 `. M( S4 B: Y local tempmaxphddy240=r(mean) ) Q& |3 R. v( D* Z" i6 D1 Y4 M
3 D1 H) S, e$ o$ e" j! e) ?
- @7 b+ U b% l+ S
}
) {$ X& B/ ~9 r {; n7 c2 } 3 p; J$ H" K+ B$ {/ _& D* [8 W
: m# ~7 Q p3 w5 y1 }
: D) Y7 ~4 i8 ^ 5 T' B8 Z; F9 B0 Q; s6 H
9 I; X9 a" B* P# s/ |" s! J
T0 n* Y- j) t$ g3 y& Y gen pmaxphddy240=`tempmaxphddy240' in 1
/ o8 b8 w* ` I- c& M1 i
8 ?' X) w V" _1 q& j. } * f" a4 }7 l6 e$ p5 @" V) ?
*-------------ddy240pmaxp右侧低峰值 -------------------
- a, r" j3 u6 P8 X' e# p" g * Q4 m2 h/ J& {# {- {" V) g' Z! R6 s
preserve
. q! r/ w- R% [) O; y4 p2 M 3 {0 L+ a" G( Q4 a' w* k3 T9 q
keep if dx240>`tempmaxp'
" z( R2 r& z) v& Q) l
$ X- ^9 K) E0 ]9 v gen temddy240=-ddy240$ w, M1 P. }0 F( [$ A
+ r$ e. X5 v; m! p2 k
keep if temddy240>0* `1 E5 ~: F7 D d$ I$ K' Q
7 i/ x P, j3 D, C2 F0 m2 W
count" p- a# E6 h4 }$ i3 H: J
7 x% T" U8 {* h8 Z
if r(N)>2 {1 X5 I7 _* z4 f! ^* w) T. N
/ _, a0 }) c, _% _4 c- j pkexamine dx240 temddy240: f' N6 w1 @8 x* O
& e' c, T n4 J; \3 I4 m- S8 ^ local tempmaxplddy240=r(tomc) " c. q2 N0 C% E) d4 I. W# m4 D
restore" M) S) \ A3 A3 ?5 B" J9 d
}
% E: P: L/ [' z7 m ^8 ?
7 u5 O1 a0 i/ r else {
4 A* b. ?) F, g0 A8 \5 { restore. o" F F& e3 U# x
di "cannot find pmaxlhddy240"2 o& P* @3 G3 ~9 |/ f0 Q3 o
4 I5 I) r# ?; K) O
3 O" @& u8 A. C* H( p- a! A sum dx240
; @- o* Z- y' W$ T! ? u% D local tempmaxplddy240=r(mean) in 1" q1 h8 S0 b* m# r/ j. f. T$ E
# v6 p+ h, y3 u- S9 V/ R
; |1 N( m/ i9 }/ F5 h! W }
5 m2 M G' Z- w/ f
g5 H/ J2 N* D* a3 C! m' @ : v% a, z; c% H9 C$ T4 g
5 ]: S, D/ n) s; G# n
3 B; [, k( G. M+ E" u) S 8 K' Q3 Z1 \6 ^# K" N: l r6 c, N% u
1 B6 M) e6 o( H: d, s5 C$ f3 N+ J gen pmaxplddy240=`tempmaxphddy240' in 1
' R) d5 C" x5 g9 V
( R0 w! W: j& Y9 Y9 j) o *-------------------------------------
! z K0 V2 F1 b) `) p( k 3 r p4 b( L) ~. d
gen price5d=v5 in 1/20
$ g* v- j5 m( U) m * K+ t0 b# Z3 I7 C6 W: D# N/ D
gen price5yy=_n in 1/20
; O/ v9 k& ~1 z$ _( ^: w ; d) U8 |- ]; g, }( v s
gen price5y=price5yy*(dy240max-dy240min)/20
* o8 O7 ?1 G; k/ b' O ?4 H
# L& F ?* C# Y1 e( h% @# E& b *price5y &price5d
7 e# |! @2 ?# T( @& M; @
/ E1 T$ H8 s8 x; a' c9 P+ r gen priceny=price5y in 1
# v# G1 M0 g+ z( N# O$ A 4 R/ D. a" y! n. Y3 Q
gen pricen=v5 in 1- @( T B0 q [. q
9 D. i& H% }9 w
' V% D7 } @& |+ z1 q9 j *priceny &pricen7 N3 Y% b5 H* a
4 A1 Z1 `. [1 H# {' }: \7 a |; V ! u: k( d/ f2 n6 z" B
*-------------------------graph------------------6 } z0 @% I5 B3 @
( \* ]- w, e4 G' h1 b3 z 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)6 E* J5 X5 ] ?: \$ |
: }$ T% s. H0 x3 M; [* G* n! x' N7 C
* ---------可选项目----------------------
8 b4 B* I+ ]/ T2 f7 l p, [3 [( K+ w, l% I
}0 s0 I$ k# ?; e/ q6 q
end# [. G5 O( E' z
|
|