|
改了一下,这次运算应该没啥问题了
) R- h7 B" }3 q
/ V, M3 L* x& N8 ^1 G6 s
& q& W. R& g2 W; @capture program drop hello) i" {& v1 @9 @. Q8 b1 f
' m' k, l9 l4 W( B- U
program hello
( T/ i$ N5 }; [( x, p8 y! V0 D
2 n, U9 _8 ]9 G5 m quietly {
0 Y* A9 [' u: w _/ ~7 }# q' T8 ]; ?* z! [- i
clear
. Z$ ?/ q; Q8 b4 M# W- m
5 K& ^9 ]3 C6 n, M( bcd e:\finance\stock\20110101\source
2 k. k e: g' A" [0 c" O2 H( _; j; i* a. q6 P+ |7 w# O9 g+ N
insheet using `1'.txt4 v: y3 F8 T0 S" {9 Q
) u" n5 V8 d% g
keep if v5>0
! ?* a; b- `- @ / [; {* Z' c) O
gen vt=_n) B v) l7 w# X1 c. N$ J# g
8 n. @& h) p; W4 B" S) H; I
tsset vt
. D) }8 s1 Y* s& G/ U" J0 A5 k6 S: n# w5 @' e
gen zf=D1.v5
+ k- r4 r9 {+ v4 s# _9 c0 k- Q, F
( X: B: B) |, H gsort -v12 [ e) h0 c* e- ^
' b9 C3 s! X1 L3 R gen avol=v7/v5
5 D6 i7 @6 |: k% {) h4 {: P
" n2 a. y& `3 e keep if avol>0
; Z! C2 X/ J# W" g) a6 H 4 r' D' }1 H: s; l/ n& B( r
drop vt
* H# x7 ^+ F# ] + ^0 ^0 y8 z9 ]
gen vt=_n: V. c! h# Q& Z/ P1 g0 q K
$ _& f) e5 E' {" H# I
tsset vt& t$ V( T" u! [9 B
9 o+ F$ k- S4 ^) Z# G
sum v5 [aw =avol]
2 Y9 p- Y' x/ i$ J Y) g$ u0 f( _: i: [3 f S( Z/ I f( Y$ f6 u
gen amean=r(mean) in 1$ z/ q& H5 S- x D( k6 W8 W5 b
3 ]+ F. N. ?8 I5 @- T8 n
* 总加权平均值 amean
. X. l: h3 y4 [1 t 4 c+ [% b0 L, b! ~% i* `9 Z
% ~* @% s3 a% g+ b' ^; |/ F) N1 ~) G- l
keep in 1/240
# |- I4 ?1 R& `8 e/ c9 I/ Z2 p7 O8 w! |$ Q0 D
sum v5 [aw =avol]
- V9 P% d x$ j$ S) { _/ V
/ p1 d( }; I. K# _; s8 r7 a gen mean240=r(mean) in 19 ~/ I6 p5 X+ Q$ v+ w) Z
* n) O5 M4 x) C0 e& y
*240加权平均值 mean2407 b& Z: j/ D" a& L
* I4 _1 e. U$ R- P3 a3 ~ set obs 500
) f- _- i! a7 x" ^% I" S ! Q4 Q6 F5 w5 ?( |9 H# D* ~3 u
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
( R' r' f ^" d* t, q8 m4 ^
8 U: }% ~; ^: c8 v# k, O' k *240 kdensity(dx240 dy240)
9 N3 E! G7 i0 e- ]: b ; F& G) X! g' v _: p5 k. L2 y
sum dy240
$ V) g4 u% o# G
- v2 p" I3 E. _7 T# h8 [ gen yxis=r(max) in 1( n! A: ^8 j( S9 Y& M: z; e
; i9 Q8 q8 d: r: ~
gen yxis2=yxis/2
# }3 k! A' P2 ]4 ]8 q# ]* {: n- ~
# W6 m, s3 |. }7 ^ *yxis
! i5 ^. ^% C0 T
( i0 Q1 s" d C# L' _ gen dy240max=r(max)
4 |( ?7 b5 v: ~& W5 W 5 R7 d" M; s9 n; {3 v* t
gen dy240minp=r(min)
$ I$ q. Q! u" g% ~$ u7 ~ + O4 X4 e! i! a; l- e9 @
gen vtt=_n
B* q. V: E7 ^' {, V( J
2 K1 A+ n+ |/ A1 d! \" [" k tsset vtt
4 R0 K5 v9 a; S% z
1 T' o$ h/ E5 B! V; A$ x gen ddy240=D1.dy240/D1.dx240. t) U+ T4 A0 [! \
3 l5 \- t6 {2 Q, j4 W' Q! m
sum ddy240
( ], Z# W# r; k$ n # l1 x4 S' B+ t' {) j5 \% e
gen ddy240max=r(max)" Q/ f% R! B* F% ^' i( N; P
+ Z B! x+ X. R3 W- X5 J) m
gen ddy240min=r(min)
$ i. C/ P- N. v& A# u ' Q, G# D( B0 t( z1 @2 e& }2 P
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
$ z& }4 z; m6 R3 s 3 D% h, @# f, B7 i: @
sum ddy240g6 `7 F! W) b3 D) h5 g* H2 L- z
3 t4 Y1 W0 ?# ~3 K6 k. y9 n
gen yxis3=r(min) in 13 X9 \# g3 Z( B: b/ v+ J
2 ^+ ?' X+ O* c- d6 ~3 k, o2 c
gen yxis4=0 in 17 \3 S8 J. f! x: o4 ^/ s
3 n+ |1 g* t$ ?! F$ B *ddy240g
' B: U* a) [. R5 G6 {: a
* u% x5 l8 F6 ]% R9 M( T
5 ^$ w/ }1 {8 n+ J+ k preserve
% ^" X, d0 v2 \/ ?6 ?/ Z; ` ' G I: M0 L) n; W
sum v5 [aw =avol]
+ Q! b z) e0 N7 S 9 C$ [$ p% W" ?2 k/ q! s/ P5 p
keep if dx240<r(mean)5 U5 z& `' g X$ \# i- G9 B5 p1 k0 J
) J) K f' S" ?3 W* \! B sum ddy240
& X R) u ^4 V9 X( Z; q5 D# {% N
2 I; `( W7 M. N$ X if r(min)<0 {$ f( o4 Y* F3 u, I3 \; w+ X
6 ]# H8 G% `/ w0 l# k, c7 d) K keep if ddy240<=0
! g( e# t1 ^# V" ?& x+ e 6 p- G" T6 h8 i0 P n
count* x6 ~ {) h$ Q. @( t5 h
~0 M/ C' I O3 L
if r(N)>2 {1 p# b7 {; A. N8 o! `( F, a
+ p$ C' E4 j8 T3 ?- G pkexamine dx240 dy2409 y+ T3 U! n# ^
3 n6 i5 h+ }: I* S( b" x( c
local tempminp=r(tomc)
9 u/ _9 [ W& n0 z0 S5 [: J restore
# m8 o3 P, D" w) e" f }2 Z; [, D. k+ X/ m, C
. c! ~4 u3 l* m' e' S) ` else {
0 B2 R$ G( t' n0 a 0 t2 ]; R7 a \& a/ X( |1 E3 w
di "cannot find minp"
# o4 R* Y* V( y. p/ v% n3 Y J
]9 i3 E1 O) B) C+ \ restore " I$ q: }3 \4 d1 E8 |( y
sum dx240
) |4 T4 G8 M. Y/ N/ H! x local tempminp=r(mean)
, H. I' A! _% F . a5 M$ J& Z6 P5 A
}( P/ s+ ]. t3 Y1 Z5 ^: M+ i
}
+ M5 a# x( `0 Z3 @1 k" J# M9 U else {
4 j2 N" a6 F5 W& Q) t ( u4 P4 h8 k2 c: s
keep if ddy240<=r(min)$ e7 b$ `- h1 ?* E0 ^$ E- X
4 B1 e. S- g8 z7 O sum dx240
( t3 E7 v- G' a# k9 e6 n( K
, a i) L- \$ a X" y local tempminp=r(min): `7 G w# ?+ v$ ~1 I/ C
restore
# x7 z& d `+ J) n" p4 `+ {9 B }
% z+ |2 B/ b3 \5 y) Q5 t3 N
6 D1 K( e7 e0 s
: k' }9 `( V! ^5 j2 D# I& X* d5 [* r2 A6 i& B. O
gen minp=`tempminp' in 1
' ]" G( g' E( H* [* Z0 B- M/ H *240 minp. |+ L4 X( G% t
( ]* _$ ~9 H2 _) B6 f- g O( A. R, @9 E# ]9 s" E2 u$ l
' g* z0 J! l, }# U preserve 5 F* F5 E3 d% Z7 C& _5 J a( s
4 H- D* R/ p/ H9 C9 `9 M& s' f
sum v5 [aw =avol]- Z1 d( `8 h& d
3 ^' U# x+ w. _/ P2 m2 v* w5 t keep if dx240>r(mean)
3 s. y8 r* C. r8 H; ~+ R , Y0 C% J* S% ~
sum ddy2401 b/ J0 ?9 Q( Q% q4 Z+ v6 E
% O/ f" i' [( Y: O if r(max)>0 {0 j! ~9 ^9 ^( q3 p* F
+ Q! Z/ j: b6 I keep if ddy240>=0% e! v6 k; K; [7 M2 W' W) w' Q( F
( O1 @" g. r# ^ count5 @* B! f' C9 I4 t& ^, }
O$ Z: N4 A8 ~# u0 i/ V, f if r(N)>2 { Z0 T. t6 a" `" i' _4 Z N `. F
% f" b; s) a* j% E& y8 Y* V O
pkexamine dx240 dy240
0 u" m. I- o" k( | 7 Y q+ K: h& Z& ]. b: i# u$ v: R
local tempmaxp=r(tomc)
% @5 I u% I. Q/ B' i restore
7 c8 v# l7 E& g* e9 e R }) c3 t' W* _& G0 p
& w5 B4 P1 B" X, g3 M% f3 {
* ^( ^/ G, e c' O7 S
else {( @3 i8 w/ i0 z0 v( J' r0 G2 P8 t
restore " ~! Q( |) N5 X0 U/ q D0 q
di "cannot find maxp", ~2 J& c9 r! H. @' s% u
: D4 o. ?% x* h! G; X5 F' N
7 Y$ i- W F8 o1 i3 Y6 h sum dx240
3 `3 z# L6 l* N! q. ]- F local tempmaxp=r(mean)
: _) j+ Q. I, w- \ ! c9 i# Y: M b" |( K" ]
}
- U0 S A1 h- k2 k. W & A G' s2 w; g+ F0 m
}
+ ]$ I+ {" N" T; T* _& O# \9 U6 ` 4 Y1 v( y: T$ E! o8 B& K
else {
5 j9 }" o3 D4 J" B
# \: ?# Y4 s5 v; E) s keep if ddy240>=r(max): X6 E" ?$ H m7 q9 ]; j! I9 B6 j
9 D: A% u0 m! n6 g* V sum dx2405 q2 n p# h5 m. F% s3 b
9 F8 C, P# n, w3 | local tempmaxp=r(max) 8 c4 z# T1 j1 a. g8 ^$ }' Q3 R
restore 9 i \$ p9 I* v/ @5 {7 U5 a
}7 T n1 F% h. X; U3 g) B" P
~6 f6 V* d& M+ Z6 v$ R0 c4 i
2 _4 {8 W, {- J; z6 w4 H 7 g0 r- Q6 s( o0 ]% u5 Z( ~% W
! V$ {4 I+ N& ^
gen maxp=`tempmaxp' in 17 x6 B+ T0 c/ M$ r
; k/ Y4 j5 {" C8 u2 I8 E* m& l$ [
*240maxp7 b8 X# h9 E, M0 e; y
+ B+ r. a& U: i7 R- ~' F( f
- A; k8 r. P+ K, g; T1 o |% j$ c *-------------ddy240pminp左侧高峰值-----
9 S5 n% O8 ]" s1 }& ^) s/ v $ J5 P0 E: r# L
preserve 4 ~8 a( |7 [* R! ], b% ]4 E
. X# z/ _6 _# t. z$ i, _1 a
keep if dx240<`tempminp'5 z. t/ p8 G: y$ l) o
4 M! X9 t+ h' R3 e# B* M( ]8 W keep if ddy240>02 A+ u) n% l% K% G4 [$ e: U
( m! J8 D: E2 U
count
; q! {3 \8 i, D+ D$ H) L4 i+ j 0 L* \5 r( ^& z' U2 ?7 g0 ^& t
if r(N)>2 {* K! X( E4 ^' a! o3 O$ d
1 e4 H7 I4 O8 v, o) K/ E pkexamine dx240 ddy240# B6 v% @4 C! ?4 G: T
' h0 q9 N* _+ P% i# x local tempminphddy240=r(tomc)
' o2 G; \# L6 ^! N. P4 I restore0 W6 S* q. b8 a" |! B
}
5 N# {5 y ^- `+ i1 _/ g3 l
. ^) V0 f& x' Z- i) _( R else {
. E; F4 [) I. \ restore 9 r- S# I7 ?0 S: B
di "cannot find pminphddy240") M8 x0 @3 y5 m
* M8 }/ @6 t1 w2 I2 F4 X2 F' S 0 h: Y3 A8 m9 \0 R2 v
sum dx240
( Y. W, X6 m; N* g( U h8 a local tempminphddy240=r(mean) ( X* u! j) G' g5 v" R, v
$ O2 W5 h& U" ?2 v% Q7 { ]
4 n% h! C* ~/ U! D$ F
}3 D1 |7 F9 I) ~1 Y' A, w- o
7 e1 H: k: @$ G2 d |0 G
* |" p0 k2 j1 Q
$ q7 t; V& ~: C+ i- H9 y $ u2 l' F3 A: u+ a& O" B
6 Y1 s( t; `: Z0 }$ ~ + c2 v+ }1 F( J }7 C4 y! F
gen pminphddy240=`tempminphddy240' in 1 V) `, E5 Z9 ~+ F! } g
. B- z+ x0 v" B& b
% z; p# o1 G; `6 q( B o
*-------------ddy240pminp右侧低峰值 -----------------* _: t& Z. z R, M* z! } M7 I
preserve - h' j# v) |/ Q) b! O' X) R
0 T% a5 Q, {; F4 l. z keep if dx240>`tempminp'' @, q, U5 ^5 X! T
& b8 t/ s/ @( x$ o5 m
keep if dx240<`tempmaxp'7 y6 t* }4 }. P* G+ S# X& ^' C7 j
, E! J; C7 w3 N0 l& I
keep if ddy240<0
( J2 f" ~8 a6 L) E ' I2 Q6 T; |& s
gen temddy240=-ddy240
) ]( B0 @4 v" m/ k0 D * D3 `( U, R1 N8 r3 r' q
count6 j; s8 v1 W0 U. U
/ o& O& t8 ?+ t, d4 y$ l0 B
if r(N)>2 {
' M+ q4 Q! A9 {- v" Y
3 n5 ]! Z) A \/ [9 ?2 [0 P pkexamine dx240 temddy2402 c( T2 y0 R6 L; J
0 ^" j [ @$ u: r6 q local tempminplddy240=r(tomc)
5 f" H$ O. y: M( `( p2 m3 a restore
3 h k3 a& D0 Y }! R3 o2 ?2 Z/ W& R
% W, J8 x( @7 f3 d4 |) R else {
! y& {6 u* }, d9 r6 `( F) X ) L ]; L+ f( F; z- Q
di "cannot find pminplddy240"/ o G: ^$ }2 M7 B9 r
restore
! G! A" D. ?0 F& j . t4 l2 T8 I+ V
sum dx240+ \3 r5 h# m" C
local tempminplddy240=r(mean)
% A# Z' x8 N3 x+ D" r# w9 } L
8 H8 y3 [: ^7 e- a# v
& U' y$ v+ Y( A. `( m+ V }$ I. G8 l% G3 B' x' z G" ~" A
% m+ w4 v$ l2 d& V: @; `
% L9 v" }5 Q- ~ 4 @ N" L6 }- [
2 b+ P/ t R# _( d' B
1 x- S0 S" g" ^! d& S* `
gen pminplddy240=`tempminplddy240' in 17 Q; j9 f! ?, ]; Y" P' ?: b9 u
% v' Q7 g: X3 ?) H- C' V6 r. @ *-------------ddy240pmaxp左侧高峰值 -------------------
( k( E* N0 j: w" A
( v/ \% n# j, u* p% ~ preserve : B W- s5 v0 K# U; z
6 @9 i! g& S ^8 G* m. ? keep if dx240>`tempminp'( Z: d+ C: C% X
}+ `% U1 _1 P
keep if dx240<`tempmaxp'
) y: K5 u0 n3 G4 S8 l; {; @, J7 n* d ! p% B: t. \" K5 m8 ~0 q; H
keep if ddy240>0) ^$ D3 ^: E2 A |
count
& l7 X. V. W7 D; F/ U+ O0 L: G- B U1 {- t w) w) o: `$ Y/ |- `
if r(N)>2 {, n `6 q0 Y9 _- Q) n' S
- j9 o, j3 l7 l% q+ L
pkexamine dx240 ddy240
( k# T) S) I1 E2 z
5 f5 Q1 I) g2 t1 i: W- u% m1 b local tempmaxphddy240=r(tomc)
$ k4 u6 R `" U0 n
- G! g' d9 E# v! k restore- N4 d2 h$ l* `( o' }
}, X' p( a0 I' F( Y" i
9 X6 _$ l. a' ? D* Q" U2 I& X. G
else {
5 [' | E+ f8 G6 y/ n/ O% m 9 U1 F6 N! z. }4 R. }
di "cannot find pmaxphddy240"
. X$ p |! [1 I: Q& m5 ^% e/ } restore
( i% H% y9 u& G2 ?4 X9 V 7 n) r- r: [0 K- u3 P0 N$ l! |
sum dx240
: x% \4 T3 z( p$ W' c' G" R" ], @# } local tempmaxphddy240=r(mean)
{+ l o1 P; F. _" E2 |
+ s& m5 ^2 u6 N& ?( r7 D & H, W' y3 ~, W2 G! f2 a
}1 n6 [" W' U+ v$ T* `
: N5 F4 [5 v: _ m W
" j% Y2 u0 P% M4 R4 F; D, T 2 d4 t$ m' @# y1 V0 i% |
& K- n: u ]' J: J
6 }9 t! f9 e# m8 [
4 s- x1 I( a: k- X) M$ K9 ? gen pmaxphddy240=`tempmaxphddy240' in 12 K1 T5 D R: K) s- m5 S( v
5 J5 H C2 r: X% C) |# [ N" M) i
: r6 _* w( a2 k1 O4 u8 Q5 w *-------------ddy240pmaxp右侧低峰值 -------------------6 G. c9 i; Z; w$ ~ x* n; X y
" D) U6 a6 m" }
preserve * @9 Y0 o8 i, b8 g3 w$ f' y' J
0 T w* z) {8 w' ` J0 r. q keep if dx240>`tempmaxp' A/ \- G! N5 z2 a
" [$ d* i0 E- s, I; ? gen temddy240=-ddy240
- q z* E$ a; `2 z - a- q( t. {7 ?: j6 C$ X8 b
keep if temddy240>0
4 h' a4 y1 e" ~ r9 ]4 ~ ( ?3 J: V! k7 e: e( I5 s J
count
0 J8 Y" t& m7 S) l/ H( b# \
7 [% l" o* w& d9 y5 ~ if r(N)>2 {
. t( q* ^6 \; a8 e k7 p ~
8 W ^) P: z' D% Q& X; j. C8 O8 L2 e pkexamine dx240 temddy240( G0 D! D& _' g" }% w0 i
4 f( s& { k/ M. X
local tempmaxplddy240=r(tomc)
8 R7 m. ]2 v& z& k9 l% [( G' K restore
" A% V4 v% H h3 w; ^9 V5 I5 S }
3 c3 ^; y. l/ ?. s# v ! ]0 S9 r2 H$ P' T2 W
else {1 [6 Y% J! w: \- H
restore
# q* c5 s8 S7 B3 D" G# \ di "cannot find pmaxlhddy240"/ w5 p$ h# j/ [( ~1 z6 q7 t
$ c! Q# F S2 q. G
$ L0 f o8 ]1 [4 Z p y
sum dx240+ O1 g' u! j$ B: E$ V
local tempmaxplddy240=r(mean) in 1. d1 r9 `- f% Q
) z0 ]& q# Z2 S' B/ C& Y
1 M$ |4 G6 W+ }& E6 q% R }
: x7 k5 }: E! n4 f6 m0 Y9 ]
/ x9 N$ v5 q+ n
# @, S# c9 u* t( U' k3 W
. |) d: O( M* G/ L- C1 Q% C
( K T# a1 P% {3 o1 Q. b 2 x& [5 B+ r2 ]2 V8 D9 O
( r# B" g: A- U2 q+ f gen pmaxplddy240=`tempmaxphddy240' in 1
5 u; M. F7 R. R6 g2 n- i; n0 ?
9 o. n# a# W4 O3 w0 Q5 J) q+ d8 f *-------------------------------------$ m- O) y g0 Z @( k- V
# Q. s) M9 z! v1 V1 S
gen price5d=v5 in 1/20
. A0 e) |* S9 Q- q : o& ~" P$ Z, M
gen price5yy=_n in 1/20
3 |& o1 {7 Z; l + {( a2 S2 w" c
gen price5y=price5yy*(dy240max-dy240min)/20( x6 _. U: R4 ^, x" u
) p" a/ }- f& G6 a7 j* t *price5y &price5d3 J. G/ B8 b) r9 \
' P+ u. G& M, R; C gen priceny=price5y in 14 _* S$ k- y5 ~! n
& Z, }% R: g' n! A" M. m gen pricen=v5 in 1
9 t% ~0 G# O+ q+ h( g" H- Z: c' E* G( t8 A2 i
7 m7 ?& l8 M# i' I" K *priceny &pricen3 j3 t1 k3 [) j" c A
& o2 U( }- w' N9 j$ N- k
& E+ e+ S ?. C- m1 | *-------------------------graph------------------9 _3 [2 r+ X& @% K3 D! A+ P! W. R' Z
) n5 _ A2 r% X1 {. } 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)
7 u8 U4 z# @3 a& \1 N ]* S) r( C+ M$ K
* ---------可选项目----------------------0 Y% ?2 l: ]1 M2 R+ P6 B
- T, ]" Y. x/ g& a; G1 e
}
" g+ U7 @+ ~$ b* O; A& w6 }$ Lend* `2 M# v0 n+ g- i" ~. P
|
|