|
|
改了一下,这次运算应该没啥问题了# r$ P' I: P/ a3 h3 u" S
8 H4 ~7 d4 W, h- ^! t" y9 ]7 b$ N% b/ X/ {
capture program drop hello' H; [) P3 z& d* n: M) b
6 u4 i( Y2 b% L4 X1 L$ D% y" aprogram hello/ \2 E: w% ^# E) v6 N6 B: t
* H' R/ V2 C9 z$ b' @0 z' `
quietly {& x$ j2 S7 V* t
' v& m! q/ O; z4 p; N4 v+ M) S" ^/ Xclear0 l+ l/ _2 F, B- l0 B# |
3 w: g1 S+ e3 d# S' _
cd e:\finance\stock\20110101\source
+ [: X/ N6 }7 P# r' f8 g" d& ]* H
1 K4 j6 ?' f& w# a: a) e4 r2 Q% ~$ \2 Ninsheet using `1'.txt' {' s0 o9 M8 Y
. j1 o- P M1 P% ]' W# \2 O8 s keep if v5>0
( e( h1 D" L, \' d+ @& h
1 R r; _2 J' X5 N: v$ L. Z gen vt=_n
5 `8 D$ e0 b. p
4 T! A1 Y) V* _; h tsset vt+ S! }* |$ N2 l" E ?: J
* k6 Z+ b# ]/ Z7 {% t+ ?! ` gen zf=D1.v5* E; j% X" x" y. \7 k5 e, Q! C
5 _8 `# s/ Z$ D' ?* G; p( d( \5 C gsort -v1
+ s' y* s1 F3 w/ a
3 ~; K- _* T1 ?( Z1 P gen avol=v7/v58 i: o' _6 k7 F
, h& d- ]4 u! k8 T, Y keep if avol>0
7 m& Y# ]. r# s- T2 D
* U+ g# u: B! z$ E. T drop vt
1 r2 C; ~( i- U; L9 ]+ ~5 J) a
8 h" p+ X1 a0 W: W/ |5 Y gen vt=_n9 `- O" C" V! L
6 }$ k% z, `; R# Y* e, y z# J tsset vt7 L$ _$ Y3 H4 o7 R- I) y- }8 h
4 v, S! c" f/ c7 C2 b+ M. s; a: c- d sum v5 [aw =avol]. a) S( f1 B% K& D% p$ U. Z: N0 k
3 H, o) B! V/ {- t2 f gen amean=r(mean) in 1
- |6 a' \3 m& k. W
6 P( w1 Q2 w8 K3 v( ^0 H * 总加权平均值 amean% r6 {6 L: L6 Q% |
' _* f; _0 g( {7 _ % |) J. U, w) u( i! n4 P
keep in 1/2404 z6 L/ A# u% G
7 n7 }+ i- u# h8 {- D
sum v5 [aw =avol]* z9 s2 X0 i- F4 T" D8 h
3 x: y& g% ] G4 P, B2 }/ ~ gen mean240=r(mean) in 1, C. B: S5 E' W
' j/ t( ~$ D4 M& Q *240加权平均值 mean2403 V3 N# h; C8 K7 D4 p/ h1 b7 Q
9 k' A. R* {" L set obs 500
4 @# _0 v1 A% T; y. t) I' C; l! X* s
6 o M h! e, B/ t7 f2 V$ p kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph( q! J$ J z6 h4 Y$ D! T- K
, k i! j9 N8 t/ p' B i/ `
*240 kdensity(dx240 dy240)% T B2 t+ t4 P
2 r# v, }+ S6 Y7 U sum dy240$ q _0 b) P: L$ \+ ]
6 f* r" t% I2 v/ Y0 j. B gen yxis=r(max) in 19 D7 ?* z5 S0 w
$ u: p4 q% q. W
gen yxis2=yxis/2
+ @2 d4 E/ S& C' {, |. J4 Z1 ] . X; T! t; T' |: w: h' [( \6 V
*yxis- l) e( i$ L+ b9 h5 x& A- q( x
( f# K* c0 \0 e) {. y0 D5 N
gen dy240max=r(max)
' {' g3 [, B- }) I% ]' {
* n- K2 z- z# f9 [+ R ]% { gen dy240minp=r(min)
) \; G' O/ O* q- _$ h- j
) s0 z9 @& f F; A0 x( d gen vtt=_n
6 K7 }- _3 c8 f- a' ] I Z6 |, Z/ v" [! o: @" e& I& C p
tsset vtt3 a* L/ A' N4 P" P g
5 @! U7 E- z9 s% B, b gen ddy240=D1.dy240/D1.dx240
% q2 E" r$ i, ` 9 G" n9 W/ j# U" M
sum ddy240
! D9 ?+ ^) @! m$ J" E 4 E D8 e# n# ]& B' N, `4 X, F& f0 g
gen ddy240max=r(max)- y3 f6 @) }! T$ d5 A0 A
' d8 L$ n7 @6 ^! |# r6 M% w8 }( U gen ddy240min=r(min)
4 Q0 ]# C+ x L0 }, C9 [
9 V, m% p9 V" b5 ]1 h5 {5 ]' d gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
' B, A. C5 X" ]. j' a8 k ) V; v9 {: Y2 o2 `9 z# _8 [- t
sum ddy240g
! m& {. S2 E" n$ x' j
9 B; M, n1 R; O1 f X gen yxis3=r(min) in 1
+ p% ^% z8 q- r2 L
: P0 L/ W/ m$ C3 \! g gen yxis4=0 in 17 M* M' E+ @. O0 @ e( D* j
% F+ p& q* O8 v% z! w3 d *ddy240g 5 K( g8 m) H/ D$ H
" O$ q6 x- a) d# e) C + t" V- b: y' k1 u7 ]$ r2 j' {- c
preserve 9 J) d% W. H9 Q) `3 j( l. P3 n
2 L; U3 e; }2 @$ I7 a1 q) A4 l sum v5 [aw =avol]
) q+ y+ H% T, `' F1 R. _
8 u' y" D: @) Z' ~8 V keep if dx240<r(mean)4 @& X5 U3 T% t0 i/ \; Y
( v2 ?6 S+ s3 q' f( U3 N, R7 D- F _5 ] sum ddy2403 L# n z- f0 `3 ?3 `/ p
3 B: }' \2 A( M9 R& K if r(min)<0 {' y" z& m! F' O
7 `: Q0 f6 B; N# ]: @ keep if ddy240<=0
- D1 z6 o7 j+ t1 O7 @0 K4 K
% X. n. t1 F3 x7 w w' d: }* ?% ] count/ ^ C5 s6 ?" I! v# l: S
8 r0 i ~5 V6 Y: F0 ^
if r(N)>2 { _ W6 F, A7 I' u X* t. u( E
. Z9 w" g2 a. [# ?+ ]9 j6 a6 D1 h
pkexamine dx240 dy240
# t3 `1 {' h5 k" R# R2 q: B. @7 J * f; ]" p$ H2 e0 c
local tempminp=r(tomc)+ L' N2 \5 I1 v7 ]6 _" V
restore 6 u$ r: O( b+ ~# z
}
2 p( N1 Y3 m0 k& y) p 4 N/ ?/ e* b8 r# z; C. Y) r5 n
else {' G: @! f) s4 ?& T: J
3 k6 t6 c U9 Y: k
di "cannot find minp"
. z! ]8 T k- s& f* V # [9 J- Q4 D+ C8 E8 I3 B8 {$ K
restore
! T; \/ @! P: S! } sum dx240
% e3 d( L- U4 x2 T9 ? local tempminp=r(mean)
- ~! _' e5 B& V " E2 w4 Q% T7 n) T1 F
}9 [" [5 Z% X( J7 o2 |. ]
}
. s4 P, V# @# J- b) y! I else {
8 h% q9 f' t, [9 g8 G$ S o/ V
1 E, [4 v! b S keep if ddy240<=r(min)" ?6 \4 z& `6 f8 b7 W
7 j% N8 j; Q& S3 b0 ^
sum dx240 Q* S2 e1 d# Y
' N( Q6 k* X) V, J# J4 M7 e9 h
local tempminp=r(min)
3 S* i, g0 N' F: z3 U1 ^ restore - S9 ~5 o+ X: U% [: {+ |# J( W
}: Q" I6 T, F3 H+ c3 f/ W' O
" s" c% w" c1 v' r- Z' o& Y# i% i
3 V# ]" F$ X+ Y( l @2 p
! v; J' |6 p" H) B2 u9 n
gen minp=`tempminp' in 1
6 r6 ~) Q& W$ t *240 minp; @4 z+ b' r$ T& r: I
- L1 r: j# }* y% J; B: r
$ n( @! k5 n2 t! H" R. I% s' e
2 k+ b6 Y) g% E& p4 o% x! [ preserve
% S- | p4 _( w! @) K2 R " s: o( g3 ^# z8 V
sum v5 [aw =avol]% U: C4 U1 t/ E5 C% D
n1 b) p* O! S9 ?" t9 Q" G% @$ H
keep if dx240>r(mean)
) O, P( ~# e8 o5 M1 d$ f
3 _- t! h7 H1 E1 ^" t( D sum ddy240
6 s8 b0 h. P& U) v& j; Y1 | 6 }/ j. O( b5 k& Y4 V, D- H
if r(max)>0 {
- Z9 f/ c/ q! `; I
5 c- T3 H/ F5 V8 d/ s keep if ddy240>=0
' X+ z& K! Z% [& C9 k+ _' K' ?6 T . N& i1 c) M& j8 Q+ {# c% q0 P
count
* a3 G2 Q, i1 d0 g" U
% N$ _& L: @/ U% n6 H6 b! P if r(N)>2 {6 C; o" \8 I; I' o$ Z% }
: ]( G5 i( Q; w, z: o" i
pkexamine dx240 dy240
- c& |: j* H8 T5 m' ]: T
+ e* F$ {7 k# C+ J } local tempmaxp=r(tomc)
3 ^' P: T1 L6 h& U restore 3 `0 M0 C l# k; v6 O
}6 t0 U% {" q( s5 d) o) M4 L
. c: I" F+ N4 Z a) d* t ( m' A1 A9 U1 k- p+ h6 z& b% B
else {
2 i9 Q6 s: {' g/ Y restore
$ p$ ^, [4 c$ d! @$ Z di "cannot find maxp"
1 J0 o; _4 J, _' y5 f' p( q$ c 2 Q: p4 r$ m0 k! R1 A
* Y Z* m. Z# k8 L# X
sum dx2409 v$ t' h0 Q: |# d+ E( L% F1 c0 L
local tempmaxp=r(mean)
! r0 S# T& \% d7 { O0 E2 G: B
7 T/ I, D+ I, h8 S3 w }+ q9 ]/ T/ [: \- I$ X3 Q
. F7 n8 L9 U9 Y) o- j
}
. J! ]4 L3 y i$ B9 f. p p7 _7 _2 Z7 [4 {7 j' Z4 Y- f
else {$ [' J3 J1 B" z& Q
/ L& Z$ k/ ], M6 s5 [* e$ Y" K* S1 n keep if ddy240>=r(max)3 ~1 S2 V, @0 B/ [
5 X' T% x8 Y; k7 {' u) q sum dx240
6 r! |6 R" \ B% a7 [- U & s9 d3 u: N% s" p% @
local tempmaxp=r(max) 5 n# L4 E# {8 u9 M! _8 Z/ D+ t
restore & z( ]& w3 I/ o& W: C% C7 `: S# S6 I
}$ \# K! D# ]2 c+ K" u
+ {/ |9 _' Z+ ], W. _
9 z/ c" N" H, ]* C% Q 3 H, b, P1 \4 c3 @ G) s
+ S/ f. N. l! |
gen maxp=`tempmaxp' in 19 O" T3 V8 U2 }+ f1 o
; e0 s( s5 T |! N9 y G7 M
*240maxp; p& ?1 U. ]- M7 n
2 T) u& b" K2 T( k8 I. w0 P
+ C/ u' l, r" _3 k! U( b) Z: T
*-------------ddy240pminp左侧高峰值-----9 A. @8 K# U, |! }- n9 G
: z7 Z4 @2 n- Y( k Y
preserve 8 m7 D" \$ h& f% h1 ]& x4 N
# G+ t. j/ B7 ?) T$ R1 Z5 w keep if dx240<`tempminp'! P" @) |$ B- D6 h5 l
" o% |2 B+ k/ |6 T: e5 i
keep if ddy240>0
$ h3 V( B3 J4 B
5 Y7 ~2 S$ H5 g count8 E" S% @# \/ e- @2 e
7 y0 D% m8 \2 I T% e9 x. y
if r(N)>2 {
# A: f$ U {- X 1 @* c& i0 \% P+ D/ l2 Y
pkexamine dx240 ddy240( v$ T: m2 I' Y/ ^
+ t" M% s! U. @3 ?. Y
local tempminphddy240=r(tomc)
1 Q$ J& b1 J9 g$ h/ j1 }! R restore
: j; ^6 {# k( }& M6 Y: O3 d }5 D5 q) V3 S4 {* D# j% v1 e5 \' w( j
* F8 Q w9 {- _, l
else {2 S1 F" e4 ]# ?
restore
) z1 r( d* v: _4 E di "cannot find pminphddy240"
~2 h* T& {# d: v5 v 8 ?7 h% U( a9 x1 z; s0 D
0 u5 o; b: H! g, v3 H- Z+ m$ u% M
sum dx2404 w6 u& b. i- R- R
local tempminphddy240=r(mean)
( A& b0 E: L0 w
7 E0 v4 t3 W; F, ~6 n" }
+ {" h4 K I8 d. G9 | c# A }, u9 Z4 N; d3 P" w! w
; }3 t9 K7 T- B% B # T1 v! Y+ S$ }2 r' `! o
8 l7 w4 f: y F2 }+ y0 s* L% N
& Z& b% Y3 x; f
& K# M( H: S/ H1 J " o) u# C9 B8 h+ f Z- w5 e
gen pminphddy240=`tempminphddy240' in 16 j+ y% A+ v- Q9 c$ G3 S/ t
7 M* B& v6 l5 f0 ^ m2 S4 P
7 ]: p5 }# M, y- M *-------------ddy240pminp右侧低峰值 -----------------
4 e2 j7 m! J6 P& N& v% D, I preserve
$ m, d2 S, e) H# W6 h7 v& F # ^% l# S6 O+ U$ @
keep if dx240>`tempminp') n" T) k! I. {4 t8 j
) [$ v$ _4 m" f7 [+ U
keep if dx240<`tempmaxp'1 `4 T; c$ O* [% c0 U" \: O, }/ e
k d8 E9 n! m) @" c3 u, F keep if ddy240<0& R* n% Y* E. P; L) u
& Y0 P: S% j! h7 }+ @6 F gen temddy240=-ddy240
9 N, d- L0 S/ F+ t% g& q
l/ B/ p p$ G6 W0 N count
! r' `; o1 v' |3 l3 A8 M3 i# U* z 2 r. X1 y3 M0 f* q3 I2 p& I! N/ ]
if r(N)>2 {
( u0 o, Y4 g+ `9 D4 p5 U: V0 B
. q7 N% d- Q& [7 l# @: _6 s( ? pkexamine dx240 temddy2403 s8 [& ~8 u1 j( Y9 ]7 J% r5 x2 C
5 J9 S& Y7 P- E* G2 m1 N local tempminplddy240=r(tomc)
0 n& K8 @* b$ }( G, j restore; X3 k' X# t0 n2 f4 G# v
}7 b0 z7 p0 m9 e3 u
- Z0 v* g6 M6 J0 C; x6 Z
else {) X; \7 U! @) v, {2 P+ u, A8 ^5 e
9 O# I0 }- l8 \7 E* j
di "cannot find pminplddy240"1 I! J* c# A5 f
restore
" h$ _: g3 T* ]( H1 ?+ X8 A
9 P$ V Q/ ~6 d: h sum dx2405 ~9 b8 p- O) W# J- @& J; @' D
local tempminplddy240=r(mean)4 r9 [* Z8 X4 J+ z* A {
0 ^! x5 G6 i! N3 C a
8 t% w* P9 P! I }
+ x: Q# |# c* P8 y$ K2 \' j% d- Z 2 g+ ]( ]- n7 W/ u$ f2 |
7 z# z5 G+ @4 B. s$ f7 T
: h: n9 D4 M, e5 S9 D
' O- a- K& S( P- B
6 i4 g8 d/ n+ \ gen pminplddy240=`tempminplddy240' in 1" [4 \; a( @' J# s2 s7 ~
& Y, |% [( b* r- U8 s
*-------------ddy240pmaxp左侧高峰值 -------------------# `6 \* z, b M# O) z, N
* P5 ^, r z2 k
preserve : {, j: }. o* {! I
0 o: u0 ^2 n2 [/ g5 A' a6 I0 U: b0 b3 z
keep if dx240>`tempminp'$ p! j& \5 g. b+ @
! U& l( Y9 m, S8 @; y$ C
keep if dx240<`tempmaxp'
/ _! |) u: O0 \! C. C; s+ ? x
% p0 C0 M2 W% t9 t% | keep if ddy240>0" P; u* m! B$ r
count
; Y! ]$ p! V6 d- M# H$ r ' h9 S5 I6 u9 @$ }- |+ A, }
if r(N)>2 {
: R' Q* b) `2 w9 ~' s
0 A* B' N: @' q t pkexamine dx240 ddy240, I6 u( m" _5 f: L
6 _% [ {# g, {% `) x" ?# {! P4 ~ local tempmaxphddy240=r(tomc)
! A9 l- l0 h# G5 V8 R3 [
3 C. i' j4 n1 m$ m2 k restore* m0 H3 w( c! K% n, n c; g
}
8 Z7 D9 z# |: Y4 M9 t# u8 B9 ~
3 D% f" O- L( t( [1 k else {
6 ^$ H7 ]1 t' U: r6 S8 z
& e$ n7 Z" Y# T( K j& ^! J+ m di "cannot find pmaxphddy240"
# o, y# |7 ~ N4 f1 {, d7 J- ^' s restore
6 l5 K4 K- J# ?* N j$ U c) d, X; {2 g" l/ }
sum dx240& c# }( u3 [$ D& s2 V! ?8 c
local tempmaxphddy240=r(mean)
- y+ Q H6 U* O- ?" V
6 \9 ?: O1 `/ B- I# S - p0 W. N# I/ i, u4 i; u1 G! J: E. y
}
^ ]( V5 j- y7 j. \ 1 Y( a* H( f m# |! N- l' e! o! Z
/ R& w: G" Y8 q- N( L1 H $ m% k/ x$ S% X) @
( {. b8 q) Z k$ y [9 P
3 h' b( Y" }4 }$ C
3 M9 u3 I# u7 s7 P- S* E3 Z+ z gen pmaxphddy240=`tempmaxphddy240' in 1" o) d+ a; b. Q6 E9 Q, a
2 ^, d! {2 o' B8 ~, V
. r1 Q# n) f* a( q1 A" Q$ D* P *-------------ddy240pmaxp右侧低峰值 -------------------) X3 P/ [* Y1 ~( W8 z
$ n% i* L9 e' p/ h" b
preserve : [ O, W3 C/ x
3 U3 e: @# X' w: c keep if dx240>`tempmaxp'
e0 N& |+ X$ k! M, ?( `2 S
% Y! K& w1 V* g& O! q gen temddy240=-ddy2402 z9 X8 P& I- d! L
]6 e& u; B! S* N; B% |* W
keep if temddy240>0
; B! I2 K# D) v4 P; j. A ; x5 d( E3 H2 H3 p# y& x" t
count
( M1 t7 J) n% [0 j+ \4 q% o
0 r5 L$ Y( T% J$ @7 B5 j0 ~' A if r(N)>2 {2 c$ `5 S1 N0 e+ Q, O
, t6 e8 A' N( V
pkexamine dx240 temddy240
) D. d* V" ^+ s3 S7 l) w v) v , M- r0 s" f3 `! _4 v6 s
local tempmaxplddy240=r(tomc)
2 N6 i8 Z# H+ v8 B3 g! @& X restore
! Y1 i* x; z# q }8 R- s6 L; \# E1 h5 ?/ Z. E+ }
& [* X6 c$ k7 | else {
3 Q! f! g3 B& [, C! v- p1 L, j restore% V- [8 @- I4 P+ ]4 l' U* T P9 C; p
di "cannot find pmaxlhddy240"' R8 W- F/ t' J
/ v4 R' f! f. B. {' J! \
" u$ O0 I) x, F* a: L' X sum dx240
+ W% x' }0 E v local tempmaxplddy240=r(mean) in 10 k( {" B. {+ u$ P% h4 O
- K' h7 _& Y& t: X
+ `( e: J5 L3 `3 ~/ ^. L r8 |# M
}
2 n6 B0 l* f( D1 _6 U7 O3 L4 @( v
J1 c u; w: X7 O! ^
) K* M2 g7 I# t0 M+ e( f* H; J 5 x4 F2 g K" e7 T
" v6 ~. q' s; p; s% U
{" M1 a* S* d
7 z' a8 n" T( D5 z" |) ] gen pmaxplddy240=`tempmaxphddy240' in 1! O' i7 R. F: F/ e% ]+ j
6 b- P% i/ H& W. M! |8 g. k
*-------------------------------------
. j: ^7 A+ j4 e5 g# n( u5 u3 w" a u/ o) y; B. D6 z4 i; _( D1 N& `
gen price5d=v5 in 1/20( K+ D2 N$ e3 U( t2 r
8 W/ f* I1 a) } u
gen price5yy=_n in 1/206 M9 r5 h) R* l
, ]/ Y) } G. _ gen price5y=price5yy*(dy240max-dy240min)/20! ^8 N, D. ^) v v) [
0 j' ]% u4 l" o: G; v" i: D
*price5y &price5d
' J h4 R# D# _ ! ]# |- E9 f3 h! x) z& ?$ q' t; ^
gen priceny=price5y in 17 r% I; r) s1 x8 a: s7 ~
( o+ e3 n$ N' G- o, F
gen pricen=v5 in 1 ~- v4 C% y! c. a5 Z! G3 Q/ ^: X
! n l2 A! e7 t $ [3 D0 K, q1 }8 ~) _
*priceny &pricen1 r1 w- I# _& P! `
5 H* _( ?! r/ {9 K 2 v& r* m% ]* R; k4 @0 [
*-------------------------graph------------------, O: h& h/ k9 f; Y6 d( E
" Y; M* O C8 O) ?- h! k 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)
1 q7 Q, O5 y5 `" V! `; g, @2 m- f* A# D
* ---------可选项目----------------------5 U0 N" Y( {% o
" D! r/ ~: ~, @) V* @% r
}
7 L9 B# `7 C) w D' i: I: Iend, g, r. I! |: |) z3 b1 c+ Q4 w+ W
|
|