|
|
改了一下,这次运算应该没啥问题了0 Z, C. m2 F. s& E7 u+ {
, @2 v' l- R {+ C9 X+ I: y1 F# W2 {. j2 Z
capture program drop hello
W7 H* g8 N7 H8 S& d7 p1 l: h8 S1 c" X# |5 P" M3 B; ?' N
program hello& m1 h7 Z0 O6 K2 J. D/ I* _) p
5 [" }; i$ p o quietly {7 F6 V* s* E' D# \: S' _" |, f
) I- {: W! U, Y& j; q0 J
clear
, t2 Z2 o" i; k, ^
% l: J8 J4 h- _- l" i, `cd e:\finance\stock\20110101\source
8 j, J# S5 D& o# |4 q0 ?/ n8 K6 [, n; x: N- W1 |
insheet using `1'.txt& h: }7 F6 v6 O7 e2 L7 @
8 B& F: \+ z" m3 f1 I' W0 Y9 [ keep if v5>09 p! Q* _* Z# W% e
9 X! o0 e6 I; B- W; o. a6 |$ i gen vt=_n% b- m9 v" ], U' q' Y
3 x) S' v# b6 ?1 \# R
tsset vt6 V0 I7 `5 n5 b( q' k
- s% S% g% v1 ^- X) k0 ~ gen zf=D1.v5
! L2 ?0 J3 S) @8 K& }( e1 h+ e* M# r7 G; z$ p
gsort -v1
# ] Q. {0 Y# d
! Q. j/ o8 L0 E/ Y8 H2 c gen avol=v7/v5; B% S5 V# K+ H: D" d1 q+ L9 h
; X; e S, W g
keep if avol>0. a1 ^# {8 c6 U# }. M- l! k+ l' x
/ z5 K# b* w6 r: r drop vt7 r5 K3 Z4 k7 d; ~" g/ J4 a; H
6 Z) _: T4 O5 O1 ^! O- i7 a gen vt=_n
! L( a7 ^/ n c* m1 w1 x: M* ^1 u4 M
, L' g8 `' q3 l tsset vt
" V: r- g$ d% j* F : M/ T7 E( O G; l- |; K Z
sum v5 [aw =avol]0 ?$ w# N3 L/ E4 G+ U$ j
: r. @1 M/ \9 I0 L2 l- b; x6 m gen amean=r(mean) in 1
* _. {- N6 Q' e+ W7 G 7 [- M0 _* {: d! N# m
* 总加权平均值 amean5 Z9 b& m7 c7 w% R: N
; g, n; g0 Q' ] - l% s9 S& A2 ]' X
keep in 1/240
" |4 q; J' B; g: H9 b: Y. C) b. V8 k+ s$ @1 t$ x
sum v5 [aw =avol]. N1 `$ E3 I1 V. u+ B( q) T3 H* }
9 `$ p% y& ?/ t+ Y gen mean240=r(mean) in 12 s @3 v q* u5 c% E# D
+ M% `$ \$ t- `# t$ O. `
*240加权平均值 mean240
4 J. H. t4 I/ U$ h ! z& p, y" s( {! a- N: H
set obs 500 6 X& v! V9 G2 F0 W) M
" t: o! N; y% F- D- n! L( A5 j kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
* p, L( r# ]- R5 I" J: o 2 g' E; G( R7 Q$ v. e
*240 kdensity(dx240 dy240)
) N" `3 t3 h) ^6 W* O( K) N1 _! S) w 5 m, o7 u9 |9 E8 }4 y) D M2 c
sum dy240
/ ^- O A0 p0 e7 ~6 M/ l0 \/ V , J: z2 L1 C( R( m
gen yxis=r(max) in 12 U8 C2 y) u. _" t
3 Z* O7 p! g; \3 c9 R' P c T
gen yxis2=yxis/2
/ Y/ z1 ?+ W7 _5 J- ] ! O$ i. L/ ]. r% [6 r1 _2 J6 t+ P
*yxis
, j! O) s" A$ B5 N# K. u ) I4 w# H/ a# B7 F m9 W% j
gen dy240max=r(max)
1 m7 `$ D: e; e3 x6 p) N* v
- A* G1 D2 }2 Q) V0 D: A! y+ X0 _ gen dy240minp=r(min)
$ u3 }- K& n9 E! c, l$ a! L# ^
9 i! X/ P0 `5 M0 P0 N F7 [! S gen vtt=_n0 ^' E, `8 Q" J) H5 F% d; _+ Z8 t
2 G$ a+ A3 K- z7 V) e tsset vtt
8 w0 q" x5 p+ ~ O7 N
0 L h0 j5 r# y5 ^" G/ ]3 k# W- E gen ddy240=D1.dy240/D1.dx240, x0 F9 \) ^: p1 N6 G* i! l$ y6 S3 ?
/ z2 l2 w9 p$ D# |7 W0 |! f7 c6 g sum ddy240- @* E0 x8 E, ~1 a u6 i2 g7 z+ W5 ^1 j
# ?$ ^4 G8 L7 O$ x gen ddy240max=r(max)
, V, ~ j6 Z; d8 H. B, i * W% [7 b/ n* m5 j& H' |
gen ddy240min=r(min): B2 j4 |4 m$ c+ }4 {( L) j g
6 T: I2 d; u$ S: q4 j% q, r( @
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
- _, w/ y0 y+ t5 S
0 }! q, J) t8 T$ U% h, [2 i0 z' o sum ddy240g
7 g* i" I# b; r/ A- \& c/ l 9 I Q. N/ z( w( V4 A
gen yxis3=r(min) in 1
, R' l- k- F& C
+ v2 u* ^+ O0 }: o+ g/ @( J) H gen yxis4=0 in 1) r& d }) e% q* ?( B' o
" P4 F) q0 Z" J$ C! M& d! W) p
*ddy240g
4 F7 c$ j6 I ^8 ~ 7 M {7 A9 k2 {- I9 x
! p* v" d0 `( c2 |1 m$ v preserve
+ L8 k4 w/ Y, I. k# i3 Y
% ?: F2 V% v! a' ~3 R sum v5 [aw =avol]
1 ?. ~% p9 s2 t, B+ h% u) K4 C . P6 X1 r# Q& f* z
keep if dx240<r(mean)
3 j' b8 A! D) n $ \$ o4 M" [0 e
sum ddy240
2 x; T/ S' i- Y0 j* C1 w & t+ Y) r- t6 V% M7 o: ]; e
if r(min)<0 {; C0 a' j- `# I, g, P! F' n& E
, H! f$ v- z$ I/ O keep if ddy240<=0
a- l1 X0 g" L1 T7 \5 ]
! K& [4 S& L) s! p( c. y count
9 M; L: R% C6 o" {9 ?
( U# H& V- P. V' N- ^ if r(N)>2 {
4 E8 e8 h# X6 F( `8 Y9 \4 u 5 l4 Z$ n8 L; w: @
pkexamine dx240 dy240* X% C/ ?# T+ x0 d5 r
0 M2 Q. y3 x9 t0 U local tempminp=r(tomc)
' c! H% {. ^ v+ e) R( ? restore
! P' V! D* y2 v3 s0 \ } t" a- r) B1 i9 n8 ]/ d
( G* z) J: [" p0 d/ @' p else {
9 U. w2 N0 R! O9 s* A2 y% C
* x& b4 _; Y; E* z4 s di "cannot find minp"
9 K! Z/ v# L7 P: [5 C. s
* d: c3 C% p' Y& v+ t, l restore
$ z( a0 ?3 V7 z# f5 z' c sum dx240
+ U: f0 e3 c( r1 t. G local tempminp=r(mean)
5 a8 L) C( g7 z6 ^5 m2 \ ; v' X3 l7 y U% `
}
) Q: V) X9 s7 J: ^) H }: B) n- `; f x% f8 f5 m/ K
else {
U& ]8 K3 I$ P$ b1 S0 k; j : Z2 z5 m! D- L3 ^
keep if ddy240<=r(min)1 ?8 b. C; R& H0 D, j
; }' }7 w- T/ k- F8 e& c sum dx240( \2 f" X: P* C, I2 S; U
/ K' F0 t. Q$ ]7 _- G. } local tempminp=r(min)+ c$ V- ~! C$ y1 T, ^* H. K( I
restore 0 Z9 p4 j0 }, B$ Z8 `
}
P% D; N. Z- J
( I' b% s* x" y" q6 ]
- m) L: e |8 f( |6 C) i
5 n. Z2 {: z- A `0 L gen minp=`tempminp' in 1
4 O1 D8 D! X7 g3 n( A. P; j. ^ *240 minp* B1 X3 G* D6 |
) M9 z7 Z' A* S
* a& W' v1 }$ f$ A* R. M' ^4 L% {& G
' Q. j3 Y5 x2 X4 L preserve
2 U+ n0 N" H7 @3 n8 f0 V8 O 5 a+ V. ?/ ^3 A+ H
sum v5 [aw =avol]
1 Z4 E+ g9 ~ B' E. c M$ G- d
% ?( c" y: ^( |+ c1 ~- d3 W# ]3 Y keep if dx240>r(mean)+ T$ `1 D5 E7 b: @6 |, [8 O/ j4 r/ }
. ~, l7 g B6 ~ sum ddy240
& l! [. ^5 N5 I: x% A, Y5 s+ m
8 ^6 U* R( |& q3 l$ P! V if r(max)>0 {+ |( k; T# o2 y* F+ j
9 l+ I; E; d% J1 y0 p7 D keep if ddy240>=0/ [5 {% N8 a) ?' f4 a& F7 c
$ D6 K, G R# K
count
^3 n3 \8 m' K8 r
$ n4 f) p1 n2 L& w3 C( Z0 r if r(N)>2 {
1 a2 o0 I, P K' t5 D 0 K& F( D* ~# A. v+ i% B5 ^
pkexamine dx240 dy240
! D7 z- F$ U7 }/ b6 a ( p! W1 M+ r5 Q3 \4 Q
local tempmaxp=r(tomc) # U9 ^) q! |. Q/ g. a
restore & ]' e2 _+ g6 o8 t/ w
}+ H* F! t- i0 o R
" Z; M4 f F5 }, `- n/ K
! y( A% J8 e: o, h& ]. l else {
4 w$ v) t- I* x! Z% L( R restore ' f5 X6 |, B: B' x! _+ z
di "cannot find maxp"5 f e3 T6 ~- \0 n0 C. A0 [
$ q1 p- v X9 X5 ?8 E4 n, ]
4 ]* i$ q) \' m7 S; |2 g0 W sum dx240
6 ]6 m# G4 @5 @/ L' [0 A5 B local tempmaxp=r(mean)& L/ \$ }7 ?) L" m' Z u
3 D' j: ^0 _2 \) R3 I
}' G4 ^7 ]. y: Q* S0 {: g. C
) R9 k5 }* G9 k- a0 j
}
+ z% p& B; E9 O : O% B: [" t- a. F, O" E, Q0 c2 `) C
else {
# E/ q; g9 W' W) j
% {( }% S; M$ o, n3 b6 X6 A keep if ddy240>=r(max)
% y; h8 c$ f. E- N 8 t, m3 m+ y. q( q" B
sum dx240
2 s r7 h7 \- o" M' A, Z: Q . q5 K9 h8 X. W7 m3 K. |
local tempmaxp=r(max) + Y9 ^8 T6 p1 u+ W; m, s' i
restore ; a4 p7 m4 K- E
}5 d* R& d& ?0 J2 r4 A
6 H: {" O: S6 c0 F* X
8 l; J* y7 h7 Q6 }
" T; @! B9 ^+ ~# h3 E
8 e- p% i$ W( i; P, ]. }0 p5 R0 ? gen maxp=`tempmaxp' in 1' r. U( o. @, ?" i0 u
9 b3 K$ x0 t% Y. X. I3 ] *240maxp
" W7 w v. N/ ? : \* |" n) X* Z% M* S1 b0 [
; T- O j% }4 ?: v+ }6 E% I6 ^ *-------------ddy240pminp左侧高峰值-----+ `. y( x& M1 v
$ k1 }4 [2 O: t2 _' ~; Z& U1 t
preserve 6 `$ H2 ?% i) Q/ Z
8 l* ?, k; |3 V4 z4 d$ y keep if dx240<`tempminp'
: @/ U8 g+ e4 V" [* c' f" K. j
* ], {( F+ T; U: L keep if ddy240>0
' p: s% F/ N7 u ( t5 Y/ |; p" V1 }- M
count. T9 \3 i+ H' ^" j
6 }& X1 d% A. |0 z D if r(N)>2 {
8 d2 b' m7 ^& B, K
0 N, |; b- _1 _% k2 q& z( M pkexamine dx240 ddy240
L" m9 J. E2 ?6 K' l* Q4 w
: R4 [/ o, c; h% g3 B8 z local tempminphddy240=r(tomc)
2 g$ ]/ R/ e; [8 {2 ?4 {+ | restore t" x) y& {' }: o3 y& v: ~* I: A
}
/ P2 W4 u7 k3 c5 {" B( q* @# R
1 L+ V J5 K m else {7 k; k- d3 @+ S- c8 X8 b
restore
0 m+ _$ a9 T. j/ m. G- e+ d" c8 n di "cannot find pminphddy240") _) p% N) [' y
( G3 ^8 i5 d8 d* X% Q7 l
$ M# r' B2 I! i, }3 P2 } sum dx240 r) ~, T+ h/ Q% R2 B
local tempminphddy240=r(mean)
% N( [+ {6 H* t1 J! I4 j / [2 u0 T7 d s9 g
- ?& n A7 J G) @$ E; K
}# \: h+ ^! v. {: o* U% |
, Q. W1 J4 d$ ?( r$ I7 J, X* @ ' n* K# ^0 A5 a8 [
, t' k7 o% b& v: o5 M7 @7 m
2 l6 T4 y5 T) |) f: W `
* Z! b. e' w0 N6 ?3 `9 \
( c# f4 @7 G1 ?9 l( M2 b gen pminphddy240=`tempminphddy240' in 1
! H* T4 X# z% N
) b5 p: A. F; H/ D8 }: R
* G2 G$ J8 w' v; l* w/ y6 V" H *-------------ddy240pminp右侧低峰值 -----------------; k4 e4 E. i/ [
preserve
+ ?4 e: i- \0 `% N + ?% F3 V/ \5 ~( C! j
keep if dx240>`tempminp'$ T; H! R( T- g' L/ A( _9 }% T
5 {/ y" }% M# Z. I keep if dx240<`tempmaxp'
1 g6 Y( _' C: s) x1 {8 e
1 Q3 n5 C& M3 [, p8 G9 r keep if ddy240<0
& Z6 O. N1 A# U1 }8 k& M1 t6 s * e+ s0 c& R7 y8 b2 `0 F
gen temddy240=-ddy240
4 ~# K, x% j- d/ `! F' s ! ~2 N: S! A& f k0 L8 b
count
, l; h8 d; J4 u" y& J1 ?! O: {
, M' [5 Q, y1 A3 u/ v+ r if r(N)>2 {
3 o5 W7 f" i1 G! ?
! U5 R. K: m2 R$ P0 M+ o pkexamine dx240 temddy240
* l, ^# v1 V- T2 M2 { " h* g8 `1 Z9 ?$ Q! U3 B
local tempminplddy240=r(tomc)
* g% }; {" T6 a& \; u6 [9 V& O restore
4 c. m; s4 y4 _$ C1 C2 [5 f7 W }6 `* B' g& l; o. X7 k4 T
3 d% X) U" d! ], i
else {. \6 u8 x- o. w$ S. h
# h, P/ w+ q; z4 [$ z+ d. A8 N {& r di "cannot find pminplddy240"0 _) {# @ R6 n0 ?# \# C
restore1 l, v+ @6 S3 \; A6 [4 q0 ?
0 p) I/ s$ D; {6 D' g" z9 S) D
sum dx240, W4 |% Z6 e& t: J5 {2 J5 \3 Q
local tempminplddy240=r(mean). O; r9 `/ H: h$ L2 ?3 e
& N# p4 ~2 ~- A% F
! K; S9 d' z G7 B }) @( K h$ ?3 e0 {0 ^* y
) c8 ^; F3 I6 _- z4 `( ^
. h, K4 E3 Z6 |! y
! Y* s( c. ?# n" G* V
3 g0 _* R5 f8 c, w" P+ z
5 ?- ~. U! n9 b gen pminplddy240=`tempminplddy240' in 1: U0 V! o' I# Q& G2 d: y
# y, A& v% a" d9 d8 H* Y *-------------ddy240pmaxp左侧高峰值 -------------------
0 n% `, H; |, O
2 }+ S0 k0 S6 J/ I8 s" Q& _3 [ preserve
( o" Z; b: X/ n. K! V
$ I" j/ ^8 `% M7 b4 H keep if dx240>`tempminp'& Q& Z$ {% q8 i
2 L' E; V* ^3 t1 S
keep if dx240<`tempmaxp'
' @6 Y* C) s) t: w + p9 Y5 m$ X& b {
keep if ddy240>00 m7 w$ w! p7 h# E
count; S3 {3 Y$ }' W. `( f
1 e. ~4 W) ?# ^' h$ n
if r(N)>2 {
" ], T2 e; e8 n5 J' o1 X
6 T1 k. ?4 U1 L. F5 d pkexamine dx240 ddy240
0 N: C$ _ j/ {6 l 1 {5 N0 M& j' C" I" p/ o' N
local tempmaxphddy240=r(tomc)
0 M# T! M! O3 D" X 5 t/ W6 Y/ b" B1 W6 t* [
restore
* s9 \( G- W$ r5 ?3 C }
3 ]& q7 _# E" @& e- S- Z. X
3 D: \9 C+ Y+ D: F- Y5 A else {
6 O8 |* ?, l% v4 v
4 p8 v# D4 S5 X* S5 N di "cannot find pmaxphddy240"8 A+ v3 m9 y L1 A( ]6 Z: y7 G
restore
: S9 L) X" E4 y3 E1 y3 M. f/ a$ n
8 X6 e0 W3 I4 y: | sum dx240
+ `* R5 x# `$ _ local tempmaxphddy240=r(mean)
6 p( q `8 Y: s; @" } 3 Y; Z1 c7 v% W9 I7 V* |
6 [& U F9 x, t2 f5 P2 I+ \ }
; u( D: _0 u z( m- E5 Q' K5 Y5 X0 g * K6 H* ~. `4 P2 k& G# W
, p2 K. d/ i- i1 J
6 w" O+ @8 |1 O$ C
/ a$ Q6 x% r; ]: T/ v! d& T
4 Q% ?( c2 U+ s! Z/ v2 N9 ?) U% }
& T& b5 c: A9 }+ i) E/ m! t gen pmaxphddy240=`tempmaxphddy240' in 1
: O; S; Y2 t" ]/ g0 \- e
0 L K9 C; C2 {. q/ Q8 x8 p; y
" y) O3 \' H0 |6 A *-------------ddy240pmaxp右侧低峰值 -------------------
7 K4 ?+ G0 d K7 P; }
: L+ V s V P% I6 T preserve
! k9 u( I9 s: Y 4 Q( M8 u% |3 U# I, m6 v. ]* }; S
keep if dx240>`tempmaxp'" d" W/ q+ e4 ^( n+ g
; s1 Z4 }* d! x6 }& M3 G gen temddy240=-ddy240' r$ b+ j/ Z) ?) T9 T$ b6 O
0 I: _8 Q/ w8 r6 ] keep if temddy240>0( U3 [9 a8 T/ I
) v! ~$ W6 P0 d E
count
* b# L0 A; i5 n
) n. r' U* q+ }/ i. _7 J$ M9 ? if r(N)>2 {) q% X, ~/ a0 E, k
& B# e. H& u7 }. U' x" h
pkexamine dx240 temddy2408 R- f- y2 X/ z9 O: a
0 j' b, S8 m4 ~6 F0 A
local tempmaxplddy240=r(tomc) 3 u. @8 V; z% H2 G; `; \, C
restore9 r" h" f5 \) {" l+ `. {
}7 o! A K" I" Y& @ s4 Z
( [+ u6 d9 V0 o+ Z% H else {
/ O: ^3 a# X& Z restore
3 E" W- j) L) K9 `9 Q) f+ e& S di "cannot find pmaxlhddy240"8 N1 ~1 A/ L" o9 D2 _6 L
, I- | p# h* s5 k. t# {
/ `% M" f0 s% t sum dx240
( v/ J7 k/ g+ w, b; g local tempmaxplddy240=r(mean) in 1/ K- ~; u- b2 x% J
* v5 V3 N& N! i; x& a F! F: }' O% e3 |' v9 @2 b
}# I( N8 ?% |! L {7 V
5 \' S7 R+ \3 ]0 J0 x1 N# Z9 [, B
: V/ e1 |$ N7 ^: Q
7 m0 s# V6 V6 ^- N Q- Q" }( G
/ a( e0 d# l+ L
: H; e: y+ e8 E/ E1 H ! A* O9 Y! \) |2 W
gen pmaxplddy240=`tempmaxphddy240' in 10 ^/ x% }1 Z8 {: c
/ N" C/ O$ D, Q6 {# [
*-------------------------------------
1 u0 n+ f U+ f( I; s8 C, `
* E( S. U# v2 H gen price5d=v5 in 1/204 O. W3 C( i. U/ g. A1 g
6 K7 u& J4 k- r
gen price5yy=_n in 1/20
d8 w! ?9 j/ ? r$ X N1 W5 v4 i( x1 n6 F
gen price5y=price5yy*(dy240max-dy240min)/20
& { R3 {' E' r) n/ F7 x6 b7 c 2 O* B+ n; U. J0 ?
*price5y &price5d" Z4 E2 Q" x* F/ s4 u
5 l* f$ o8 Q0 }- t6 W gen priceny=price5y in 14 |, }5 V; T5 R7 L
) A- k( m( n5 L$ l( x2 d) }+ [ gen pricen=v5 in 1, \, @, A: P O( k
! y6 z2 G j1 k
5 R: p3 `! v. R2 t7 p+ w/ `" |
*priceny &pricen) r4 `, O( Q; E
0 }7 \+ y3 Y: q+ L; }
" L# d6 E" I9 J
*-------------------------graph------------------
, h! v( `( B% B. O5 k / G/ k% y& b+ g1 n$ X6 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)- O# i% [; l' n
# P6 ]5 j) H9 M4 r* ---------可选项目----------------------7 d! V2 m$ J6 U& U* k7 T) X' v
3 A7 d% N. M; T& I}( d7 b( k0 J, L, j
end' A# t9 _) X" O/ K6 Q/ d* q
|
|