|
|
改了一下,这次运算应该没啥问题了- X& J! U# f5 h6 i" G
. o3 E0 m0 s, V, G; S* [# ~6 f$ H z
+ O1 ~( N L1 ` ]- [8 O
capture program drop hello
( t2 C8 G) @; A( z5 W% D: F" q6 X% L6 Z( h. v
program hello
% T( v. w9 e8 I& M
& L4 Q* Y# ~+ D0 P2 v quietly {" D" Y; `) x/ r% }2 x/ l
3 V. C8 d& `0 W t; h5 E) q
clear9 c+ V! O: B; P+ i4 O/ s6 K
+ f, B' l, s Y8 T" G/ |) T2 Qcd e:\finance\stock\20110101\source) }6 Q# D) f! Y) M g
+ ^7 | D3 b% G5 }7 ^/ kinsheet using `1'.txt
. v; @* e/ ^; ^" x: j/ g; j/ U) u/ J$ D3 z; z
keep if v5>04 y; _9 q! s1 _! F1 ~, c
- [& H6 N) C+ U+ h2 y" e gen vt=_n
& V! [. `, z& a4 @ T1 v" R2 {) j # h1 A9 j1 R S0 n0 H9 M
tsset vt! Z7 y# m! }1 S* \
% r+ a3 @9 R2 ]0 I* [
gen zf=D1.v5* C/ t' t" x* G& v
$ d, k" @; B9 v" M1 z. x gsort -v1
+ o7 i. P3 c5 K. l# u0 Z
6 ?. G4 o8 w( m' }" e gen avol=v7/v5
: O: K# u0 a' S6 F
7 Z6 }! s7 [, B0 m% r9 z! l3 Q keep if avol>09 y. {% d' E: I! h2 E
$ G% ^: h* R; ^& S6 p drop vt
+ L' k) x& u) v6 q+ M0 R+ t
& A. |% `( v- K gen vt=_n: `' l' N6 N' k$ H
o& X' q: P/ j& B* A tsset vt/ ^! l4 R0 y0 |* n
1 R+ N, m, \1 \) M( ` sum v5 [aw =avol]; v" g3 K8 G* m8 t# L' g' g
# O3 T- f! |; y0 z7 Q2 M
gen amean=r(mean) in 1# `* G/ @: i4 w+ E
, D9 \% O) S$ a) j) `* p" w* o * 总加权平均值 amean3 ? X$ O7 _5 \( t
, y& n- c) K. N9 m2 p/ p' J4 n
) |1 K) _: I' U. y2 \4 R keep in 1/240
- ~, M, x1 }5 @' U: L3 D _& i; I3 k2 k/ \* ~ s) c6 u0 f( M& N6 x' X8 q4 L
sum v5 [aw =avol]
( l. c; \/ X' Z8 H: j' [& l4 c& |0 e1 q; u
gen mean240=r(mean) in 1& Q! A0 D/ }, t: z
* @- y7 p8 b& R2 \8 [& P1 s) J) I0 C *240加权平均值 mean2404 Y9 |" Q/ M( X* }" n4 M/ f
: q+ P1 C; x& ]/ o: z U( U set obs 500 ' F' G1 O+ h% y4 t+ r6 X @: R
3 ]9 \5 m# x, O kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
' d! @4 j/ u0 G8 Y' }; i
( |, c$ ^& x" C* I- P5 z- E2 @ *240 kdensity(dx240 dy240)6 m: x3 {* A3 ^% L" E
' M5 ~9 i2 E. d! C sum dy2402 C- W& V2 F3 R# ^; U p' z! ]
) Y! T* Q' g6 [6 z: ]7 ^1 {
gen yxis=r(max) in 1, t4 q1 a/ N/ n4 P
. G3 V/ y1 T9 B( m. ] gen yxis2=yxis/2
+ E0 t4 W) v0 v, K. s ^3 _6 {* E 5 l( l/ }! T$ o
*yxis
1 @& ]1 U6 D [& Q0 s; \: x
* Z3 O$ J* j! o7 N+ @4 ` gen dy240max=r(max)
& M( p5 v0 a( g3 O9 y. |+ y
Z! R( {7 ]* O9 P2 K# l gen dy240minp=r(min)
/ b9 |2 w- o k 7 u$ ?$ J& }6 V5 V. G6 L+ ]
gen vtt=_n. ?4 K6 `' m; V( r% _; M3 m6 N2 @
: S9 k0 l0 t$ p tsset vtt
5 m: {& I- C5 W% N2 {
/ G" L# T& K5 j$ x8 K$ a gen ddy240=D1.dy240/D1.dx240
2 I( R6 P r+ Y/ `1 W6 f
( u. o( C0 H. {; r sum ddy240
$ d; d% r6 }4 A) Z* V% S/ A4 D 5 T/ F) ]# M! h+ t& r
gen ddy240max=r(max)+ c5 J+ l! A- k9 u( G% _$ G
, W7 r/ O9 `6 C4 f0 O
gen ddy240min=r(min)
. p: ?7 V" F2 w ]% k% i% A# H * X3 v5 y9 V" E' K1 y4 H
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min). S0 C- e# B1 b0 T/ D% D) E: r
& B- d. G! Q0 ~9 x sum ddy240g
2 T/ o0 ^0 u$ w$ t" X2 b " W. ?. r& |. k4 S" K/ C
gen yxis3=r(min) in 1
! J3 }3 w' r; Z' X4 X2 [# ] 5 e0 J, m. ?1 [3 {. r% a. o5 `( H
gen yxis4=0 in 10 C4 B3 b* d% D* g# F
2 r7 I- ?8 R0 x2 B7 V9 v9 [7 P0 v
*ddy240g
: x8 a! p- i% q. h9 @: K+ Q" R 4 v/ V6 N- P8 k% N3 e7 T
4 T1 z _+ `9 O0 Y preserve $ h1 q3 c* m* ^6 z* l
+ ~+ m6 I8 C1 q( f8 }1 o4 o0 ]9 i9 g
sum v5 [aw =avol]
$ z2 U# Y5 e4 i; W0 P: y : j7 r. K2 f9 Q$ c! D. a
keep if dx240<r(mean)2 W a+ M( t2 g
\" x0 V$ i6 V8 x. V: U
sum ddy240- l! }9 a) ~) A( i
) i8 A* A( h/ S, b0 q; B
if r(min)<0 {7 A3 I r( v1 O0 B6 U Y
5 D- ?: Q& g! Z. l8 ?' p6 o
keep if ddy240<=0
) d; X j; L; l6 F; B
c, a3 h4 [0 C4 X( P8 L( [ count9 ~2 z0 c: d: p% O
4 _. d3 p9 x5 b. h; |( D
if r(N)>2 {
9 }) i- F5 Z2 E/ B
$ p. Z+ g8 F" e. O! E0 S' _; _ pkexamine dx240 dy240# H* F- {# p4 ^- D2 a
4 m; s" c+ s7 B! |0 V% G6 x4 L local tempminp=r(tomc); [: D5 y& p) {/ t1 _# x* @
restore & \1 }, w+ P; n: Q6 y; R" U
}- B Q9 h+ b- `+ [: Z6 i+ N
9 Q/ q9 q( H+ N. f5 }5 {5 a5 n; z' h else {, Q/ p, f0 p* l! _: t
6 B w4 T" V* q' A- c% }
di "cannot find minp"2 g' a. j: F5 y; ?1 g8 |
; b3 |6 N* S! a: B+ J8 S
restore ( R( v0 o s6 E3 M: j) U* B
sum dx2409 R& [$ M2 @- z+ p1 O0 ~* M
local tempminp=r(mean)9 _/ R" n u" h, z9 e8 U1 t
8 ~: V& \0 ^- D( ^ }: b/ a( X1 ]% V9 W
}
' S7 X/ k) D/ u6 _ else {
7 Q* F: m( _# X' {" O! n 8 h) C5 m; q7 ^( l1 g
keep if ddy240<=r(min)3 ~' n! Q, c5 r$ ?' @
4 S7 x( [% P- D# h sum dx240
1 U5 J4 j4 e2 F: h6 g5 ], s( w& G K$ Q; S" F9 v l+ Y6 y4 o
local tempminp=r(min)5 M) m$ u! h; R
restore
! ?+ w: E& T. x, k0 L }
* F- D9 U# u8 Q5 ?. C; l
: |/ Z5 T" N2 q" m; A+ l6 h9 H$ i" r' v6 y! ~. b
6 {' D0 d0 X* T8 |% V" r
gen minp=`tempminp' in 1% \/ M$ t0 F7 C$ l0 T1 o6 I) A8 u) y0 z8 J- `
*240 minp' m7 s/ v5 j, k, N7 ?0 M% q
6 l- A% }. Y+ `; }$ x" E( n! D
4 e ]9 q; o5 Q! l4 P% H8 O9 K
! }+ o5 n: p& p6 W1 r preserve
2 i0 a& L3 M* a" A) B9 z8 l; k
9 a/ ~# t% X8 q' b6 z% q sum v5 [aw =avol]
8 g( A7 _2 j5 \) J! N" B, ~- t
( H- v2 @5 X: w# l# q4 L; s, Q keep if dx240>r(mean)4 |) }1 K, w! h1 P0 b3 p
; B; F; `" N# V+ f sum ddy2403 d5 F% C5 r- M' L. W. w
' x( X% g6 S' T7 n if r(max)>0 {
% N' n1 C% B5 F7 ^' j6 f & j2 x" y$ K7 C9 B" _# {- E4 D. v
keep if ddy240>=01 B6 _* ^' V* U
7 G2 P2 _! H7 n; ^! `0 a) k count, }! K1 `0 [9 o
0 Y6 B; W% z B, ?( M, B
if r(N)>2 {7 L! `. g! O, E2 ^' a7 L1 Z
5 M4 l i S _1 D5 M0 y4 n& O
pkexamine dx240 dy240
$ G8 i2 ?/ C. o! v2 B % P9 p) X6 h8 w& \
local tempmaxp=r(tomc) 9 _, k8 R7 G, U% E- V/ o
restore
* k% l. \8 U8 w: Q* p }' [$ o6 D3 {9 g. K' E2 i7 g: t+ b
) T9 t! W f9 p" x( {! S
8 u0 m- g% J& [) T, K2 O else {
+ l$ Z, U1 I6 e8 Z restore
$ r5 g9 {' O6 k$ h: [2 B7 R% v di "cannot find maxp"
1 b# e% z) S! b/ T# \/ x7 C, E) W2 k
( u7 s6 @4 \$ u& D# E$ S& P
5 q& B9 z$ }* |% x7 y% T sum dx240
A7 C& ?1 W( y local tempmaxp=r(mean)
9 W! ~" F6 p) \) T' G9 L2 d, G
9 g- @7 j; Y: Z0 @+ V M- p }- I! ?0 g. `: E1 ~" ]: k, ~
0 d! [8 H2 F& x7 x
}
8 b; ~! d( w( d( X) U8 ~ / f4 C; e( u( F/ w
else {
; T9 ]3 u. f! m ) Y# O% q! S& E
keep if ddy240>=r(max)
2 O! r! K- M" B5 D- J, w% s - K$ E5 s. A" T$ E
sum dx240- }* S9 A+ g7 w- F( U
5 S3 O; B+ d: @ local tempmaxp=r(max) 3 s" R! o; H8 r$ | L
restore & X" p% I8 ]0 _5 x/ v, ^( I+ D
}
' `3 P1 M) E& N9 ?% p: @ 3 ]2 T: x* H! `0 s
) u7 Z4 k/ a; u- i* u* M - `, j0 ]" w8 P: e; ^
7 [# p( h' k5 c8 r gen maxp=`tempmaxp' in 15 D8 H7 F" X+ C1 R( W9 ^
" U& Q6 [) F; r9 x' J3 c *240maxp/ h* y+ F- r) S& n2 f( h5 S# z# i
9 o+ C# J9 j, r$ q% p
9 m, X) B! {! E& D4 R i. z
*-------------ddy240pminp左侧高峰值-----
8 C7 m1 ]2 @. Q1 X
/ u; p) J; e, D preserve 6 U: { \; y+ `) F, N' {8 C4 u
( s. d. n: p, k1 ?4 y! p7 o
keep if dx240<`tempminp' y: _, q: u0 U) a2 s
+ k" x3 v6 |' ]1 [4 u9 F
keep if ddy240>0( j8 F; [+ e+ Q/ S3 m2 x
8 R( A; s/ G v& i' ~& J, D
count
: ?3 g8 W5 @- x! }. U s- a% v- E5 U; v ( T- C: a& c) Y/ ?' I% p. _
if r(N)>2 {- _: y* J5 m! U: O6 y- l6 T/ v* y6 O; ^" |
2 o) k. [1 D- w% N3 `
pkexamine dx240 ddy240
* D2 i {3 B% B- l4 Z5 }
4 v% I* Z2 X! y5 ` local tempminphddy240=r(tomc) 4 ]. W# e/ J# B4 F7 ]2 G. s7 i
restore* t" x! B4 ]2 K( j. r9 h! t" I4 Y
}1 a# n) m6 t$ o& K- E' F. x
1 _4 L( a+ V5 | else {+ s4 ?: { _7 d8 o! _( z: g
restore ' q7 Z( T, n1 \( e# a
di "cannot find pminphddy240"/ o8 e: E5 W9 y! C
, D% E, A4 t9 d# v4 P
7 E) p8 a" w( v0 g) x% S0 P7 i2 E
sum dx240
5 Z7 ?. w0 ?6 X7 Z0 p8 c K, T local tempminphddy240=r(mean)
+ a9 O- ?1 u1 o/ q$ A - ?, e5 J2 |3 R( {+ t* \$ o
& B$ f4 ~" G2 L }* \! u5 c4 M( D! W, c: P) Z+ H
4 ]- V3 S% }0 r1 L# @
1 t5 u" l4 v3 R- G `6 J" c! q T: M" ^8 N- v
5 ]6 N: C' t. X
: A9 E4 b1 w0 @7 D" \# u
( B: A) b- \$ f( O& \ gen pminphddy240=`tempminphddy240' in 1
6 }" f6 \! ?1 `% m% h, E Z2 n9 d. p+ d" Q
' N$ [6 Z- M" W
*-------------ddy240pminp右侧低峰值 -----------------1 h( x9 o- s' Y; F+ X
preserve
7 Z; S8 q) C2 t& H; W7 w: @9 P
, J' R ^: p3 y1 |2 P keep if dx240>`tempminp'
: k3 ~ S! w" o. }2 I . e n5 X5 u& V P3 R
keep if dx240<`tempmaxp'* {6 U _; Y% D
. G, G1 @; Q7 r0 Q5 m+ p
keep if ddy240<0
* S; o4 a. _8 l; z5 I1 Q6 Z6 q- L
4 }: j" A. ~# F+ { gen temddy240=-ddy240. {: e/ v# i: A+ v `$ @3 o
7 R \% h; ~5 j
count# n2 ^( z3 q8 P) p# G q4 a
% E& g: f$ X7 J/ N, J7 \8 C* P2 j if r(N)>2 {
* H( T8 Y8 e/ f
8 J6 A* e( F6 k3 x pkexamine dx240 temddy240% M ?: y5 J( J/ B/ p
8 q( h, D1 o2 {5 Z& _7 p( l* b& l local tempminplddy240=r(tomc) L( \% V1 S6 r
restore4 k8 {8 C2 a' E4 ]$ K8 w
}
7 s7 K5 O8 K2 k; S4 q. v2 ~
. ~/ G" c* p$ U" G# O s else {
8 j9 r5 Q) Y) L; l( L4 l ; ~% K* f5 Y5 t$ Z
di "cannot find pminplddy240"
- w/ s: x4 c1 Z( J' o' @$ b restore! ?$ h3 i2 v2 s5 T) n( f/ l
# w0 n9 L1 \4 Y9 \, D
sum dx240- e7 V5 K9 ~- `* S2 D
local tempminplddy240=r(mean)
0 ^1 Y& H8 V- f( v7 C: x
( I$ p) p& D* }
5 y( D4 W2 W. Y }+ @3 A/ E. t' B) M
4 }8 V* D7 Q% Z( @! j ; P5 |* [5 F) V+ I X8 K
6 U$ Z! {8 _+ b( q$ n4 L& S
3 _6 f* V! M, z) z( O' d5 Y: D
( z" t: g* x& B4 V gen pminplddy240=`tempminplddy240' in 1
! P$ y% B7 r' O3 E 2 Q9 _6 D( ]( k |
*-------------ddy240pmaxp左侧高峰值 -------------------
9 u3 N& b$ a1 b1 t5 @0 q 7 U; A( {1 }7 l8 v3 P1 f( W
preserve
" P2 t1 I p% X' s( x+ |6 _: d + u# W- W0 o5 b/ `, G, J9 A
keep if dx240>`tempminp'
5 S, H5 T# o! e( H0 ? " l% o4 E# c, b# h! L
keep if dx240<`tempmaxp'
0 b3 M/ w% g7 @/ [* F0 |
: W) j+ m* B; O& @7 e- z6 e) s6 ]9 f keep if ddy240>0
! R4 j) ^2 B0 X- s7 `& k. X count8 |. L3 o |% k$ r
# @% r2 Q% V4 e
if r(N)>2 {+ K3 o' m* n0 G' ^, T9 B
4 {, P/ T& L6 x% @
pkexamine dx240 ddy240 s9 D( U+ U( q G# o; B
" T) Y! u6 Z; w local tempmaxphddy240=r(tomc)
+ y" E( z! f* U$ k& v6 s
- e, @+ F- e8 l% G restore
1 d7 Z- u! l9 Z- K }
# k$ r) r$ y' G) h0 y) K % @& G5 Z- N/ Z% g+ T
else {2 @& I' e" N' G- e
+ @- V, t- A: Z% X7 {
di "cannot find pmaxphddy240"
1 y; O) U, K9 U restore0 s5 t2 `- o# v/ p
" J+ ^4 B# B @7 O
sum dx240
' P' t. q3 w5 e& O+ r/ t local tempmaxphddy240=r(mean)
2 z& Z6 J+ _7 V) z" y5 s
, N- N u' Z8 {# \% C
- y9 k8 h0 A; w& J) O$ U }- A a3 I- C4 F6 w/ y% i% {: r1 J
2 d! q6 o5 R: p - e% j8 r* d2 L& z
\! n4 w8 ~/ l1 Z3 p- F: y/ G3 l
5 y; ]0 s; p+ n3 R7 H) B
1 l& @% T. l- F$ M- v
[4 S4 ^( Y, O, ^& u$ H gen pmaxphddy240=`tempmaxphddy240' in 1
, O9 a3 b N; r8 j) Q2 b# F 6 l% \& V7 n+ _7 {
" k8 Y4 g. [4 g
*-------------ddy240pmaxp右侧低峰值 -------------------1 x m" p# t- ~7 M# x& k
`7 L4 k& _( F7 Z5 z preserve * V2 y M2 J% w' X, X. ]
I. E4 O4 |0 v# q9 K$ z) P
keep if dx240>`tempmaxp' m! E7 `0 U" f+ r/ w( a
' Q. j& j' b X# ^: `2 y
gen temddy240=-ddy240# g5 L+ E) D. D9 }2 C
5 b2 `. q* c { Y6 ^: @' H6 e% o keep if temddy240>02 {# ^+ Y' o( n4 a
8 G( {" d5 B* \+ ? count( b, d/ e# ~4 ? W
* V* u9 J: {- y* i0 { if r(N)>2 {
% U+ m! }7 M! v1 U/ i 5 A$ f: \; ?6 r3 R2 Y3 h2 E
pkexamine dx240 temddy2400 Q. ]% C, w% z
3 p. p! @; u0 n* y! b$ J local tempmaxplddy240=r(tomc)
7 D1 `9 `1 f& F& ~/ Y restore( ~; ?3 r6 B8 k( p b+ [
}1 L! U5 z" n; F' Q
% |6 ?) Q- F; b0 t7 ]8 ?7 N else {$ C% `/ K; X/ ?3 H) \+ M' \ h
restore4 V: Y# _* {+ _7 D# F
di "cannot find pmaxlhddy240"
, w7 ], b' f/ a+ T
( L; l) ?7 z/ g0 D9 V/ V & x9 e: c, T4 W* @! R# Z
sum dx240; G' `% `0 Z( } l0 y
local tempmaxplddy240=r(mean) in 1# d4 u. f: n4 U* S5 P! q- N! V) ]
0 X# c/ A6 o5 c! z" u, _, e 8 l/ D$ P0 Y" A0 g h$ {
}: M" g& E$ l9 L6 s9 z9 C4 B/ `5 Y
# K* W# ?6 K! N% O6 t( f! }( o
( s) Z8 V- p' |( g 1 `7 ^+ ]0 o4 n3 m& M9 n. X
: h- A. X \3 S- p7 m" K z2 R0 K5 M$ M* b
n0 L$ Q2 v. R/ j* u
gen pmaxplddy240=`tempmaxphddy240' in 1 m$ `$ N: n8 k3 G0 z* x2 G
+ W* ^5 E; F% {$ z1 B
*-------------------------------------: Q) _4 ^8 ~0 z6 c, g
+ v+ g3 G+ d u3 V" V5 w8 m& _- T8 K
gen price5d=v5 in 1/20* n; c+ d2 f3 |) T. w
" d' j) ~5 Q5 b0 m gen price5yy=_n in 1/20
+ I5 e2 B- a- H% w 7 o/ \+ Z; T% \" ~9 S. U
gen price5y=price5yy*(dy240max-dy240min)/20, J$ ]6 v6 H1 b/ q
& S) S; H) n1 [1 R2 ?( U7 H* K( G
*price5y &price5d- i8 V. r1 z7 u) p8 G
( K3 a, P& U* s& t gen priceny=price5y in 10 G. F m1 T: O' [) B3 q- a4 u5 A
. [ K, Y( y. D' c: ]9 z! x gen pricen=v5 in 13 W+ q# m" n" u4 g
9 \ `, w8 u+ q 9 g# S3 e. \9 C6 C: W4 `& F, ~
*priceny &pricen
0 N7 p- T& y/ L" |4 \
1 _/ o" z1 X; b1 d/ {( ~
1 k+ Y2 Z1 b& R; y9 {9 b6 S *-------------------------graph------------------5 t. D8 [2 e7 Q4 X) t
) ~. B( ]# E6 x: ^1 s
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)
$ g* b0 l# {5 A* I4 A) B/ ^ P; r* A( ~: d1 R# {' f
* ---------可选项目----------------------# P: m2 {& h3 {' m% x
( U# Z; [$ H: e% ~: E}
/ L4 s1 l3 _7 yend x+ U: A+ \2 V, |
|
|