|
|
改了一下,这次运算应该没啥问题了
" @! Z$ @. @) |5 i0 f3 Q
+ Y2 u- J6 s5 `9 X
v" C3 q7 Y' kcapture program drop hello$ w2 H+ O8 H# I N9 G1 ~* B
. H( |; H& I9 c% j% y) f% G' i9 ?, K
program hello. {0 ^; b3 z9 `+ O: g; j; t, v
9 B; u: ^0 g3 _* M quietly {! I% Q9 S! y# R. C1 M, W+ N
% D. K8 u! w1 N" Z; a( C
clear
/ i7 \' C7 |7 s* `* l9 `' R1 s5 X+ i: {
5 }( ]& `2 j* d" G0 A9 q$ Q/ y# U8 p, Tcd e:\finance\stock\20110101\source
" s- \& e/ k ]$ C3 Q1 {/ c1 a8 `* j) d6 j, M, ]
insheet using `1'.txt
F0 ~, l% y8 s( m0 F7 {; v7 q, {- q; [. d
keep if v5>00 f; S" |3 d& r1 p* v o
& V# z7 B3 X) n& ~. l; y7 w$ v/ i gen vt=_n
* S- P# q% w% N; L+ ?+ P# T
4 J/ Z% u; N! \$ }2 ]7 ?$ [ tsset vt
% S" `5 L8 B# i- S) O/ ]7 g( p1 g+ z s6 c" A8 Z0 x% a
gen zf=D1.v5
! Q" d1 I4 h" Q3 h* S, \. Y( d1 Q3 U# q% J* I
gsort -v16 D5 N0 ~0 i9 s3 K& f6 A. s
1 m0 m4 |4 G+ I
gen avol=v7/v53 x2 t, p; ?7 Z' {( ]3 M
7 f2 @! e' @7 h5 @/ ~0 Y1 b
keep if avol>0
) w E% R. v) Q. } ( j- B3 L0 e9 d u( k [
drop vt
4 |$ P) K: ]8 S) L N' ^' A5 x$ S
0 }" a3 f. t* `' W( e% ]* I gen vt=_n
: q$ x+ ?4 t2 ~/ G3 O
3 L/ a, g' N# w- W! f; G$ O; `+ v tsset vt
* a( Q; S2 c, v8 k0 d: L
2 V% k* A _, e6 D [ sum v5 [aw =avol]
- ~2 a- @- j u# j% K$ E
% C0 I+ l8 i% _' G gen amean=r(mean) in 1
* Q. K% f3 b* @9 `2 R" I# b
% ?) _& Q0 ]* T" c5 l * 总加权平均值 amean
7 K" C5 u/ `5 x0 ~. |0 a* u/ P' P" d
! C2 o1 ^2 f+ y4 B# U9 h5 R 9 r: [ c0 z. F, E; t1 V, m4 d
keep in 1/240
' U! N* N+ `) v8 W
( C# @- z9 ~) J. |9 u- S sum v5 [aw =avol]) C( v5 s" i- @8 }7 j
0 P. u. ~; \8 N' y$ E
gen mean240=r(mean) in 10 g% b0 z+ m7 ~2 N$ W; ~
9 U$ ^) Z: q/ {! S9 N6 J: A* A
*240加权平均值 mean240
4 I/ q# Z6 \4 T. c7 ]& X . X0 P: C" }, X+ K. s( g3 }. {
set obs 500 % W' Z. Z$ s, K1 V% P8 T5 a5 H3 L
) B5 a/ K9 x* `& d7 {( | kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph- X# E% t* @' R
5 [) R0 l. {' A *240 kdensity(dx240 dy240)1 X% \- W I; f( f
6 r: k7 R. z# Y6 \- w
sum dy240$ L8 D6 R0 ^! c) E. x- h
3 O1 a' {& I$ ]+ S" d) I; ^
gen yxis=r(max) in 1# k9 |: S4 U- o% J$ s# [
; A5 R- x$ c' x( N( Q# y gen yxis2=yxis/28 a' J1 `6 s m* T) L; Z
; e: A% s/ h2 f6 `9 C/ @ *yxis
/ E" g+ U4 ^5 Z6 v6 W1 l ( M& e- l: i6 j0 [9 ~
gen dy240max=r(max)
. ~5 g4 I, B, p2 f ' M7 e2 E3 e! W( c8 m+ V' n" s0 U
gen dy240minp=r(min)9 Z4 ?! {6 [( Y0 ^9 n1 B: A- ~
5 N8 q. R3 {8 u2 E
gen vtt=_n9 \/ a R5 X6 C F
/ Q$ u" P7 c4 | tsset vtt
. D7 K5 h5 w6 _6 {+ o+ {" q* [6 Y' f# t' s$ d
gen ddy240=D1.dy240/D1.dx240& q* A+ |1 L+ e: w- a
1 O- r' k! T4 P! x9 |- t& {
sum ddy2409 ]7 l/ t- |" F2 g1 s+ h
7 m% S$ _ P4 ~( N) a gen ddy240max=r(max)0 ?; E; L L$ w* G8 n
9 s: x$ w; o" I% O! A
gen ddy240min=r(min)" g3 r, { w9 J) \7 s
+ l( n' B- I$ s* m gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
$ l5 V0 ~1 i! ]
3 ~* a2 ~1 l9 ^3 M% g sum ddy240g
! T& E& `7 m1 {( K. J
: F/ S( E! f0 m' |- v+ t8 M' v gen yxis3=r(min) in 1
' e K& K* d' g! O" C9 j
/ W q; k0 J4 d6 x' Y- s' q gen yxis4=0 in 1
5 r, H( ~2 L6 H) m& v* v( y
, G& {- j e' y. { *ddy240g ; ^+ `) _$ B- t/ T, y" {9 B7 A
% s, ~1 k! R H
" X% o$ c* V6 U$ U1 [' l$ y preserve 1 {5 I& }6 |) G
v# m- }+ W! i* Y& y sum v5 [aw =avol]2 @* n4 g% D2 y0 c
9 Q+ j1 P: S6 ^0 C5 K9 H! q# G( [9 k& T. g keep if dx240<r(mean)
/ d! j$ k3 L; s: | {2 e$ }
6 [, j, b8 ~, V( `9 J, c sum ddy240
) o `) P4 y! w( l
N' _8 y& a; F4 m+ X( O" Q2 o if r(min)<0 {1 V& Y$ r) R3 [, k0 Y3 ~
$ |4 L* r2 E" p: e' z7 j: K keep if ddy240<=0, l9 _1 p0 m% ^3 a6 R3 y7 m
! v2 D" |. Y3 Y# o; q count
% R# t& O2 H& ?9 d4 e8 }* m8 T
( f2 I; n5 z/ [& p if r(N)>2 {
$ `2 }+ w" Z W- G$ t
- f* D1 x* H/ _3 [, P& Q pkexamine dx240 dy240, t; k% W! |' j5 [, t+ `2 V
1 C- V0 o3 r& \$ S' ?/ ^5 I5 L local tempminp=r(tomc)/ N* R- L( M* p/ B
restore
, Z* q7 I% q* g7 ~) t; u }
6 n0 X* E' ~1 a5 E
0 E$ N0 p: U+ e/ \ u else {
^6 o7 B* @" U7 f. O ! H" l' i% }& A" T. N
di "cannot find minp"
6 I9 |6 B; H; B7 f# g/ D; v
* f" i7 O: A% c7 l2 g r restore
7 q9 U* z% O1 J* Q! o sum dx240
& `# I" u3 |' e- k! Y/ H" _ local tempminp=r(mean)
+ {" v! x1 O! U1 A' w ' n3 q6 @6 s: m/ r& M$ R: @: P
}# n: u' C- t1 `: k) T# [
}
1 ~. O+ i q& W5 D else {0 J* r, @. W( Q0 O
& N5 b" A0 K4 G( D keep if ddy240<=r(min)
1 r- O. u9 S& o* ^- ?/ T4 s 2 x5 Q+ b+ [9 O
sum dx240
, F; T6 q1 `$ l2 p- k* j, [6 |2 ^ 4 I3 F' V ?7 W$ }/ F' f
local tempminp=r(min)% X* I1 N1 Y: b; N
restore
* b1 d+ }6 w) z( h }* o+ R+ L; V# B' M4 }+ K, p3 \
# \; ^- V; C* G7 G, b
: @* E% \- o& ^: n1 m) d3 F/ c9 G1 H
9 T B& u1 F0 }: x, T) k; K# w m gen minp=`tempminp' in 1& ?8 h0 f* k2 D
*240 minp8 ?# W$ U: n/ \
7 G) t3 @! i2 V) o4 Q3 z. n5 T* f) E/ V1 O" b
" r3 U; s/ Q9 [1 ~7 [/ E' x preserve
2 v9 w0 l, ~* l8 X5 o; p
# ~' V" \" e7 J- i1 @1 Y! t sum v5 [aw =avol]6 K" L7 @+ \" ]! k- d8 C
! I& {$ T6 W/ _, g+ k1 Y3 Q" K- e/ e keep if dx240>r(mean), L5 s' L$ F# ^5 f) X: G! p" K6 W
$ }( @ q# R6 ]& m- P S5 |+ U
sum ddy240
: Z A; s% \$ \2 r/ s: N/ Z 5 E" B8 v. F1 Z. o
if r(max)>0 {
! b' ~) D* [" I; y/ `8 t- a7 ^& W
4 D8 Y) I: D! x/ @ keep if ddy240>=0
3 m# K4 c0 G( M ( u0 G5 ~& O) W. [
count
$ E3 Y! A9 f$ ^+ E I; q 2 B0 X4 d3 {- u( B7 p& D
if r(N)>2 {
2 G$ i8 k5 C+ T% n! a H
" K* J% B( |" i& ?' A1 L7 k pkexamine dx240 dy2409 n c0 _7 L( `' S
9 a3 ~4 F8 W' L! G" [
local tempmaxp=r(tomc) 5 z7 H6 C1 M# d6 H2 O3 A7 y
restore
9 f$ S( C/ \7 Y }
& Z& T+ R& j& ?: F' I5 y, j9 p , ^) R4 B; i7 Z2 f* x& j0 {
9 {" o6 A( P2 ]: ~# o else {0 @7 Q2 Y. L8 R( w( b$ o
restore
2 C/ C6 ~; A& `, B3 x di "cannot find maxp"
4 Z. ]+ [1 `# u8 a8 E. p
\ B( S6 @3 k
+ }' p% l1 W3 }* n; A& Q sum dx2400 [/ p( n# |0 O$ P4 w: K0 ]4 C& K
local tempmaxp=r(mean)
% |% p. f5 f1 J$ x& M0 g
$ U( Q" _5 t# M- [! N5 s, t }
) f3 d- g" P+ A, \ $ J; g; y% q% C! x5 p- @1 s1 W$ o
}" M- N$ y* Z1 J
- @8 Z2 b# e7 }( I0 l else {$ I8 h. s4 ^3 X, T# P4 Y2 q4 [/ g: ~
6 Z4 B; w3 x: Y c8 k) p! z' \6 D# d keep if ddy240>=r(max)
; x; z/ M0 f$ i& M & L' q, V W/ K. {' Q# j- G% A
sum dx240( E$ E8 w8 W0 t' a" k$ @
9 Z. I% b+ C, z; | local tempmaxp=r(max)
# [. W3 N- w j restore
0 ?4 o# t+ w* ?. P1 S+ c }
" ]6 B- C \# N1 _1 \, {( a1 w. w 5 ?+ e( P4 \: b5 g5 i4 U) s! s& h: D
: n3 V# e2 z4 D6 { p/ T8 t ; R+ h8 `; D4 H
\$ x5 | I% ^
gen maxp=`tempmaxp' in 1& o4 J. q; }& ]3 P
$ ~/ @: n" ~% T* G' S4 _' b$ t *240maxp
5 Q% s8 m1 z# w" V 2 W, |% T a! E8 o/ i+ _
0 P. p/ d' H& D$ Y/ Y5 C. F7 x7 h
*-------------ddy240pminp左侧高峰值-----
% m# A( F; L' U" q8 A% S. A0 H4 p
+ T _1 Z0 k# w Y- f2 o: B: [" W preserve 1 w( N4 _ b5 h+ N- I
! ~) k- a9 j# H keep if dx240<`tempminp'8 Z+ @. n( i* n* h: _) b f7 H+ P9 {
s2 _ Y3 V" {6 c9 l; i2 G
keep if ddy240>0; \: t2 r" ?- Y0 ]
1 S, t1 F1 s2 G8 T3 M. {
count6 Y( L* o, v4 V4 m( m1 |
1 Q2 Z' O& K. L
if r(N)>2 {
* ?3 O. q( n5 x a 4 ~3 S7 X, b0 o% O
pkexamine dx240 ddy240) P/ n' Z0 j1 Z; h7 F6 E, p5 k8 v3 g+ D
) X, D) x1 f: |- p2 Y: V) d# D
local tempminphddy240=r(tomc)
) w6 O2 X' j, u7 h+ P# z8 C restore
' r. j. W# z+ r$ h; T4 l }
1 @# @8 r; u, N- B8 k- I- a' |1 y) f * l7 D/ p* I6 ?
else {
6 T* [6 S, q; D, m- e3 M restore 4 e* c( y5 G4 o% q
di "cannot find pminphddy240"
/ i: O# C8 ]6 H, o
: o. ], N( P9 g. _. Y, s
/ t0 f- r! l# q, ?% h- p) g- C sum dx240
6 |4 P: U- t9 c8 t! s local tempminphddy240=r(mean)
9 N, W7 y0 u/ z! I/ m& u* K8 e 7 u! ?$ S7 X2 D5 I8 A% \! |3 v
/ g4 Y6 D5 F' R, F6 k1 @9 W, z }
9 @: B# O! Z8 f/ { 5 V& o5 X/ E- G
; y' s% {9 ~7 g# u; m& @
8 v) m& O" O) S! J( x& M) `
8 e! u4 n J. X ; w% j7 \2 M: D
) @% \+ r0 E' h1 S4 C+ Y+ S" F gen pminphddy240=`tempminphddy240' in 1
' R& o9 v/ y+ }% G5 x9 T 0 x! A$ l& Z6 D1 G% }5 E4 i7 Z0 O
# f3 |6 X! D& n3 g# @" y( w
*-------------ddy240pminp右侧低峰值 -----------------
# A5 c, _7 m* d5 F* U+ i7 l$ B7 A4 M preserve * w5 l' _' R3 h$ w ^/ p
! k' I2 a' k2 \& T$ Q: z" n keep if dx240>`tempminp'2 ~" }+ R% k9 T2 l
$ l0 G4 i. b' H" Y keep if dx240<`tempmaxp'
- F* R e) C& Q9 ^+ z ! }) l, q0 ^2 I7 w k- r F- x
keep if ddy240<0
( W w2 W# q, t, S' [
3 M: `$ v v( R9 v) O% d8 Z& n: B- ] gen temddy240=-ddy240
/ \; N* Z( [) J1 B) l! @- T- Y' M- F4 P 8 X3 o R' P' v9 O! l
count$ j1 e0 C; V- ~$ [5 f2 P% {; }
1 f! X. Q ~( N4 _) ` v. p
if r(N)>2 {* {0 j6 b& i$ ?
; r- S9 w5 D3 ]4 H5 n
pkexamine dx240 temddy2402 k% V' M* h. B' w5 M p
H8 I- Y7 k: p! G% N* E local tempminplddy240=r(tomc)
- X7 r/ a- e! h' ?1 U* T restore& @8 ` q6 x3 m! T/ ]) Y/ s; W; ]
}2 V- t! }$ M: b* d& k# E3 w
! \0 B5 F @9 W# u' c else {
2 s3 Y1 i c& j8 P; e5 b) R 2 w" k. m0 }5 Y8 C: V7 @) W
di "cannot find pminplddy240"
' u" W6 s3 c: D; v4 R restore
) C! P3 T. h; W" o ) H: s7 Z9 z% [5 s9 [$ w
sum dx240& W8 v$ d. `7 j" z( S3 e' A
local tempminplddy240=r(mean)
# X& l9 e2 s0 c- p; ]$ q/ M3 b6 ?
$ k' E3 n+ K8 Y2 m. h3 R0 K. v' g
" l" V7 H; U% D1 M7 q; l; S. \+ k }
5 S0 j% d$ z0 k/ W
8 U9 D# k4 W& I6 M( g* |1 [
- u3 Y8 ^+ u9 j1 U; {3 {* h3 [5 Q
0 s y' `( f9 t3 K- n 6 p, l0 |5 d3 n$ I
, ]8 R2 }' | E& i5 \ gen pminplddy240=`tempminplddy240' in 1( A9 V- O4 w# \! u! k4 q& S6 S
9 L5 C E9 C: p5 c
*-------------ddy240pmaxp左侧高峰值 -------------------2 J# ]6 X+ Y/ Q
1 [" N1 Q d- `$ X: r
preserve
5 B. o6 x% Q' u5 G
4 S, V4 I, M- u2 W" }$ ]# f$ ? keep if dx240>`tempminp'3 C$ j) Y% u# w$ [2 R
! l) J' X _5 ?3 [; n7 L/ J! k8 R
keep if dx240<`tempmaxp'
3 A7 ]. X7 E) R% w
6 \" `$ H1 |& H) y. v keep if ddy240>0
: B0 ^$ I- d, T& I& `, G; } count$ J3 ^& Z4 h/ t4 Y; i# q- K
5 h/ h- l- j9 k if r(N)>2 {
W! u3 S) _1 e, u 4 Q2 i3 i! o" |% Z( w% k; E J; W
pkexamine dx240 ddy240
8 A2 j) L: p0 A 6 ]# l$ t# ]+ U: ]
local tempmaxphddy240=r(tomc) 9 s' W9 E: }4 y! G6 F. x
+ E. I8 L4 E9 V! ?% E9 ]& _ restore
# U& E2 [; _6 L! V- ] }5 L7 j3 G9 B- P" `0 l1 C
% q5 I2 d- I8 b) O1 L: J- z
else {9 [# Q; Y- o) {- y. ~: U- Z
9 @8 e* O$ O, T, \4 [# [
di "cannot find pmaxphddy240"
. G$ ^ b7 t) i1 S restore
# j/ K! y) F, a; i. _3 e . f& c5 [# j6 L; }0 M
sum dx240
; q, T( [" g0 |" [# d/ z local tempmaxphddy240=r(mean) * l$ ^) ?) k; H$ t$ m
0 N" _) d Z# R9 b/ X" u
1 h! n% E# H& M }- ~: ^9 D* f9 B0 P3 }
: L- ^5 T( B! ^( A' k/ ~ * }: ]. A' x$ |; b3 f* ^" z+ m4 Q
* H- Z6 \" k8 [- `
t S' B( E: a* {4 H. F9 O
9 s5 F4 ~" @: S% Q; m
5 O! `& f! U2 e$ Y5 R gen pmaxphddy240=`tempmaxphddy240' in 10 W! L4 a4 w: c9 {
- }, p1 D2 K/ W! S4 d" p, t- B9 s3 J% t
5 N8 T* e5 Z! l *-------------ddy240pmaxp右侧低峰值 -------------------
7 t4 D+ b6 a5 f7 L( I1 x7 I # m# T2 J0 u4 y( b' ?( t
preserve
3 V" D/ A1 w, j7 G3 C! a / o6 K7 G2 J7 @' O3 B) }
keep if dx240>`tempmaxp'
$ s9 _5 [7 H' x2 v7 T% X, H
9 T5 y. ?+ A4 }7 }% c; T; v t3 k/ C: B gen temddy240=-ddy2404 r8 A2 _8 g) q8 n
0 q$ C9 p3 O B' h, ]. ]; G# ?' |! s
keep if temddy240>0
4 q$ ?- M( t4 d U& z" y* [2 |3 ?6 H 6 o6 Y/ a' l: {# v; E' T
count
( J% i0 @8 U4 a6 z/ L 1 W0 j6 P( I/ I" S1 ~, M* Y8 m
if r(N)>2 {# V! y R+ }$ `/ M+ y- q; v( l
# @% \- z. h8 F3 M pkexamine dx240 temddy240# ~% ]% D! W8 r4 e! j2 z
' Q7 _% `2 p! }) L' O local tempmaxplddy240=r(tomc) # i! U; x$ W) a4 E
restore
9 k6 S$ e! u/ _ }' K- r) S o! Q6 Z. [
! E: s/ B% [! s7 Q: ] Q0 N8 N else {, |! w1 t9 C1 @' A! S7 T/ \
restore
& m) c# a0 t9 [1 Y9 Q o di "cannot find pmaxlhddy240"6 p, C/ ^5 W: u4 ^0 P
, l2 g4 Y0 l q" R! j. J9 P
' F1 Q# r( s6 F7 T# G sum dx240
" [/ x! a; @1 w+ p, M( s& f local tempmaxplddy240=r(mean) in 17 {8 k% [3 D% m) v4 e1 g6 T
$ P- r/ O0 Y$ p5 `4 G! a
0 |% y7 e) S' \# a+ v& K W0 A0 { }
# M9 @ T! n* ^6 A
9 n' {9 }4 @! c, Z 4 [( p& d- q) p+ Q. \
* I- p2 E8 O3 U4 F8 C
5 \- _. K9 J4 `, g6 d0 H$ ?
% o3 [' a3 ]8 I& ^% g3 e1 g% L3 _ * Q% A( P1 U z5 j" r. B7 W5 e, R
gen pmaxplddy240=`tempmaxphddy240' in 1& k: e# J s: u4 p" ?0 M* }+ P
6 H1 D5 _$ @+ s) p$ s3 ^3 M
*-------------------------------------
4 Z5 N' O1 z! ?6 I
1 @. `9 D: F6 Z/ p) S2 r1 K( ] gen price5d=v5 in 1/20
! j7 O9 X/ \0 X& [' g5 C P/ @: z
! J% P/ C( c& G, q* F; d gen price5yy=_n in 1/20
6 G2 k9 W! T* U( d* C
1 U7 X4 Z$ M: [+ A, X% y4 w0 A gen price5y=price5yy*(dy240max-dy240min)/200 B! Y' j1 }+ E
2 C! Z$ R0 F7 p& r$ m8 y *price5y &price5d
- G5 e" i* h* ` 0 k9 t+ @8 N' a% |4 T
gen priceny=price5y in 1& b& o; i" S" ]
) }4 R7 q0 c/ c- `& x; L' E } gen pricen=v5 in 1
1 C1 J; O; A- K( @3 @9 M
9 v% G' B" l; `0 Z1 ]; Z# ^ 3 ]7 V c( ?9 I- d3 b3 `; m, u7 |
*priceny &pricen
* }$ k; }$ n* D* x. {8 s4 F- G
* y. R! w+ l8 L+ V/ }
) O% F* z* M8 r; G4 V *-------------------------graph------------------' ]* n/ {- p0 x3 f$ p9 D
9 [1 F( H5 }% v; L2 x, 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)
: y, c( G( r4 b2 `: c b ]3 _# [* a) i. Q8 s, T
* ---------可选项目----------------------
) @. O" c; k# ?5 D/ ~# n3 X( l
! u3 J" U# Y, T5 T9 b! X+ N2 n! t% i}# B. Q- w" R; \9 v6 L4 c# k# w
end
5 e& u: ?' a6 E( ? |
|