|
|
改了一下,这次运算应该没啥问题了
4 H& P/ V3 h* m! O. p2 F; X& y. }
# @+ ?, z! E6 p5 \2 y/ C& a+ `' G3 g5 J2 @+ j! ~ K
capture program drop hello
5 a; M2 V0 m! A% n8 F# V( `# O9 x) r
program hello1 f, B) e: X, D
6 u! V5 v+ r& v, m U. @: c# Q quietly {2 a4 E# V* F/ t( P
7 b4 [/ ^2 @% m2 ?3 }* A hclear
3 R' W9 k$ O; F$ e' h6 Z& M5 Y* }% Z
cd e:\finance\stock\20110101\source
" g, W$ E6 `) L5 V
: F% Q; o- M; ]8 W* T1 x8 S6 einsheet using `1'.txt
8 C, L! S" f; n- [( T& a
+ p( ]7 V% ]2 n: g keep if v5>0
3 y1 E4 \5 b' F8 C7 q6 o/ p1 p9 v * \! g2 Q; l2 o, N# K
gen vt=_n
; Q$ I+ l/ J4 f$ C5 q- I% N
% F9 C$ i0 V/ N7 U1 p" [ tsset vt9 Z. I- Z( g% D
9 j+ C2 b/ ?. P' _4 w& ?' ~- j
gen zf=D1.v5
) H7 _$ k8 M# `- i3 G) ]/ \! X, @& U! o3 J3 k+ P1 v7 G
gsort -v1: c0 u) e' N* M8 j8 p
: K$ R* y! a" h) t G& _ gen avol=v7/v5: B% ~( O" O: _3 o M
# F; `( v0 q# y* V( _ keep if avol>03 u% x' @3 K" m) |! b" m# }1 ?
4 c. T2 ^( \" E+ m+ Y8 u drop vt9 _+ i$ M) U, H
. i9 H; n& c. I0 C- K
gen vt=_n- c' j& O- c6 P$ U1 L
' l/ N7 O' ^" o& W7 j; y. o tsset vt
( [# e' R; {) a l) U, x 0 {7 {0 @( j6 Y1 L' H4 r& J* {' q( }+ I
sum v5 [aw =avol]
' y2 z6 c1 }/ o! ]4 F" R
0 M, i( I4 K9 ]6 P6 F/ D gen amean=r(mean) in 1# A6 h0 _6 ^) x
- l4 A1 S, B' k' {
* 总加权平均值 amean
* @4 g6 Y! ?( w/ g : p' Y$ |3 Y/ p
$ b- t1 }2 N: X8 F* m8 w keep in 1/2401 H5 P5 k! P7 G1 s) M$ ?" t% [
; f& ^# L2 Q% y! t
sum v5 [aw =avol]
- p4 T/ B8 z5 m4 }! E7 h( b* s# a% z" n) O/ i8 \
gen mean240=r(mean) in 16 @( Q Z X8 m3 M$ }( W6 A) v
- ?9 @6 r- N+ Q5 {( }1 E$ n9 I
*240加权平均值 mean240, R2 u7 W" H5 X) x- B2 n7 U
! f$ V% I/ l1 z; g' ]% u0 Q set obs 500
7 J6 ^3 u3 ~, Q! W0 P
# ^1 N0 w- }9 i& ?$ ^ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph! r T1 o. O7 K6 a
. @# s* ~: n) S- X' l) Q
*240 kdensity(dx240 dy240); T, F' V( d& s3 f) f% ]
& M4 Y: c( x; x3 W' J) c sum dy240+ P+ X# {2 F; d3 x5 l' E
L% f0 u& G* o) c gen yxis=r(max) in 14 o" J+ G) F1 B+ Z- y+ Y
7 q g x+ c; g& W# n6 P# h4 J
gen yxis2=yxis/24 O! f( F9 Q F2 h. `; Y
: X" t' h* \4 N% a1 a
*yxis5 I6 X* a2 D. h" L G `
( ~ i1 ~7 {) |! z' o8 L
gen dy240max=r(max)
; j, s* D9 e% X ! I8 d9 J! u4 O% h$ E- O0 N
gen dy240minp=r(min)# {! D' r7 A+ A0 n- d
: |- e8 [6 P0 M* s gen vtt=_n* H% Z) P! K0 X
0 Z# \9 ]6 J |3 p- x& n0 m tsset vtt
" P' A, Q5 g$ } ^6 [! O
9 F# j4 z* B5 U4 j gen ddy240=D1.dy240/D1.dx240! L8 M$ j$ S8 ]; b3 s
3 L' S* l3 W( q1 K. t- s9 W
sum ddy2405 q7 m/ a; K8 W
! k: y0 W9 z1 q9 n gen ddy240max=r(max)
7 |% T2 Q7 k N! ?% `( s" L
, S8 @& |1 t$ @3 C2 @ gen ddy240min=r(min)
' p, e5 t5 L/ T* L; X
5 {7 U% d; x, ` gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)7 M4 n* m# G7 F; i4 K; a+ v
d9 b+ a9 R! @+ K7 R% Z) q
sum ddy240g
6 D* ^+ Z* s0 p5 E 9 U% T+ \( R! I0 _
gen yxis3=r(min) in 1
, v0 y B$ y: J8 u! L4 `. W! ^
5 \5 x# K$ y* _+ n! a3 _: G gen yxis4=0 in 13 r; X8 w/ @ s0 @4 C1 _( W4 F- R
/ [- h; N9 f+ t# Q; Z) M4 _3 P *ddy240g 9 {4 f# ]( {, `+ S
7 P# v* ` j' f # t3 C4 ]" N) R/ @% Z" z
preserve ( S) b+ `/ g; I+ p: l3 i
& O E; _7 @* x& |
sum v5 [aw =avol]& w& H0 E% L. P# V1 J* P3 R% U
/ J# r% t5 ~" E; Z keep if dx240<r(mean)
/ q1 M8 W. q* R6 }7 h& q1 ^# g) h 6 @ U) i! {0 m
sum ddy240 R; h+ L; G( I- r$ `, a9 m
: w( R3 N: Q1 r! _" v0 P8 B if r(min)<0 {4 `; n# a. f$ [+ g5 H6 ?6 }
4 U5 t) T/ h/ f' W& d) E3 P
keep if ddy240<=0
5 J0 y% X+ X! E8 A5 y
: f& @' u5 s7 ^ count
* Y" E1 S, a" F ( Z6 |! N }% M- ?$ O) e
if r(N)>2 {
- @+ y' P9 p7 @# G2 S6 B q2 O( v# r1 M: a6 \
pkexamine dx240 dy240. }3 A6 j# Z" s( E+ h
" ^* X5 {/ c+ p
local tempminp=r(tomc). r! v9 |) T- r1 ^% O# j: q2 S0 A& p
restore
7 l; f0 [9 g# r2 F }1 r, L( r8 `0 X" b+ M+ L+ [! h
; Q7 i6 r$ w0 N ^ Z; P, F
else {5 u1 B5 _% n7 @; b* O" J
8 W1 C/ O5 T- J$ c0 m di "cannot find minp"! }, C- H4 L) J$ `! y6 W5 @1 o, K
" u5 n2 I2 J6 o0 k1 g
restore
: s/ M' |& ?4 p r- N/ J a5 u sum dx240
# f7 V# a$ \7 a! e) q7 E$ n! D. f3 J! L! R local tempminp=r(mean)
1 }: n8 ]" |3 `; K+ a
6 L1 q5 w, r& b& i( W4 P* R }0 g! q! V0 x* [# S5 s
}) F$ A% P( r- y" G
else {
/ \9 Q3 x& h6 s/ H" w' Z+ }
. w% f3 D; P+ U3 n# R X6 T8 | keep if ddy240<=r(min)
! q b' S, Z. u! G7 C H8 V2 \3 c
4 f/ v+ g9 h' o1 O9 U5 d sum dx240
( P/ _7 a" i% [8 H
) t9 o+ @1 l L( @7 {# T, Y, W6 A local tempminp=r(min). }2 Q6 F0 {4 l
restore # R# a# b% B+ K) v; q7 S7 U
}
% k+ v Y# y0 U- x- _0 k
+ K" R3 {. d! c' O! z+ `
. S) M' K5 J( ^2 E7 Z" o, r( g7 N1 z7 T
gen minp=`tempminp' in 1
5 \2 k; L& o @3 ^- w *240 minp
. v: D/ ~7 D! v: x6 w5 o. S' O
% F& \$ z( \* l* P7 e% G& I
( S4 j% F/ K; a" i. `/ o c0 h
; y) U4 |" A5 Q3 s7 V4 r preserve
H, L$ m0 b6 b& d6 v. C4 m1 J' V ; X5 d: j/ V$ g: K n" }+ h/ A8 F% U
sum v5 [aw =avol]4 {0 k$ q, o+ K- @1 k7 z
/ {. }: U% j' h+ ]0 S$ z! i8 Z- G keep if dx240>r(mean)% T. c: m) w+ E( w
b" E! e% q U$ P3 K, a
sum ddy240
& |: u# d) Z7 ] ~' A, @! d
( r4 @% }+ g! N( B- z | if r(max)>0 {
( R& O1 f! d0 y! ?6 N
8 e5 |9 L7 h. h& r2 l keep if ddy240>=0
4 x- m' H5 Z- O: W
3 ?8 v7 l* H! D1 W count
2 R8 P0 J/ a: w V% X 0 m; Y6 N! V. C* R" K; k
if r(N)>2 {
3 j+ E$ `8 g8 B: l8 H/ A+ i4 z
% `, \0 c( p1 v pkexamine dx240 dy240
% K4 Y# f8 Z* ~6 u: a" ]* a # P: ~: n% a' Y
local tempmaxp=r(tomc)
7 b: f, v% Q5 p; U, q8 x restore
5 V7 y' Q, h+ x7 V2 W9 R }
) _1 O% A" j' y! H0 s/ |# d( o/ o
* \0 U% F" x- _0 n
t: |4 P! A6 x) O( H+ s else {
+ G+ z2 _+ p u5 [# ^* U restore $ ?! c5 B }1 }0 K7 \
di "cannot find maxp"
5 |# H: `3 z/ t! N & h* c5 z' t1 k9 U. _5 e9 ]; L
; j. D+ s9 K8 L1 \( O( K/ N sum dx2400 n/ H; z* m5 u0 o$ z7 ~# Z
local tempmaxp=r(mean)
& e0 K" m( c* Z5 h) U
9 F* x/ \9 q4 A5 _ }4 e0 }! U" u; M* y0 D8 o- a3 S
; n6 x2 b7 R8 |8 o0 U. E }
% O: _- ]: W* y8 P8 @8 o0 w 9 Z2 P. b' X4 B/ \$ I
else {9 Z: l: f# c w8 U6 |! ~# j2 w) c
" X! I' J# V: v keep if ddy240>=r(max)) K5 O: ` y# a
|# j( L4 Z/ v3 h$ R
sum dx240# p2 r, U. l1 @+ ?
' o5 `5 z- v6 H, U9 k local tempmaxp=r(max) ' F$ }% g! _ w, t* Q5 L( S& ?! V
restore
5 a9 q' Y P3 r! ^" V' Q1 y } z/ ]4 v9 d6 ^- Y$ J# Q1 u" s t
/ a; N7 ]0 D1 r* z
" T8 ?% [. H. Z) N( {( [ ' y3 J) Y) B$ b9 @: [
0 e! J7 ^ @7 p4 r0 M gen maxp=`tempmaxp' in 1) j7 ^( J: _3 V9 y C9 @; E( b
/ A& ]7 i% Y# B2 }
*240maxp
" a; Q, y; v X" N0 ` # t# j8 B2 j0 ]7 @
8 v/ V ]4 I: g. E$ t" @0 u *-------------ddy240pminp左侧高峰值-----
; N3 S9 G/ b$ k* O# ~8 O 4 K8 E0 U& z* T4 s* [+ N$ q; k3 E
preserve
( h6 R' a( a7 I5 E/ f
, H9 M( y1 Z. _0 ^! e% B& h {7 t keep if dx240<`tempminp'
+ g8 L" K) W7 S) L7 I K+ X: _. u+ j
keep if ddy240>0" V. e& ^; P4 a3 F
- O h3 t, d) K
count2 P. e( A$ ^* @/ \1 }
! ^$ h, o6 s0 ?* M& i& Z if r(N)>2 {
" t3 g" X9 `# d& W
; C# W+ m& q6 a pkexamine dx240 ddy240( ^1 x- B2 ^( O
. h! z+ ~; F4 S9 ?- {5 W& } local tempminphddy240=r(tomc)
8 i4 ~- _7 }+ ? restore
9 J5 b7 P/ n- r( T4 y% P/ p }
# v ?% I) X+ o- M
8 ?. {; \, L6 \/ Z* y else {
* J$ ^4 y L: v7 p; l restore , m8 }; \- W% I% ^; {; E) j+ F
di "cannot find pminphddy240"
0 E" P* P' z) [* X
* c M1 e# j1 x+ ^& u ' b, w. Y" Z6 F. }3 g* a1 I
sum dx2403 J4 O* M6 a% M/ | X% t1 ~- H" c
local tempminphddy240=r(mean)
: @, p8 K) R1 O( \4 I: ^8 W 1 S( t; J( V. b
* L- ], p. W4 s' y# z
}+ F% _& t& k G3 Q0 i) B1 ?8 Z+ ?+ r
5 c! G* K* ^5 x5 M& v, c# K
! Y- p" |" a4 ~0 C: y1 U0 |. \* @ * P# R0 e# u" |6 t- j4 A- O
2 a# M. `9 `5 R
; R. ?8 X& I5 R
7 E Q: l9 ?- t) ^( \ gen pminphddy240=`tempminphddy240' in 1
) }' f1 ?9 p) k- g" o ( p5 ]' X& n* q7 M) x
3 ^+ Q4 l& o0 c \# | *-------------ddy240pminp右侧低峰值 -----------------& T& e3 Q$ K' R
preserve 6 g. p: Q6 S$ Z4 [7 @
5 E! l$ x. c4 e7 i& e keep if dx240>`tempminp'
$ Z# Y1 [0 z* Q7 o: ~, v) L' P, S/ b % l9 N) c% y& m5 l+ W E, T, D* t) K0 F
keep if dx240<`tempmaxp': r3 W# L H% i* _. s, l
* t$ \0 V3 [9 i, X3 L
keep if ddy240<0$ h1 m/ C! Z c% h. I0 O2 V* ]
: t5 S" b" `" y& u
gen temddy240=-ddy240
+ [. @& ~ ^4 h- j3 J- U4 k - u% d: i% z! g# p' _; z; h
count/ W% M f$ o" u3 [% W* ~; B3 h
2 ^" \) U) {* D0 i if r(N)>2 {8 R, ?7 x ?. N4 Q# v- D; C/ d" D' w
) ~+ j! ^/ Y1 h pkexamine dx240 temddy240
* {4 `/ E: k/ F/ x, S! p* m$ a
$ [& P! J6 K* R7 _# e2 b local tempminplddy240=r(tomc)% r8 Y6 r9 _- p R0 r
restore
0 u3 ^8 ~) `& B/ x }
1 S$ v; ^: a5 Q, G3 v # F J. `: d! E' R Q4 d
else {
- }+ h% X0 z% s * B7 H7 C- l1 z5 ^. v
di "cannot find pminplddy240"
$ o: O# I% A, ^' `9 d8 O3 } restore! j( t ^- z8 f
e. q& h8 F0 ~7 {: O sum dx240
7 C0 w7 d7 F8 k6 a# { local tempminplddy240=r(mean)
( W. P7 _! } \. r7 {0 I- z * h' E2 o* T. n
& \1 K& k2 A) ] }
6 Y% Z, v: j+ i( j7 j% B( O( e Z C 0 O" t; n" h# u2 ~# ]
* b9 G0 [- @! e. ]9 U2 g; h 3 H) Q6 c; B C' t
" _* p# k, f7 N/ b/ \0 d) H. U
7 ^2 P6 P, a8 @8 b( \) Z gen pminplddy240=`tempminplddy240' in 1
' {& N$ x; U* I, N6 [; S6 O
. r6 R) f' ]+ v/ ]+ F *-------------ddy240pmaxp左侧高峰值 -------------------
, } F6 t8 `6 F% N: V
) }0 ?, K; f, \+ J. z( k preserve : N$ x7 O$ I: \: ]. G4 T( {1 T
Y$ ~7 Y/ ^+ d2 S keep if dx240>`tempminp'
4 u* \! u& [. S
( `5 ]. T& q5 E+ `( _ keep if dx240<`tempmaxp'5 D& E5 ^5 }( v3 y" h( | `5 z
* ?& {" _ `$ @/ | keep if ddy240>0
1 h5 N. E! m! |" v, N Y count/ s6 k: Q8 {/ r
; T: j: i% k2 u6 u if r(N)>2 {7 Z0 j' k1 c( M- g
, `3 k6 L. b" X0 N pkexamine dx240 ddy240
# H+ [. ~( X8 f + J+ y. B4 [, Z
local tempmaxphddy240=r(tomc) 6 |* s! g( _' W" n$ a( ]( s* S% \0 j
9 g5 c- ]- `4 @$ O* ] restore4 m. M: I- h: l y* b2 d
}1 b+ k/ A2 |* W, o6 e; X
2 E) Z/ } d+ @& c: t
else {- V' I1 E/ Z8 q$ A# X& i. {( O# ?
' G" }0 |/ H/ H( | l% w" F
di "cannot find pmaxphddy240"
/ k9 ~2 H5 ]% Q3 h. Y restore
) N( e* B7 B( U+ L% Y 1 s' m( e& o- S" v7 P6 `$ m$ G
sum dx240
$ v0 c6 N; @7 o8 C- U local tempmaxphddy240=r(mean)
& _. Y( R; I$ q2 B5 e: Y6 r2 z
3 f7 j, N6 z( u ! s% s2 b8 S9 H d2 ]/ t4 R. j" L+ w
}
4 {+ k) `1 r, z: h' p & @ u# e. B" g- U0 k* J# w
5 A# e, Y) x+ I0 U0 [
: m$ i( y$ P1 J: @; @
, C6 w+ L, p' l) q' p8 q
$ Q o; P" a( w! d5 f5 c $ n6 D3 ? B7 U# d$ K
gen pmaxphddy240=`tempmaxphddy240' in 1
8 A4 s0 Q t9 H* y+ z3 l 3 Z2 A6 ?, w1 Q$ U" ?) M
Z9 e+ R3 ^$ \ *-------------ddy240pmaxp右侧低峰值 -------------------8 d( k' h {- W! b$ W7 p+ W+ k
+ D+ @' n( s& T' q% [: {" h
preserve ' v& V* ^0 Z5 i* f1 r0 R
* C/ \/ e- z+ W) @0 { keep if dx240>`tempmaxp'
! f$ b" r3 U5 \3 s
& r4 O! m& C5 R$ G$ q gen temddy240=-ddy240' t3 w2 m d' d: q: F
. D4 O' ~6 C; y- F& P
keep if temddy240>0
: U+ {6 j$ ]% v; t7 I : n4 \' P" @. T0 A: p% y
count3 @ f* b2 I# f; [" j& ^
S4 N3 b& r! t( B% e2 H" ] if r(N)>2 {
; v$ D6 a+ F( o1 ]
5 v) F* L, V4 a: }7 ?: P pkexamine dx240 temddy2407 ^" Z$ D; q0 F1 ~8 M
8 r1 i# x1 s. D$ n3 D" y- ]9 K& T
local tempmaxplddy240=r(tomc) 7 P9 y4 A4 N8 b( i
restore
( _6 n+ \& M3 b$ ~9 W3 N7 S* j }) U7 V3 b6 ~5 i$ I) S' b' R
9 I' Y/ m; s8 ]5 {4 S' p else {
5 J" a$ A4 P5 x% z- h: O7 V restore
* @2 x$ S; P# M( P di "cannot find pmaxlhddy240"2 ?) w. p1 _9 j9 c; z* S( K
x# m1 W' S; P! N. c; ^3 c
# E% ?% C) H" o3 V sum dx2403 Y/ @3 m |2 U% y) `
local tempmaxplddy240=r(mean) in 1
. [0 l8 {( g! |5 X; Y7 l 1 x7 o/ e" M! O5 M5 w
$ Z6 N+ r# Q$ f8 t& j2 z! m
}
0 Z4 {0 j: L+ m p5 s5 [9 [+ T; [+ D+ v+ r
/ V9 L/ B, J& _/ C! I$ J* n' }
) H$ t. x5 I6 m+ y/ a/ j; u- ]' a
- M. G2 c) _$ M8 z9 {- Z
% z- M; a0 W( k' b
4 v$ t2 u# R! U) t& `) k0 e
gen pmaxplddy240=`tempmaxphddy240' in 1
; C! g' ?2 g1 X 2 O1 u4 M7 H4 \- y
*-------------------------------------# `3 Y0 v* e! ]# R6 d# R; S
. R: \: e; B6 C( {; X9 L gen price5d=v5 in 1/20
% w" J# z" T7 y( ?7 g. u ; \. \$ L+ w/ V! I2 B: O
gen price5yy=_n in 1/20. ~1 j3 A; h9 `% l3 x5 ]7 l
7 p# ]$ f% Y! r- n* }# x gen price5y=price5yy*(dy240max-dy240min)/20
& b i& V- c. {, B7 a4 Q
$ p6 A- w& F/ G' R! B( ~( G *price5y &price5d
8 j& v1 [( i4 Q$ d7 T- u 9 `) B: t5 o( `0 g* L
gen priceny=price5y in 1
* D+ r4 q4 f" e3 T: u # `2 ^8 X* j( e9 u# q
gen pricen=v5 in 1% I3 V' I( w( a) f$ t
5 _% ?' ^2 B+ h e0 `
- n; I; n6 R- s9 \" ^6 f7 }
*priceny &pricen, i" u( H! N6 e, {. j, y
9 g2 j3 o9 g: `: Z- w3 I
- q4 j7 G3 h* B+ F" h, ~% {) y *-------------------------graph------------------' D- ~2 L, x2 t
7 c: |) M' g" c8 \1 \) N 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 _2 @3 p, T3 h e! ]4 w3 }
4 R( H) b7 ?$ K: z9 x L* ---------可选项目----------------------8 d4 z" C) E7 }& t! M
$ `' G8 D m t, P1 S, c* T
}/ s* H. h3 C1 O* `, ~8 z% p+ Q: i; f
end( n+ k+ c2 \5 F0 x
|
|