|
|
改了一下,这次运算应该没啥问题了
& C: q: [& o! S
* y2 T2 k9 q1 O1 s/ ^' Y
8 N7 z1 y! F! s2 Z, O; d( P: pcapture program drop hello& w( k% d- }: T, {: o
- {9 w, T q& W/ K1 n. O( f Vprogram hello
# e4 V# m Q4 Z, c' D7 `
) L m% ]" n' I quietly {
3 B/ Z3 f& F' U
' o6 y: J) @: D, l6 lclear
; n: J3 r W3 e. M' T( L3 F; {" b! s- x2 N0 z
cd e:\finance\stock\20110101\source1 J/ N; _8 _) G. d# K
7 u' I) m3 r: F' u( Y$ F
insheet using `1'.txt
" p' V% `# C1 {$ G A8 g8 P, w) Y+ s) E
keep if v5>0
; J0 r: |1 w$ j3 g; h d. o5 V. S , k- P0 f3 ~2 `; V) i3 J
gen vt=_n
( R, c5 e9 G2 ^; Y# i' Q
8 V8 C# X; r- `$ ] tsset vt0 ^9 s6 B& y1 v. z3 x
# B7 L t( m5 w8 I# ?( Y gen zf=D1.v5
& P# d" [( a; u& r+ p$ _- T# g4 ^ H8 J, l/ ]; g
gsort -v1
/ U2 e4 S+ `3 z5 y6 z5 m
' Z- {0 Z+ O, J gen avol=v7/v5
5 t/ z/ g2 J) l2 \# M ' [1 o9 H/ F, z* s, ~: \8 h
keep if avol>07 C3 k' u+ f4 G" r
# o9 v2 Q4 S; U$ W
drop vt
) g5 U* i/ u$ q" E8 I# W7 z
0 y6 K, y) U4 A& T( T: Z; _% k1 k gen vt=_n& R3 k x# j8 S2 }! I" h* {
* i' E( n. ^- k- U tsset vt
7 i/ {& u5 E2 {+ y' g $ k: W- @( z7 E
sum v5 [aw =avol]+ J7 U) R9 O- X" g
: b* P$ Q) V5 q) a6 x
gen amean=r(mean) in 1
; }& ]1 n* `6 k7 r0 j: \: x- y$ U5 Z, n3 R# {
9 m: p+ {% k0 b O' R) u * 总加权平均值 amean$ }" [! ~2 ?- D5 ~. s" F
4 H( n% A( ^" |2 \
' k6 d3 s: C; I S1 y keep in 1/240! \" k' p( r6 N N/ C/ [- _
# L! O$ J) n5 ~2 v: J. ]; J6 j$ l, { sum v5 [aw =avol]! N4 S( G! g9 J: [ s7 }6 o
" G" i; I: c7 f2 ] gen mean240=r(mean) in 1) A: ?0 n' m4 D( B
+ o: o! M# o( T0 J7 f. n+ p *240加权平均值 mean240
0 q7 Z! g7 O* u5 E $ B3 |8 Q' |% I O
set obs 500 . r9 J: A( a: k, O$ k4 ?
& R' E1 z" e: B0 E r% [# M kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
4 Y& r. ~' o: ]& s3 ~
# y, w* ?1 M: n4 T *240 kdensity(dx240 dy240)% q! J! R( W6 i4 V
# C. \' Y) X9 E3 M6 ]
sum dy240; z7 G/ L( Q' ?5 k, }" U
6 a8 Y( E7 [, j( p. T$ B
gen yxis=r(max) in 1
/ A1 H' q1 ]* C8 q. x/ h( L 2 ^( J7 a# [ o2 ^
gen yxis2=yxis/2$ V: w3 T# ]8 G5 Q; B8 F
: P4 u4 h9 [" d! d0 c! \4 X *yxis: @! j2 J8 |; H* F2 z' e9 M3 g
" w/ ~/ r( v! C/ n" f8 T gen dy240max=r(max)
5 B3 d" n K# B! p" T# f$ E 5 A& @) ~' }& g# @
gen dy240minp=r(min)
5 n4 a, k' L% z' T7 t+ E2 j 0 K& f( m1 u( A* N/ d% D" T$ q
gen vtt=_n
. d J* o: Z0 y4 P5 q5 ?' B2 x6 [9 z; }' k2 v
tsset vtt
: E2 S/ Z7 I H$ Y! e+ L, D5 g: G9 A
3 Q: p. G* r% g" U/ z8 u) g, [ gen ddy240=D1.dy240/D1.dx240
6 h5 y) O% D# Y
: ?1 b. r8 j$ [. ]" z0 g$ N sum ddy240; h1 E+ o/ Y7 u, F$ B: Z; f! I
( V I; I$ \8 ]( L0 F2 e) A
gen ddy240max=r(max)
8 K# S7 K$ O# \8 x: }
" i; F7 e. M9 @; |& p2 u1 g- F gen ddy240min=r(min)
3 B: ]" P! }* t1 { : i- C1 I' ]# b4 b3 R6 H% ]3 B
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
$ j* M8 @- g! W$ h8 H7 A1 F 6 {9 M; E( N! j) I# `# g
sum ddy240g
' T# X7 t; V* A6 ^ Q
" p _3 \: K$ q" ]' l7 w gen yxis3=r(min) in 1
+ [' A1 Q! f% n z8 V8 ?8 Z' ]" I
; S. ?1 B, E2 F/ h0 Q' W3 I gen yxis4=0 in 19 c: [: J8 g) i2 i1 M( N
) V# w8 I I) c: c: v
*ddy240g 5 S; h- Y5 r4 t1 |1 O
' |% u; W# `1 v, j0 c7 \1 ~
- h6 R& p Y% I& n' M$ ?8 T+ M8 y preserve
' @ { h; n# ^' w5 q9 d/ D3 z+ @
- _' c1 L+ l4 m. ^3 R: n sum v5 [aw =avol]8 |. T+ h8 A. [: I) [9 d) q
" l+ ^8 ^, }% N$ m. j, Z! b keep if dx240<r(mean)
, `- m/ C0 P* U1 {' X8 h
0 k& b- Z0 O4 _! L$ h' H sum ddy240: G/ ~. F7 H5 K. h: e
7 D* O' F5 f6 C1 [5 c" d( S4 n# [ if r(min)<0 {
! C* T; y- a; N& [ , m1 [4 \% w8 Y: N6 i
keep if ddy240<=0" Q2 f. F. z, _% f
8 G$ X! U P. {3 Z: ]2 G count0 _+ R; {0 ] L$ P
7 ? u; c% _1 c# G7 i4 v if r(N)>2 {
) K# q6 B& R. }7 h ' a k( E, j& I: e% ^$ z* X
pkexamine dx240 dy240
4 s$ Z X- e# @' |# B9 ^5 r
6 s& l) Z8 J1 H( L7 t local tempminp=r(tomc)
6 a0 w9 t1 R. u! u5 Q( S. ^ restore
6 R* ^* {5 J, G/ B }5 s2 l& Z5 a* }# V. {
! ^8 ]& g8 k4 X1 W) [
else {( T4 |" _# r8 D4 N) N0 X% c
. g, D& P; }1 H; z3 q4 r9 {# K) ] di "cannot find minp"
7 d# P. d1 h' k8 F% n $ S' {0 { P9 r/ i; U) `2 K- Q
restore 9 k" w8 t+ \% {* q( A% ^$ M M
sum dx2409 E6 @2 v- i! c1 \$ e
local tempminp=r(mean)' h+ Q0 ~5 P8 F
5 x: _7 M% T" W" f, e
}( Z/ V8 O/ L7 z" G, D4 l* r: i# J
}7 r1 ?$ z" Y" H5 k
else {8 |5 {4 Q8 z! K) |3 o7 e& n
7 K0 L; f* Y1 y6 Z% l9 c! \/ [
keep if ddy240<=r(min)
2 a6 U. K" Z$ v* F9 {( ^7 M& c1 z / k, m# K& w$ l. x
sum dx240
# H/ F) N u c6 P
4 r3 ?, k* W4 z ]) v; Y! a7 S. Z local tempminp=r(min)
. e. Q5 K( T- y! x) @1 ~ G+ L1 X6 _# W restore
& p A" K- v# E6 ^+ \) B3 G }
8 ]6 j) H8 o* o( S/ m Q+ m6 K
1 S1 \& v* z/ `! ~4 Z
! S' @9 e/ A( y6 m
7 m; y y, P; c& N1 L8 ~# N# @, b gen minp=`tempminp' in 14 {4 m8 X5 P$ y4 u3 I4 V$ j2 @
*240 minp
0 y+ B& r+ F5 z! d2 |& `: u. l/ d4 ?7 y" Z% S
8 u( R/ v8 H) ~' D0 r
* E$ }, G% {: W. e! d+ n
preserve
6 \. B- t. c; b- w ! n/ f& Y8 a. A! R! s4 e
sum v5 [aw =avol]( m7 \; H7 `* p3 c" k2 L$ t7 b$ w
0 b, Q2 Z" r& L1 T6 M" N3 @ keep if dx240>r(mean) M5 ^$ H. O$ I( D
9 T. F* J7 L. F/ t% \ sum ddy240& l5 ?* p, K9 K0 ?# T
7 A% l( S( }& U if r(max)>0 {- S% Y6 s1 \4 ]" c
) }6 Q' V- S$ \8 ?5 T1 I5 L keep if ddy240>=0% R- u1 g, C& j l, p1 T
8 b6 |2 Y" i0 |0 ^. s, c( Q$ y4 |2 _- P. n
count
0 J6 r' T5 J- e; \& ~
2 L2 B: ? H p2 q7 s2 S g& O if r(N)>2 {4 p; E' q. a0 \% r
- S! K. N9 L6 ^7 v& u pkexamine dx240 dy2409 N* H5 P7 m+ e p5 `
! v. ^1 K2 o' v, y local tempmaxp=r(tomc) 8 |" @# u4 a1 q s
restore 4 F6 E4 n6 P; U' w2 A+ E
}
* W9 `. o2 f' ~" q% T $ i! E5 q1 t8 z* v
0 X# ]& L* a. M5 I) K3 N" ]
else {7 a/ Z8 |! [7 V f, N: a
restore
& G; k# O4 S L: | di "cannot find maxp"7 |3 A5 U; z p: n* Y8 ^
0 A$ ^3 f0 g. I9 w
+ o3 A) S8 U9 y6 C0 U$ u
sum dx240" W/ l ]# |5 f. `
local tempmaxp=r(mean)
$ W$ _: u }" n$ w) D9 L* V, v! R4 ] 3 M" W' q2 |/ a+ A) F* W
}
/ s* G8 J' ?- D! _9 L, r; o7 N0 C
# S7 l: s$ `9 M- L2 h }
' ^: X( c0 d6 b( P( e$ _ [
' T. a1 O u1 T" [ {# [9 F/ d else {8 K! ^+ t- G9 t$ _1 k% V
2 Q( m) C9 O3 e
keep if ddy240>=r(max)
7 C! E5 H9 B) S" z+ d b) P
n4 K3 T) P6 s* R: c) ~( @ sum dx240
9 ~% `! {" O! | 4 r! _5 S' E' e3 R) O
local tempmaxp=r(max) " h; G7 @: M3 Q5 {
restore
/ D% [% ]2 B$ n+ O N }
1 I: p4 M+ X: M) r+ P1 Q
* {3 z! M; }$ Z) m2 M1 z7 S' Q. c9 r3 L5 ]0 A
* e, n' y' |9 R) J; |
6 I3 h( G! u5 p- l5 e0 z9 R gen maxp=`tempmaxp' in 1
! s4 c/ q: I' g& g # e% g: U/ w9 U. O0 Y8 m& [( v$ _
*240maxp
2 a2 v( ]8 p' H: G
* o5 f: p7 g0 I* s' l6 ^
& C8 A+ T. h E8 q# \9 ] *-------------ddy240pminp左侧高峰值-----
" s( T) ^. a; z. A& F 9 }+ C# Z0 N4 `
preserve
5 `3 M6 g+ {( ]. M0 [! V6 v6 `4 s + E: M( y% ^* d5 C7 r; l0 j
keep if dx240<`tempminp'1 _& p: j# t7 B" o6 B2 h
* b2 F5 R+ _) T2 h9 l* ~ keep if ddy240>0: \+ m* B2 _4 i* w, U/ J- o" @
, h0 U3 T9 U+ \+ x: R
count9 m3 c* o. H2 e: d7 I* R; n
8 Z5 ? ]9 S. j8 p" Q
if r(N)>2 {
K0 d9 ^0 W. \* v ~0 ~; x ' G" m9 n0 z5 K7 v6 U2 w
pkexamine dx240 ddy240
& d5 ~" O/ r: G n 2 `1 L8 w& }; C
local tempminphddy240=r(tomc)
! y+ C2 ^+ I/ y N restore
6 F* m1 i [. W/ _ }
- C. \& ^+ ]( H$ c7 f- b
0 p* o5 A. X# B* P% g else { s$ |$ D0 a& R5 x0 m
restore + J* ?" |" l0 @% w
di "cannot find pminphddy240"& k- T! S# b1 V9 f- T
( B/ ~4 Z& }6 h
6 G& U% B5 D8 _1 b
sum dx240" r% ]% B' _# z5 y5 m
local tempminphddy240=r(mean)
9 B3 l: b$ H" @/ E, w , \2 I* y/ y1 V) c
, E7 [! S8 x m. B
}
; D! b+ }3 c6 z% T: E, m+ Q
8 f; i) i) K( S' [& T& K) U/ Y$ ^ 5 a6 v, [' _ E8 z
8 n; _) a) g [3 y( }& L- ]
0 R3 u& B3 T$ s/ E
; a4 ?3 _+ v' I/ I4 W9 J0 ~+ K - ?9 |; q: |* I
gen pminphddy240=`tempminphddy240' in 1. _' u: X& j/ E! j
2 I( m) p5 P5 h
p$ |, w& x3 |- u) ^) C8 R *-------------ddy240pminp右侧低峰值 ----------------- v! Q$ W0 V' `- B
preserve
* F7 h. ], [! x9 y+ b S+ m5 |; E! M1 ]- |& S) N
keep if dx240>`tempminp'
) a+ r6 Q: W$ z* j* f; m8 f
. L# n" `! R4 ~6 n+ F keep if dx240<`tempmaxp'
- j% u8 {. e2 @" S ' h* E- x* R' U) A
keep if ddy240<0
: L+ s2 d$ S6 E' R
7 ?1 {3 j0 }% c4 @" ^" c! p% P gen temddy240=-ddy240/ b5 `" q& s3 |1 L2 a; x
+ m( p/ R0 Q4 x% X$ |
count
( {' a& [. ?; p- p6 I: c : y- ]/ @* ?. s5 {, R: h, R
if r(N)>2 {
0 ?" m% D+ N% o2 F
+ s+ {) z6 O1 q pkexamine dx240 temddy240
7 x" N7 V5 O6 D2 r- @/ @1 l- H
; V3 O( i- S4 f0 W( \# N5 I8 S local tempminplddy240=r(tomc)0 {% I/ @5 o6 t/ ^* D+ r @
restore
. s8 l% r$ {: r6 ~- w. o/ p0 M } |- J8 k; \! i4 O: \, @
) d' P* g0 |: {& Y
else {
! s) S. u+ g6 u/ E7 B3 o% z
$ C0 [, W8 ?: V8 R di "cannot find pminplddy240"
9 f3 Y" I8 g; G% Z" j restore
0 R+ H# z: y' _$ D
# U$ A8 S( N, ?( z' x# ~2 \ sum dx240
4 L# b; R, V% E; g" |* x local tempminplddy240=r(mean)" c+ v; C- o( y" a+ N
/ J" c+ ~; [! h( T0 W* a" F
) H' P: W$ y. A }# q; J. u2 X1 s
- C) x/ y9 T. W1 j9 z4 o1 Z! T9 Z5 ] 1 E8 } [2 |( }3 f
* U( j0 H' n" m2 v, }! g; g
5 A( D, d, c. U
9 M+ p L8 }0 B T4 `. q2 y gen pminplddy240=`tempminplddy240' in 1
+ E/ m; z4 g; z8 p ; |; y0 R0 {+ u2 |* x; U; k6 P
*-------------ddy240pmaxp左侧高峰值 -------------------
1 t: R/ p8 D, | + [8 J( P n' P7 ~2 a! A& U
preserve
) t& a" p( \' |$ V" q. U
# K1 V6 p7 {# K1 g- e5 n9 ] keep if dx240>`tempminp'
9 F' Z- C( V, k ^6 w 7 Q, U; }4 v1 d; i
keep if dx240<`tempmaxp'
, h0 ~8 i: y. q M2 f3 a ~- E N- Y. x/ S+ e
keep if ddy240>0. V% E- \& p$ ]3 T
count8 ~1 m0 E2 B5 f& M
$ E" b$ {0 b% h. R& l1 ^+ H if r(N)>2 {: {2 y, b+ ~$ E# ]: }. f" A4 j
& Q Q" F% a: ^. v; j `8 S2 \" j
pkexamine dx240 ddy240
g/ K3 r% U, e4 F; j" ], k f 6 f$ {/ E# }; Z* D; L
local tempmaxphddy240=r(tomc)
; u/ m+ ?- t9 j
- ~. T/ l. q% O restore
/ b3 u+ c. t0 @: u. z# y. G }
$ { R* _1 g5 \3 y 3 S* K' |. A. g, S1 h1 O c
else {
9 _+ p8 w/ y$ }0 L. E
1 E; \: _ F# q$ F di "cannot find pmaxphddy240"
6 E8 {2 | c0 b restore# Y) c# d! U3 G# }" a
/ z* o5 S( K n
sum dx240
' o f f# I4 { local tempmaxphddy240=r(mean) 5 c" {. P4 L% b' S0 Q# A
) y) L; h3 L8 W# v, }; M
* T O* j& S, q }
5 b' \9 S6 ~ G$ ? . x! X0 L7 i' e; b2 n1 I
7 i4 R) d; B4 _! _, W2 R! o' f
7 Z. P2 w3 M+ L( o
* H9 b, i, b I+ N : C( l5 o( B6 ?2 F) T
# }" Y- ?5 t) J$ ?* H gen pmaxphddy240=`tempmaxphddy240' in 1
U+ ]( S) c# j# P 9 M$ [8 z# a" a- s+ _2 [2 n7 [* J2 x
$ C2 V6 u% J2 ]( p2 D *-------------ddy240pmaxp右侧低峰值 -------------------+ {/ r% J6 e% s7 k2 d6 d( S
9 g& |3 |2 M8 k& o: ~& n8 H preserve + k3 b+ @3 d) _3 A9 w
0 X( q) }! u( w5 {% x' p3 \ keep if dx240>`tempmaxp'
- m# D, O5 }$ S4 C) u- |1 O
& k8 W9 A1 y' U! Y gen temddy240=-ddy240
2 g+ N0 _2 T" h( }
9 x. j# A' y- ^3 ]* X keep if temddy240>0/ n2 s; C% j7 W+ I
) W4 }/ E, K; u* k& B# e
count8 G$ ]- \& {1 {: U& A
- j2 ^9 g$ R1 z. }! ]; p3 i
if r(N)>2 {
; p/ v- l F6 T0 r% [" j 9 |! ~: a) w7 f; H# ]/ [
pkexamine dx240 temddy240: B4 Q) E. @2 H) X4 M& e3 D
( X' X) E7 q8 S. o' j" h3 J local tempmaxplddy240=r(tomc)
' L1 U9 L+ {4 y restore
6 X0 g+ ?' X, P5 ]! } }- v1 Q* R1 z( g7 \1 `0 e' _
0 Z2 H2 ?1 b. D
else {% \1 M' G/ p" { z, C
restore8 y2 I* p" `+ o1 a( c, y# j) V, ?9 X N
di "cannot find pmaxlhddy240"& H+ T5 P4 _: b y7 T
# m& |* a( h$ z4 G- X. v- s* B
, |( ^' z B* l sum dx2403 a! W& h" y4 L- S; ^' i- D0 A
local tempmaxplddy240=r(mean) in 1& ^9 m) Z( R* K# ?* i' A% X
! \* d1 E/ ~8 i! s
+ m- T7 n/ y4 f, ]$ l }
( P: Q7 |3 _8 [2 h; ^) c
3 p8 U& p/ S4 D* Z4 h$ e
! M! _ q8 x6 u9 s- b6 \% ? $ |' m' L$ Q T1 I& ]) j
% x! [0 t( W# `5 H" u2 y0 k, F
+ q" U$ c# v+ Y! C' j! C) w; i
" o2 K7 f% h( m( z0 V1 I
gen pmaxplddy240=`tempmaxphddy240' in 1
& E7 ]. l8 Y% l' |, _4 {
' l2 ~+ s+ ^# s. ~8 P *-------------------------------------. U$ U# M E/ y1 L( O# T9 T
$ D, I& H' q6 m C
gen price5d=v5 in 1/203 ]7 L* s% W1 L+ M' N8 c3 u' _
% ~9 ], \- r% @- |0 Q% T
gen price5yy=_n in 1/20
: h- ~4 \" v. P4 c1 V, w& J2 @0 O
2 |- d, |- n0 w/ p4 t gen price5y=price5yy*(dy240max-dy240min)/20
. O( O- U' ^- ?0 [* Z ! W& H" Q: `( u4 v- `& I) ?8 c$ ]
*price5y &price5d; g- x7 f& {( a
# P+ |/ ^; J2 b1 _! a' W gen priceny=price5y in 1
5 y/ s' W$ u* v7 m/ b+ S: K
2 C& q' Q0 Y% N2 m gen pricen=v5 in 1) H! J% ]6 V1 C4 `, n
% j0 G2 R. A5 o: N/ o. |
: @! ^- m L/ R6 D4 D' |- u" |: Z- V4 X
*priceny &pricen$ F8 x/ y' r# }7 ^# `4 x; T* N- i
9 G e% n9 O4 R1 S" X# S) A
9 y9 e7 N" U/ ]8 c *-------------------------graph------------------
1 |3 w, l# n8 o" T
* P4 j% J: @0 a 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)
0 C3 v! X" v% h
2 K6 q6 Q3 Q5 U! D* ---------可选项目----------------------
9 O' J$ [2 q# a, \/ G$ A2 [9 P4 C5 s* q: _1 \" [
}0 Z+ H- ?4 B3 L8 N, t6 n
end) `8 D8 M: t6 f% i" ~7 ^( P1 g
|
|