|
改了一下,这次运算应该没啥问题了
' q, p4 o, h% w- X9 k1 T/ l: I3 A7 }( T4 i. E6 v
# b$ g- Q1 O- y/ [* bcapture program drop hello8 g: w7 q9 I# l% @* o
+ c) ]2 y3 Z w( X5 J- B* D" Kprogram hello& W8 s4 L [# w4 o
( X$ c$ H# m; e7 @" H
quietly {
0 e5 X1 R5 c* z% b# h5 X3 W' _( u+ ~+ \3 G/ ]
clear
) I* s( I1 f3 x3 Z4 }& Q2 q0 ?/ W X1 N) n6 E
cd e:\finance\stock\20110101\source
% H; o- s. T$ X% v+ `/ h# N
3 }5 f% y7 m& {$ @, U( E+ c `' Z8 ainsheet using `1'.txt
2 G1 q' V, g* W% P `! A {3 N$ O! H+ ^
keep if v5>0
! I% r r( v$ Z
$ \$ S: Q' Y% N2 h+ o gen vt=_n
6 T/ P% e9 x) C ]& }1 _4 U5 v7 ~
6 ~8 a4 L0 b( Y K' U tsset vt$ a p3 U2 X& j n. t7 ~
: w4 O# M8 f+ U# C/ T
gen zf=D1.v5 D: O: e' O, J. j: k
6 w! x: H. e9 a2 W6 n/ M7 \ gsort -v1, b4 k( h. x1 y }- l# T% A
; O* h/ V/ o9 F& {) m5 z
gen avol=v7/v5
& w6 f, V. T5 f: p% {8 U 0 F7 P5 l: S0 ~# H% E) D
keep if avol>0
& x, c2 ]6 a/ ?3 q B( a6 p$ f' A ( `; F8 g' }# s+ Z$ i
drop vt7 r6 h0 r! Z( b1 u
5 S# o% o) g8 W, _+ c7 C* [- c* q
gen vt=_n
% t t' j% W2 M/ f, O0 V ' s& Q0 Z: w2 q7 K
tsset vt
I# Y; B: z3 x; P" m 2 h$ r4 V) L s7 L6 S3 F7 m8 [1 E
sum v5 [aw =avol]5 \" {$ S4 K/ k$ `, [* x; K
/ @+ p, _! X( Q$ ~; }( u; ` gen amean=r(mean) in 1+ e/ @/ |/ a# I1 A8 O# T7 z" S
M+ i9 i9 Q; \8 v" s& u, t
* 总加权平均值 amean* H5 w( \: P2 a$ e- s# E, \0 P$ B
$ r0 q6 g1 l1 Y1 f! N : n$ T u% ~8 p3 t
keep in 1/240* n }; t b8 w
( r6 d @5 j5 ~0 K; H sum v5 [aw =avol]. C1 u3 H7 A/ t" W0 ?2 B1 t
: o( O- S2 r. ^( o% ]7 z
gen mean240=r(mean) in 1+ Q' }- u' t. t& C
4 F# S. c, x% A- ~2 l1 W* d *240加权平均值 mean240% |9 b. w4 g2 ^. f
) W! R9 w0 J4 T/ T' b& N8 t5 W; u
set obs 500
R$ W+ u6 v* v% m' v* p8 X4 ` 7 i' g1 c [; l9 G
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph+ J, O- j5 x( J, _! M7 r
" ~8 n4 W5 e! d5 _ *240 kdensity(dx240 dy240)
6 t. G; O5 U9 C3 G
( }- |- i w+ m, K; J sum dy240
o& ]* \( L3 U a, D! z
+ R$ g5 ~2 e$ Z8 e gen yxis=r(max) in 1. X7 e0 K& s; m0 h3 A8 J- c& M- g
* ?% o# J" H9 \, d1 | gen yxis2=yxis/2, G) o3 A4 r. O
+ o) L- c X/ t/ s/ P% o& ^; B *yxis# K5 _3 b8 U0 w
0 Y* N2 `7 Z6 b( s! v: |
gen dy240max=r(max)
# l ?4 J/ n; x( G
2 x5 J9 R1 Q' O) r0 w1 M. r gen dy240minp=r(min) T, E% d* e" A- u6 q6 G
! v# D/ c! Q/ v! x
gen vtt=_n
) t% N! U7 B: h2 X+ p
( h$ V7 ?* ~3 |: | g; M) _. G/ H tsset vtt% j% k! o: @+ e W
4 r. [$ G/ m! ~6 U' t7 k5 W( z4 I
gen ddy240=D1.dy240/D1.dx240
5 Z) `% q5 M4 m) o" T
& z9 z* b. x* L+ Q sum ddy240
6 E: X, l1 W5 z
2 @0 r, c- O; w" d gen ddy240max=r(max)
7 E1 O! g: @+ } % @/ G4 [5 Y6 I P- t: [3 }* y3 B: k& \/ T
gen ddy240min=r(min)
3 e! g! w7 D2 N, P' S9 E, | 3 y/ o: k5 M3 u$ |$ s2 F
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)7 L3 a9 K) S+ n( V+ p- h
% c; d9 _9 ^" A( y9 Z1 t sum ddy240g, X4 x5 g0 j t2 a" [
& o6 B# I3 G7 p( l# o, Q1 N gen yxis3=r(min) in 13 r) ]& T$ O! Q3 r8 e
# j7 K* n9 Y0 [" \ gen yxis4=0 in 10 L8 U3 y% N$ N$ e% Z
/ R) [" H4 b2 U+ |3 V3 h5 {
*ddy240g
; Z' V, p( s: Q8 U& h$ r2 |- x* o& J+ s + c6 w% ^! h) j" X# V. p
2 k4 b( a) T6 h7 E/ {: V( g
preserve
9 q$ z! b5 w+ b* |0 u9 @ : R" b0 N: W& i$ V) Q" Q8 g) t
sum v5 [aw =avol]6 J, R+ e( Q7 ~' |
) y; e4 {; ^5 |- V4 U U
keep if dx240<r(mean)& t6 L+ t3 ~8 {0 X* g& y4 j/ t
& N7 }* [1 m9 I) F3 V
sum ddy240& _/ }! h0 \# @
) R4 Y* m) X7 {) l* u if r(min)<0 {
( v, k" r% j: s* `
! t) W) _/ D1 X: L3 g+ n* W keep if ddy240<=0
% e1 H' T6 B! J' i. a7 ` 1 b3 w3 Z' s0 d2 h) t1 F
count9 i# |) o$ M. @2 J
4 W& P# N- b+ Y% k# D2 C$ _) E: L
if r(N)>2 {
. J8 f3 ?. S/ z9 Q0 y* e8 c% W+ L+ r
% K* n& `0 H# C! e0 s! `3 v pkexamine dx240 dy240
1 c0 P+ b, r4 [1 w ?( J# K1 `% c' O0 }- D. s
local tempminp=r(tomc)
- R2 i8 d2 }% |& A/ S. a restore
3 G) m5 A$ ?+ t7 T }$ D/ }# v2 l0 _5 O ?3 \+ a* H
# i+ p! o0 a. P$ N# `5 E5 f% F1 Y else {2 R* [6 K2 h' ?! `& g2 c, C
^; d+ P% S4 }$ I, d4 J. R di "cannot find minp"7 J0 u6 X+ a. c/ i) s3 L* f4 _
/ N* o1 X3 P& K
restore
' N- H6 D+ I; E/ x sum dx240/ [7 V& K0 d. u! a2 J
local tempminp=r(mean)
: n" p+ [3 ]' s7 u: ?3 }! \
( B, R5 Z- @: l# \ }4 c) p, F! `- b K
}
# f7 W2 c0 G0 I6 q else {) t U( T; q/ \6 d6 p7 p9 h
( f5 r, u4 ]) @: _& `2 r
keep if ddy240<=r(min)
& G m* g2 W; C) K
1 X$ m6 C2 |3 h8 Z! m L sum dx240
, I: P( R- x3 G8 v7 o! F$ w ^
]4 N: P2 q! z2 m) V' r1 H4 o( h local tempminp=r(min) i1 X; m4 n0 i; u9 A
restore 1 k8 I9 q, N% X7 U# l
}
& Y1 h0 d' L8 r" ^9 G
/ l, F' h' H; m! M' v( o
3 |% Q, s( b7 Q7 Q8 {7 g( N+ p; Y/ j5 F
gen minp=`tempminp' in 1
W" W, Q2 o0 V" {. w5 y1 y5 n *240 minp
3 s! B6 V% Y. r, x) p. C# M
7 W K+ N7 x. D2 w$ {& a4 K- w! y# l( Z' n/ P( i M! u
4 C4 Q! m" K+ k: e preserve
% u% a3 u( e0 A3 A& ]
: B M' u1 J% V% h sum v5 [aw =avol]
. W4 c4 R. p/ R9 |/ i/ { 3 Q7 n' v9 y1 l
keep if dx240>r(mean)0 e: T r; P0 A& x5 k r$ D
9 I) E5 }8 I6 K R r sum ddy2405 d2 N, {; K, b8 S. V: _$ p
0 o0 X8 Q6 n4 W if r(max)>0 {
( P! k2 K* L3 W: x r
5 M; z: ?# M, L, {2 P) r( d keep if ddy240>=0! [& n% F7 Q, N A
# {; g$ Y$ K. ^! J% ` count
$ h4 y S4 ^' W) r + G! V% C: W8 p
if r(N)>2 {
4 O% t- R/ \! Q* O- T8 i* z; g) F ) `, @( S2 x3 A8 B7 ]- [' l
pkexamine dx240 dy2408 k/ v5 i) s; {- W( j5 q# g8 `
7 [9 k: j M8 X) {8 z1 }1 F' p local tempmaxp=r(tomc) % ~! m6 W2 M$ K" T# E
restore 2 O7 @5 K9 T: l& k
}, }8 j+ {# ]3 N& {& S7 s9 |$ S4 A
" A! i1 A0 ?6 a8 o! l8 {7 @' N) O
/ | P* F, {8 C# h else {
T Y* h7 j: h+ ^: E! P; d restore
5 |7 {" Z6 i1 m9 f8 z# o di "cannot find maxp"& y' m& z4 E& J. x' \5 @' d6 @7 C- K
" @! f+ t; U b* l' p7 n1 Y Z0 p ' d' |) p3 U: I) |8 K1 S, |6 ]
sum dx240
7 S' @7 V) ?8 `# u" y local tempmaxp=r(mean)( l# Z4 o5 v( ]) e# j! s+ n
# [7 `( ^3 l$ D5 M" M. Y1 y1 n }5 [! x& E" D/ w. S4 i8 M
6 E, a: x" f2 X: `# A! x }
& z8 T' d6 _! ~/ K1 l $ m' ?6 `0 w* d( P* B& N
else {
1 X! L8 p4 z7 D! r" H9 A " ]9 g) B* L% P9 X; l' B6 v
keep if ddy240>=r(max)- P- i' r. E) I4 v" [+ f
5 h6 Z2 p3 V+ ~ o- x+ | sum dx2407 e- X& C: z0 _! o
- Z# W9 e% i, T" \# N
local tempmaxp=r(max)
0 l( A' w& w* b+ m3 t" ?8 G restore 1 x% B1 k( P+ J* i! I
}
% [9 X! S2 U; E- i1 ~7 X) [
6 x$ b3 c4 Z, {! d0 M, B- }( L T$ K; A& y
. w& X& t" b5 l; @
+ A# c: q1 [1 u& p m: C
gen maxp=`tempmaxp' in 1: ]+ ]& u0 v* Z6 l# ^
: a: B7 R8 p5 k
*240maxp6 Y/ }- ?& }6 B; X4 ?3 e7 S# j
. E: z2 }( o; i7 B3 u ; E. u% {6 z" V, d- i
*-------------ddy240pminp左侧高峰值-----
7 v2 T/ m, e8 n e9 d) j- N
8 {2 q0 e$ M6 |: w$ ~. {0 E preserve 9 u7 E9 w0 ~: e: w2 N8 M7 ~
5 R* B4 _4 O% M8 Z* M
keep if dx240<`tempminp'+ A- ^7 }5 U M5 S: @
y9 ~4 [5 g4 L7 j8 ^% S# M z% d keep if ddy240>01 ~7 `! a* U x
8 |, g* A: a% M; l0 b# g
count
+ e2 K' L. ]! @, w O
0 \" ]8 ^7 Q0 ], J& k if r(N)>2 {
* Z+ N7 `/ r! V; Y" h3 A " K3 ]! L' ?& [, _; l0 c# }
pkexamine dx240 ddy240
& ~8 {/ l4 z" U7 w) W. q, L/ J! _; r ! e" ?( A, i: q' i# H/ X; d. H
local tempminphddy240=r(tomc) 9 i2 N3 w6 P3 s2 p3 O, z! m
restore
4 Z. ?* w5 s2 t% ~9 i# k6 i }
0 d1 C" |& M/ o! f6 D+ f
0 ^& K4 K2 _: p+ D5 {6 J( l else {, A. N4 ? m9 e
restore : g& K6 i: F' d }2 C
di "cannot find pminphddy240"4 `/ a/ T! l, i* w9 m, _
8 m. ?# Z+ @. e4 ` 4 E3 D4 [! h) G/ j6 E
sum dx240
# E* l" a- K3 J local tempminphddy240=r(mean) ( G4 o: t1 O3 ?. H
* P, j4 Z1 w5 { c5 q) o
, A4 c! h5 b' b1 p: o }% ~; V8 m, D. ~
7 ~% r, L% d( L& Y. P$ x
1 Z7 S0 B! y6 J# t
. {. `0 s+ ]; o 1 T: j0 \% E! A( l0 U4 ^
6 ~7 l6 ?+ C+ K. H0 \) B
$ B5 e7 p+ h+ ~( i6 A; m8 L gen pminphddy240=`tempminphddy240' in 11 N! f3 v; g+ }0 C3 Z: N' t
3 A4 e4 T+ N0 B
* j9 i! z- r" a4 O( v4 Q( G; P
*-------------ddy240pminp右侧低峰值 -----------------3 c% i( V4 N: {+ A# ^3 c) v# z- S( ~" h
preserve 2 M N- ]' j6 v8 G
4 K: F/ n; I! d/ W9 }6 [ keep if dx240>`tempminp'
% P1 K" e1 b$ L z3 ^: F6 U 3 @6 [. \7 @% Y
keep if dx240<`tempmaxp'* P* \4 M+ H1 }5 K" \
* v! ~) u( o* }2 W" f keep if ddy240<0. B7 \/ m, s0 c0 a7 B( T: X/ B- M
3 a: N9 N) B& Z' u! b; l
gen temddy240=-ddy240% a2 n& R8 U& K' U# T2 Q% }
: M% S; l9 |& r* ?4 U6 Y count/ p; p1 a& A1 L6 G( p
4 o, h* r# e- ~8 Z: K. j
if r(N)>2 {1 f" A, V9 `/ N$ v1 x, S$ a* K4 Z
* ~# e/ ]. C0 P0 h! V. }* M) k
pkexamine dx240 temddy240
; z3 m6 S h6 c% x( T * F1 X5 N5 d& l$ P$ E+ _& H
local tempminplddy240=r(tomc)
/ j; `/ ~0 X0 Y9 L3 J) i5 h restore
9 E+ J5 a3 V# N+ e3 `' p, x }; W; n- ^6 H: K+ ?9 }, K8 i
! n! W' j2 o- X. w else {7 M6 ]) J3 L6 m, @" h
+ |( d: C+ ~; \4 ?2 k: X di "cannot find pminplddy240"- N* V! Z; B' X( v
restore
4 K6 y+ [* \1 \% a) h/ Z( A& _ ' E3 _/ T% A, }
sum dx240
3 y. }; ^* Q5 H$ E8 R% y9 W6 j. W local tempminplddy240=r(mean)
* x- M$ R$ w+ e , y$ A! T4 [2 J @3 y9 q* L- u
" ~2 |& B% _1 {& ^3 l$ T9 B }
( d% S( U5 t3 C5 t& R
. L7 L5 E4 Q+ y# |4 E 8 [9 _3 @1 v5 X
, {" Y4 g% Y2 H6 L# d7 `4 |6 c
: K- C! n, g: a8 D$ i0 {
' u% N: @2 z; e, x5 @ gen pminplddy240=`tempminplddy240' in 1, C0 x7 A$ R6 r6 L: b/ a8 p0 f
7 A. c3 h$ ~ B% S4 [- X( G- C+ s5 a *-------------ddy240pmaxp左侧高峰值 -------------------9 P: @ L% s- ^: [( D
, F. k" O$ ?7 W6 P. ~) g0 L( w preserve
, {& W, r0 p: e: K, P + f/ F/ A8 ^% r& R) R, ]7 b
keep if dx240>`tempminp'( s3 w; H' w; r% a6 a4 t
; `3 L2 f- ^( \4 {* q& w6 U# G: B! x
keep if dx240<`tempmaxp'
0 d2 K) F2 O% Y Z; u# o# i9 B1 S6 S
+ n& ]. c+ p) s1 f' `5 i9 A keep if ddy240>0# R+ B+ Q6 I: C1 r6 l4 k8 P
count
& g3 b) [& F1 M9 R6 _# D : c. [' ~: w! {8 m6 h9 q) B. p
if r(N)>2 {
5 W. `- t5 m) [- M" | ( _& r" a6 D4 B3 C- T
pkexamine dx240 ddy240
$ d; d( {' n- o' `
. C8 h/ E6 O' [. {) E local tempmaxphddy240=r(tomc) . O6 W& E ~1 I$ k$ N* a
3 K/ n0 [) n6 Z
restore& \. k3 {4 Y$ Q; C, P- Z
}# d/ S7 J v& ]2 J; v
. J: ?* X X" d- A: P
else {" Z) ^/ W6 k& G/ Q' a6 C/ X" g
+ k% c# v: @; f1 U) r) ~% ~5 p& I di "cannot find pmaxphddy240": {/ E! B/ R6 x: I
restore
1 B0 m' W9 k' D* O
! t; P8 V- j! m0 E( d1 s( Z sum dx240
" ?; i( M+ Y7 D$ k/ ~! w local tempmaxphddy240=r(mean) 6 Q+ b! a2 ~/ y7 r6 I
2 |; L' V' r: P3 x! k
: X3 U$ H9 i8 z/ g( `
}8 m) u3 a% z O; h: J6 \
! F. b7 o; D( [* @
5 p( F4 d# o$ ~) e
1 v% i$ s! l1 G, Y) q
- N5 A" P1 A- o# d, D: k2 c9 x# u
; ^/ J: T1 z! b ~+ t+ J % C8 t4 N2 v* ^
gen pmaxphddy240=`tempmaxphddy240' in 1
" ?7 u; ^% K) P4 P / `9 \' z0 U' E9 v; d/ v0 L* [
; ]3 R# ]3 g7 H *-------------ddy240pmaxp右侧低峰值 -------------------& L3 ]" H/ E3 f0 r
* n2 }: l: L1 y4 U6 o0 y preserve
; [5 L- w# W' ?, H; q* M " z) e5 ]+ A& \1 G$ v5 [
keep if dx240>`tempmaxp' ^+ }7 M* \2 U$ g
% l) H% D8 e; ?) C: e9 Q% n
gen temddy240=-ddy240
$ T* C; d3 f) n/ |! @: v1 Q 5 z; a5 ~% l# G- S' E# l- h
keep if temddy240>0
0 c0 K& c' D" m b# |, K 6 L9 ?% g9 P7 ^* ^
count
1 ?5 n$ c: R7 w$ M8 W: o 5 r; ?( f) z% d: B$ [, C
if r(N)>2 {5 S* {) a( W: P9 Z
: f0 ^$ E, r( T+ h8 {0 `8 ^ pkexamine dx240 temddy240: N9 v. v/ S7 |/ _5 Z
$ @. A) V( Q$ Z3 G. ]# T# n& _$ y local tempmaxplddy240=r(tomc) 2 `. Y/ ?" w) y6 z2 K2 L
restore
) x4 J, [+ K0 D7 _8 P2 I/ W }/ ]" s% E8 @; @' {/ ?
6 V4 w& J& a% h6 A6 c: L& b else {
. P3 C9 G6 s9 D6 ?0 t restore
# R. v9 s" B. K, f5 o di "cannot find pmaxlhddy240"
- z' h, e4 Z C5 ?, `! M9 L) E " f& _( t: ?/ I% B) P
3 o7 j. P C( Y+ N/ x
sum dx240/ ]5 L6 ]9 ~. A M% s
local tempmaxplddy240=r(mean) in 1. D% m$ `& q3 l8 U
" x' f0 P2 X; ^( b+ d / C, ~2 ?7 w( ]6 `! k0 r1 ^+ ]
}3 W/ w$ f g7 W1 z$ P
' `% i$ G4 ^2 |- t& U, [. i3 } 3 Z9 O# y! Y1 s( C/ w6 i# s/ b: v
1 V' e) U3 V8 k: N0 b
; L( Q% }( [3 O7 h" G
j: ]/ e" x' N& T w
1 b5 I! N5 Q% A* S gen pmaxplddy240=`tempmaxphddy240' in 1 N K+ h% ^( c
5 B- d M1 a/ x. ~" [ *-------------------------------------
' u: O1 Y* Y1 D8 _
$ v) \# O- \# \: u G gen price5d=v5 in 1/20% y3 v$ H& j$ K0 @# _
) U. x% X l. ~, D# r
gen price5yy=_n in 1/20
, L0 A; @3 _( w* z/ m : g% a" R6 [4 @) I3 y
gen price5y=price5yy*(dy240max-dy240min)/20
$ ?; J& b! Z2 I5 [8 n& E
2 c" t" H, {2 X# N. o *price5y &price5d4 E. D! V4 M! d
" s% @$ ^7 O& |6 t6 V2 [; S
gen priceny=price5y in 1
8 F( C$ w7 e4 M, q6 r2 W
, ?' s/ C/ a8 p0 @3 x' Y ^ gen pricen=v5 in 1
/ S/ t/ T/ o5 @, F
! ?1 ]( r# S: F! g, B- E/ X3 C# [ * P2 Y' E* D0 } s' R1 o; B
*priceny &pricen/ z0 F: ~$ u: p" [# _4 p$ o
8 l& x& {7 f6 E) x% }5 R ; m1 S& {' X# ^7 D2 Q' J: u
*-------------------------graph------------------3 P A, i; S9 F m/ | J: m
) T6 B3 ^- K- B. 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)
' U! Y3 w! r b, t6 j) g# R! |2 z( o0 S& r
* ---------可选项目----------------------4 x( k2 i) W* `- L0 S
7 O% K' ^% F E0 `}+ L8 H+ n+ X- p/ h
end
( V9 Z8 S1 Q& H; R, N |
|