|
|
改了一下,这次运算应该没啥问题了
8 H7 N$ R8 c* u2 e- _; |9 a2 Y" }# E% n+ t- W7 T+ [6 i3 i. g
0 X( L k0 [9 v1 }7 \5 Zcapture program drop hello* j! q% |* ]9 Q0 `
/ k% I, S. ?; g
program hello
' R- v6 C+ I* d7 Z! t3 S X
% p- R2 T- n( X: |# | quietly {
3 m- \' ~" a! @, U+ H z! x9 t9 k* `1 |* y3 T
clear0 U1 D* O% B' @1 K! `9 ^$ P7 d g
* s7 Q7 f7 \7 z* \) d/ a/ n4 c# A0 s
cd e:\finance\stock\20110101\source
* a- P4 l' \( C0 L- b$ `7 ~
* G# u3 J/ e# I/ h, [6 D9 Minsheet using `1'.txt
6 [8 B9 \: L6 S% m( S9 z, d/ E1 N+ z% |+ K0 j4 b( t
keep if v5>0
0 o" O i6 Q. {. { $ [: Q5 y" E0 x0 j( k$ |% J
gen vt=_n
$ a! R7 H/ v# n$ Q4 u: _ j " V4 x/ r9 V1 t o/ `( v
tsset vt
/ |' @* ^1 y& c& h- f5 {' s1 B- P9 h4 q j5 X
gen zf=D1.v56 W# L, \; F: v0 j% c6 P
" n0 _* n7 r* u, V
gsort -v1/ K$ ~1 [! Z; F5 Q1 P1 i
' Z5 j$ j0 B X8 `+ n. B1 n gen avol=v7/v5
; N( p7 E* v% y5 A* K
9 N Z! |7 m7 Y# \2 q- I keep if avol>0, i% w! j5 G6 D! w7 n3 C
( u. f& l- T m* ?; c$ B: @# m drop vt& {2 V" C1 i& `; z1 s& G
* o& _% P. Z6 q7 T gen vt=_n
! n: V# U1 H0 h
. t2 m: R7 T0 L% r) e tsset vt' c2 [, t; n6 @1 J5 j
, ? H7 j0 a2 }& ]$ F
sum v5 [aw =avol]( X1 B3 f+ b; N4 }3 ~9 z
! g5 y2 W3 u" X* O" r A# e1 ^" v
gen amean=r(mean) in 1! K" ^, \( n: @& M) ^
9 U/ O4 A2 |; |1 H- U! E, V1 c
* 总加权平均值 amean
$ |. {4 P I) ?. I+ R
( {; |+ u* r8 r/ A' r7 b4 k+ O W( n# y
/ l! R; _8 m* V# f$ P- T* m9 \ keep in 1/2405 J6 g& E" \+ N) \& t" y" Z4 ~' c
! P6 j4 ~% \, u$ S+ B b sum v5 [aw =avol]
# E$ I6 F; _- w4 y7 Q$ q3 \; v0 w. M. V% G: A
gen mean240=r(mean) in 10 f% D/ r8 X4 R: J
. g) h/ q/ @! N
*240加权平均值 mean240
4 ^9 T4 q: f* ] n * c& P6 a( @1 K+ ~; Y
set obs 500
1 A4 \( t; d( x7 l
+ a, J0 X1 Y, V: ]" i kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
9 f: W9 I" X5 X$ U3 X3 ]
0 s V+ M' S0 Y7 R5 M5 B! w* ?/ D *240 kdensity(dx240 dy240)# `4 s7 m# k& j0 e' P p+ C' s1 f) S8 X
0 b5 l1 w; z* n& ` sum dy240% `( j* }5 q3 j0 [
* ~- D3 g' @9 l' P9 j1 ?' E gen yxis=r(max) in 12 p; r& Q7 m0 U3 f" K$ b2 n* n
5 j, z. q3 l, s% K( Y
gen yxis2=yxis/2' K& e' q- M$ B, h! k
- B; }2 @0 v `9 ]7 ?- @: I
*yxis! [8 \ h/ Y O% o
( a) p3 G1 r1 G5 E& t gen dy240max=r(max)
' X D: ?5 T3 K+ v4 x4 Z
0 P! l0 @' b9 l9 |# }5 f2 C( I/ Q gen dy240minp=r(min)
* Z, v5 B/ l4 l 8 s; [1 _ j; h8 J1 o2 Z6 e
gen vtt=_n
* J! `8 `( O+ \: o" r( l" ?3 m' }" d
0 H$ w# s3 [' {' J+ B2 B! S tsset vtt+ E3 J% T- I- n# U! a
k$ H# ?$ I) Q: B# M( k
gen ddy240=D1.dy240/D1.dx240
0 x' |9 J) Z; Y* u6 p6 B1 o% F- @
7 e4 Q$ S0 `% Z1 q sum ddy240
' n: r! h" g5 G
* b" w+ ]( F. ?, ]. n: e$ E2 x7 g gen ddy240max=r(max)& n8 r; A; g; ~+ J
# B" \# j& L, b6 M4 j
gen ddy240min=r(min)6 ~0 J& s. j$ U' S$ ~$ t
2 ]6 U3 s. k% E7 i. j+ L$ X gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( _& w5 D4 ]- z( H
, O9 U* P' u& F; n9 {8 }+ Z' M sum ddy240g$ i1 |9 L5 j. ]/ l# e: ]
7 N5 b0 V* p5 d% G1 M. L gen yxis3=r(min) in 1
s0 C; `" v$ {+ U6 D 6 n% H0 p& W+ E0 H
gen yxis4=0 in 1- i4 {/ O9 ^" N1 u9 Y
( w5 C1 R7 C4 p! V *ddy240g & t+ L: V6 x |) w& X" e2 w
7 Q- q; R6 H4 k
% R$ e, c1 A C t2 C6 }/ [* }& b( ` preserve ; g# G6 |5 I* Y0 {" U9 \% O, x( r
' b5 _4 x# ~% d$ D7 O! n5 n
sum v5 [aw =avol]
0 Y* ]" j. u/ A, y5 L" F4 D
9 H( O2 p" G1 X! w1 @ keep if dx240<r(mean)
r2 A% g) V9 p9 H$ i 7 J; Q9 Q4 c7 i2 ^' q# {2 n" n
sum ddy240, I% }7 k; |; H5 Q* X* b
' v( x5 R& t' f1 w if r(min)<0 { N0 A( N, E) J) G W
# a# K% d6 A; ?$ |8 o' b
keep if ddy240<=0
: L- W4 N1 V! ~
/ T* P' a! ~ M/ _+ y/ i# ~ count4 a+ z+ Q; c r R( \) o
: C! r( D4 I) e; G8 g# O" H
if r(N)>2 {
( a! `" b0 C5 J, b
5 v- d4 J0 s% s0 i. ? pkexamine dx240 dy240
8 m& F" D5 N: E2 M2 E* u
: Y) P" Y# ?! f7 \ } local tempminp=r(tomc)
, y+ e) T2 C* E8 T restore 7 T9 L! s; e( c# a
}9 q. \) `$ k1 M; [& C
- ]- U" x# |/ U* B; Q9 A else {
% [4 S$ d+ _; Y6 g" h7 C8 L4 ^
) [8 s+ u/ K. B! Q! Z# a: B di "cannot find minp"
4 ^5 K$ e+ v' D0 D6 N2 [) Q6 Y 7 @ Q6 \/ P. x8 @' D- `$ q
restore
0 f3 y: ~* w h! \1 e sum dx240) l: k, Z$ K) I! V @
local tempminp=r(mean)
u7 R5 E% y, u7 e' ] 3 ?* S: o1 X A1 Y2 v8 ~0 c
}
7 g) \4 }6 y: e* O( P1 V) Z }
$ C8 L9 C' [; B$ K, Y& U else {
1 r% a( ^5 V) W+ D$ ~
0 h. B& u- }3 o keep if ddy240<=r(min)( Y3 m+ e1 ^. r2 N' B" v) J
, [* a9 d9 z) `; m5 B sum dx240
d8 H2 z# O, D- z. h% i, m
^ x5 U' K+ x* j* V local tempminp=r(min)
8 V' g5 M' x0 c5 o restore : N* i# p8 j. O! V% ]: ]
}9 x& T1 \9 V9 @- L( c( l7 g
0 @( N( M6 d) a$ F9 {
8 _# r& ^+ s# w$ ~( }6 c
) A1 h: Z. `! ^) p3 S9 M0 w gen minp=`tempminp' in 10 q) Z% v8 ~& i/ w
*240 minp
3 M3 ~$ g% s6 P; x/ Y! d* I5 F+ f
) H" ~5 u, O G4 v) b- p) d* T( d" s+ r0 {: K
1 n& v- Q% \8 t1 c2 i/ j
preserve
. W9 }* d4 p% @' B0 W9 D* p
9 O: h4 x2 x1 H3 S1 o. O sum v5 [aw =avol]2 r _" k+ w6 S- }
5 k- T% Y0 M: f
keep if dx240>r(mean)+ Q; h& t% U7 o$ l
1 Z3 p( u, Y2 _9 o9 D3 }7 B8 n sum ddy240
/ ]+ r: m! l3 S' f 1 A" h) V, o6 o$ L& _% Q7 k# s( i
if r(max)>0 {
' }5 }4 k6 s- ?5 m: V! h$ H& N3 g7 K
, ]9 {& J. P6 U; L: F keep if ddy240>=0- \, g# [- |& Y1 H1 F& N
5 i. J2 R3 A6 d d count- M+ {' x$ `! v. ?! A+ S! P
2 | Q; {' |* v3 J* w2 X
if r(N)>2 {8 Q5 i+ F7 a) Y- w% s$ ]
' D5 v0 b, F& f# P1 D, l- } pkexamine dx240 dy240
( h7 a" r/ b2 z9 j8 [7 M: c) H 5 ]: R ]4 p( L5 a2 O& g
local tempmaxp=r(tomc)
) k, j% y0 m) [ restore I- z5 p% L) S* l1 b
}
/ u% u3 X6 ^# g
9 G1 ]! b; w5 C4 h! ~ * C) ^, |& j5 h. S S. U; g
else {8 P. G% m, V5 d, c
restore
& ?2 J0 o+ E, o' D( X di "cannot find maxp"
! y1 D v, ]; r3 P
0 Q+ i6 p, j- D4 n0 G3 c 4 Y4 m; s7 _ i: \
sum dx240
. J% |( r' R$ h( N/ F local tempmaxp=r(mean)
! W% a% {/ E$ }1 B: ~7 @2 |# V+ ]: c 0 |# |' F8 \9 V5 f/ D1 L- }
}
8 X# l& F0 g! ?) c- U: n2 a
# b' X9 M7 b9 C! U }
1 ^' |) X, h. V# N5 x
4 I; `! P9 i& F4 c else {- ^6 D" ^4 Y" p W
! |8 @8 Y! w/ i/ D% T keep if ddy240>=r(max)
3 E" f8 i/ j n, b' m # k1 A* f' G: R) [
sum dx240
# P* L& P0 @+ v; @ + w/ }" m/ c& R+ D/ F* t9 I# N
local tempmaxp=r(max)
6 B6 M, U+ w; K/ g) ^( ] restore 7 Y8 }1 p9 V' L! r" ^! R9 w
}+ o/ Q4 e5 V3 t7 o/ ^
2 L j0 Q4 B7 P+ `; P: A; W1 D- q5 z* _# I9 _
) }. @; z0 |1 N8 u6 o5 G( F
, }) ~3 H- h8 T9 V' b1 o gen maxp=`tempmaxp' in 10 S9 z: I. O/ j8 R5 S7 i
+ o7 \) r3 x0 X B *240maxp9 }4 K3 I4 ?2 f* |4 d" W
. A5 Y7 F% j$ V% `
& w* t, N: a& {3 ~# @ *-------------ddy240pminp左侧高峰值-----
' }2 C$ X0 B& b( Y
, m% S7 i1 p* ~( F- X preserve
( ^5 E! j- `7 k: m- T ! M4 O5 w5 N- T5 m: l" i) I
keep if dx240<`tempminp'. z1 D; J% B1 W
5 p! n* A5 E" R# V$ t# F' M _$ T; X7 d2 O keep if ddy240>01 N0 R1 v* F0 H' ^
* b- J8 u4 {# P2 z
count' D" j% F# k g8 m! o. C0 r
: x1 o* R& t! c
if r(N)>2 {0 b1 \/ K0 {* Q
# W p, E( o- U! ?* d
pkexamine dx240 ddy240
: e' l3 o. E' V3 M8 s
) F0 G. e" T! ^ local tempminphddy240=r(tomc)
. Q7 M( \4 _4 I% g1 Q3 M2 c) B/ U restore
% H0 h( U1 G J7 Q }
8 N' W, D9 S0 b$ L # Q$ s; }5 k, }- {0 B. n
else {% T* R5 V7 T$ W* g# h2 x
restore 0 S8 E2 b5 f, t
di "cannot find pminphddy240"
$ s# Y5 }: }& K/ k " T5 w8 G# r% }3 n! D
5 h2 I& r- ~: [
sum dx240) V3 M8 Y0 `3 f' o3 L4 v6 r3 ?
local tempminphddy240=r(mean) 4 o( t8 W" Q2 V3 s6 a4 z: S' [
/ Q P; E6 X! E! L5 ?
8 y( t& m& Q* O% W8 d) D$ x2 Y }
. z( Y* ^* N6 E3 }
" `. Z0 E2 [0 g; W
; j+ h j0 N3 W8 d; i
1 e, Z; N3 n7 G' k$ ] 4 d' N0 j" z: ~0 x
4 p* ^) n F' s3 l
. c6 f% T" L8 q" H' n
gen pminphddy240=`tempminphddy240' in 16 H1 e1 Y- D9 u `2 a( p
3 v" k, L2 N, w# m! o+ \
8 n9 l @- P) Y) @4 T/ J# E( j- k8 k% i
*-------------ddy240pminp右侧低峰值 -----------------/ i) r5 Q2 `( W) m
preserve & L; `6 t, d) T+ q" u l
; _/ o3 H! f+ Y keep if dx240>`tempminp': d2 p8 O8 r9 F+ y& y6 z% t! i
! M1 A' {" U1 P# ?
keep if dx240<`tempmaxp'
: K1 {. u' T R1 r) y8 J0 n9 I% w
& Z& k$ u3 `9 L keep if ddy240<00 _/ v, [1 b, p
* ~8 M" f. Y& _8 ^3 \
gen temddy240=-ddy240
0 t3 J+ `& D0 k7 O" U) |# Q8 L & M! D* r1 p4 s! N& Q: f
count
5 w+ X. x1 E% ]$ p 9 [7 X# Z. o# e5 M% w( C$ n8 S
if r(N)>2 {! [0 @& ?7 N" q2 y! R
" e _: i/ b- m" B, e0 c pkexamine dx240 temddy240
0 S" {( K/ D0 y
9 A9 a j) w* U local tempminplddy240=r(tomc)$ Z& x# z, J$ l7 [
restore
) \6 u* J U5 ?& @7 v! h }) p( Q$ O" |* R5 {9 B
. I6 g( `8 X3 `, S2 ^
else {# R8 A* k( w% T+ ^" k: l
" ^% `. f9 j s# g' J. ~. }; U- ~9 D di "cannot find pminplddy240"6 |/ u! [( R) f: b# p5 m+ g
restore; [8 m9 w) n2 U) g" I6 B* \
4 b* c# S2 X1 ~ sum dx240
! l$ k9 ~8 x! v ] local tempminplddy240=r(mean)2 D; z8 u% }, E. j( ]& A7 j
: R/ \5 \$ h4 k3 ?% |1 b
5 ]( |8 p$ `9 y! W' x ? }
5 c. Y2 k- O, | H $ ~9 E2 f: _$ B4 k- Y) J
2 r# W8 Y* [7 U) X% m
: y+ x: L! J/ U 3 b" P0 K# u+ [7 Q" G
7 F9 L5 T9 h( O! w$ Y A6 ^ gen pminplddy240=`tempminplddy240' in 1
, \6 s/ c- @ e5 O5 `" t 0 p: }- z r' H3 C E3 ~# V' o
*-------------ddy240pmaxp左侧高峰值 -------------------
3 j8 D! `# m! ?9 t- W p( L* v+ X& n9 ^& A
preserve 1 b9 n& z4 Z7 S" _, ~" q
5 c* V* Y+ x+ X; c. J) q
keep if dx240>`tempminp'' c8 G7 e; I' M. `+ V$ q e9 Z/ c
, k: y; Z7 \7 T, r6 F keep if dx240<`tempmaxp'
' a; W( [4 g8 x$ \8 W ^. `
; j9 I' |, G; B, q( ?6 r# i: ] keep if ddy240>0; L6 ~ s) l' _7 o9 B' @5 c
count1 ~- m+ e% v% U5 {
5 V% r* N% g) J- I H& a if r(N)>2 {
9 {5 x# P: P" r+ ?/ N
6 n. V! U' w5 C pkexamine dx240 ddy2401 m9 o0 F9 @4 f! n, C4 r0 O
( F) {$ V/ e' F5 L- A
local tempmaxphddy240=r(tomc) 3 T# F' a, k+ B
- h- o. t& C7 e5 `" s( ? restore0 \. C8 y2 h3 r7 H; r2 M
}
* M" Q" H" b* K. \& v: r( R
6 w! d' g$ v w1 F G- U else {
O. u) K! S1 K" d0 b+ T
8 Y' ^4 K* o' w& a3 o. ~1 N( d! k: J di "cannot find pmaxphddy240"
$ P" ~& k" i3 E) j8 a' a+ Q7 V restore" j- T" k) d {0 y: D4 K
5 D7 A! S* L9 G: b* |( S9 x
sum dx240
! D% x! J) w. K. P! P* q local tempmaxphddy240=r(mean) ) K$ U% J) r" H0 Y; J
$ v2 b/ P# ]! K3 h; E3 H
/ N* ^2 f2 c0 L$ U h& X# ?; Z! o% \$ Q5 j }
) n6 Q* U2 R5 N5 Y - j% j$ C+ W d4 u2 d L
. j" V, Y+ g4 y
8 Z: U% k7 x3 P6 K5 `
+ C3 r$ |$ v" y( K
, W9 g* u% h( v2 [4 |0 B * @. ?. c' s, k, Q4 W4 M
gen pmaxphddy240=`tempmaxphddy240' in 17 R3 O \! z3 A7 b- ]3 {
) K0 V: u+ E5 a ^) g : f1 U) Q2 \/ M
*-------------ddy240pmaxp右侧低峰值 -------------------
u( D4 q3 y9 _: J* X 1 D' u q) q7 y' u' c, a
preserve 5 {; q! |1 n# V
7 Z3 E t! @1 Y/ Q0 g1 p% s
keep if dx240>`tempmaxp'0 G' j% R- u( Z1 k+ g
8 v6 v) j* n0 c/ r' K! } gen temddy240=-ddy2404 R* J& ^9 ^- \# k" \
5 Z9 {% a7 O2 u4 O2 [8 {
keep if temddy240>09 N$ b/ f. F6 w8 N3 f
- X& O% J# B0 S; p8 g' F2 g
count
$ s7 t) Q% c) I
" V/ u, I2 x4 b: o* w! d2 } if r(N)>2 {& w- s# C9 I2 H p3 T, X
( ~5 ^& l. G' \; C' ^: v* U2 g5 P pkexamine dx240 temddy240
; B5 y9 G& Q# _( y- y* \3 K , }) K4 p) @6 D5 Q0 L# P
local tempmaxplddy240=r(tomc) - N3 S; R& N) t6 x: j* k5 s
restore t! Y/ i; @9 T t- O% a
}
/ K, b% |$ E/ B3 f # x* W9 v, x, _- ]. ~
else { D& d) {9 A- r9 l3 U9 @1 U8 j
restore; ] r. u' }' j- ^( V! t
di "cannot find pmaxlhddy240"+ b) ^, J0 b- {5 w0 v# t
' q6 t8 s$ K9 b / o* ^/ a! i- q/ d
sum dx2403 ~: }! j4 `" ?/ \3 k: ]& W
local tempmaxplddy240=r(mean) in 19 W0 P* T- J. H, \- R1 X2 Z. n6 e
* g' h/ U( s6 ~/ ^ $ |) q* {" q9 S y9 q! ?# `
}; f' ~; P* s5 Y8 p& m. F
+ ?( C/ b. D7 U' r( i
6 V" N: m1 X+ O# t $ E! g0 T7 c7 g8 z0 ~; L% k
& Z* Y2 G. z$ j+ v% Y/ t
, i% O2 X/ A* Z( B k1 |
5 D% J+ P% J! Z) b: u' C gen pmaxplddy240=`tempmaxphddy240' in 12 G; S. [- L8 k) y4 e, O
* J+ d4 M2 w6 h' a *-------------------------------------, c1 j r: Z/ ]0 i1 v+ c/ d
% {" s, y/ v0 z- i& Z! u
gen price5d=v5 in 1/20) O" b3 k+ n5 t% M' G0 H
$ G5 w- M2 j" b. Y
gen price5yy=_n in 1/206 Y8 h$ [* {. N. c' v3 n& u
6 ~' q: Q+ L3 Q! g' Y/ K
gen price5y=price5yy*(dy240max-dy240min)/204 U+ x/ H& T2 l/ X6 F) M" T& U6 C
5 M0 p) p: X- d; X, c
*price5y &price5d; {% ?4 ]7 l8 B% X3 v& ~. A, T, t
8 l7 h* R- x4 ]- U
gen priceny=price5y in 1$ i; L/ S6 ~( x6 n* i
- z# r3 C% S" q0 J0 r
gen pricen=v5 in 1
8 G. Z. Y1 u5 F g9 p) e& U( N% G3 @3 B# |( a
: h ?6 `$ R: d8 U8 Z *priceny &pricen. L4 q) q, k1 }' d: i1 m" |9 {+ B0 `# c
3 K# F4 Y3 F& C$ e" W
8 b# t1 H4 W+ u( f& @: l% k
*-------------------------graph------------------
- L7 o2 n" z0 H- X6 B1 ~6 m ) B- b- d7 F/ Q4 h& W
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 S m' \9 l" T# l1 \9 U3 b4 V
8 G1 q( w5 W4 x0 Z6 ]% i' W) I l
* ---------可选项目----------------------
) o" a$ a0 i* O7 g) g! f+ v) E. i5 w: V
}
3 X `$ w# i! }, |) Send) Y8 a4 ^1 c6 |# Z8 k$ X
|
|