|
|
改了一下,这次运算应该没啥问题了
8 ~; ~, x; l7 M# u: q) q6 U5 i0 r" w- ~7 l( e/ m
- i6 y% {3 c; Q- ?* @/ `. `5 rcapture program drop hello& H7 ~% b2 F- e" Y7 z( j
! s% a% z% U, z: b( [" \
program hello
9 i) P! {. ]! Z0 O& C( [: H
7 H/ V) e1 m$ l1 J) Q quietly {. ]( P& w* r( T7 B3 \" C2 |
' }$ _& f* o3 ?" {& @
clear* r; L6 R7 ?! D7 u% j# g
/ c! u3 b0 T: T& o+ Xcd e:\finance\stock\20110101\source
- s% R# S9 w9 k5 g0 u5 r8 @+ v3 l4 S8 `) F$ F4 k0 j( j
insheet using `1'.txt
. ]; V+ A2 f0 M7 I" j4 [
5 l: ?7 H9 p1 z# T7 k8 q( v$ Y keep if v5>0* T' [6 J6 b6 ` U+ P C; f4 Q
, c$ f9 _3 d i: ~ gen vt=_n- C. Z" v( T# h6 g' i6 S. R6 V. ]9 p
: b% L. a/ Q* x4 I! g. T% F tsset vt
( v5 g. s1 A: G5 k/ i
$ Y( _0 [6 _# l7 o7 v9 Y' U9 G gen zf=D1.v5
8 z6 {$ z- x1 C, [. C0 i/ p5 N, l0 K7 E
; N# ~% L: Q1 x4 v" x5 j# U U gsort -v1
9 o o3 A' X a7 G. a& l% m
: Y4 u2 k0 P1 p5 Q9 k4 ?/ E$ A gen avol=v7/v5* @+ p9 W% F' D$ z$ @$ h7 I( O$ ^
+ ~6 \( u2 n D9 Q S keep if avol>0
3 q! O# W* v; B
( k( f* F5 I0 O drop vt# u& v& ?) f* w; F5 K
' a( p. i1 v/ n, q
gen vt=_n# U% S. [ Q. a$ e4 N+ k
. D7 \( i' T# t4 B! n$ G( g" @: S
tsset vt
% z: f/ ^4 o+ m" D6 P6 y$ K 8 k9 g) { T3 Z1 M" e
sum v5 [aw =avol]
( {. b: y B4 t( k: T7 t$ b+ \) {, @& x7 d; x5 j
gen amean=r(mean) in 1
& w4 g, k1 p: E! i3 q3 {
1 e7 \4 |6 r0 Y * 总加权平均值 amean% }% C6 B9 O5 D f
c9 I. q/ Y4 w# c! C" n d ; i* E: l' O9 Q# s- ?
keep in 1/2403 o: [5 e8 f w1 J3 t% M
# F% p, W6 @( r7 E+ e7 J sum v5 [aw =avol]
# ~' Q0 Z" ^7 M5 V* ]- h2 A) G" Q4 q9 ^ I
gen mean240=r(mean) in 1
7 t+ n, o) u7 M: b+ J3 j
7 J1 p8 {9 c _0 E7 s% m! t0 j *240加权平均值 mean240
/ g0 T! T: c }4 ^7 V$ f O/ b 5 \( B2 r4 |; W
set obs 500 2 P: {; \0 ?# {! i
' R" f) G! A8 f* s
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph# d% _- D3 T- G' I% P+ K0 i# t
$ \2 D( A) c' S& E *240 kdensity(dx240 dy240)
/ f* ~* W$ W& f
! g& e- D2 K Q4 k% l sum dy240
0 d* u) P8 Z+ V: h/ R1 U) U : p8 `( f, X2 c0 A
gen yxis=r(max) in 1% j& E5 b( ]* d7 S: ^8 S2 `
5 {, v5 `# ~$ r b2 \ gen yxis2=yxis/2
$ k1 f8 u- O' F& @6 g 6 a k0 y R- t2 u
*yxis
& {+ V" B* U6 ^8 I# T) A( Y 0 }. p6 ?& A; c
gen dy240max=r(max)
5 w0 N3 J5 S: N, w* a& {% u
# [$ O2 O! o+ W. K u gen dy240minp=r(min)
5 t v- z' y5 L+ X- B8 K S& \ " Q3 \1 x6 T& y8 A# j) U% T& b
gen vtt=_n
+ ]1 s3 k' [9 q0 F+ ^8 R
& i) T5 _6 u# @ tsset vtt
7 h* e+ C2 |/ s m( }
5 b: e/ s; v7 ? gen ddy240=D1.dy240/D1.dx240
p+ O) w% G, m1 Z4 C 8 ?5 R% [2 p. J! t7 J; _5 h
sum ddy240
& A. o7 Z/ R% w; Z
0 l+ w8 T7 O) ]$ f l: G4 |. l gen ddy240max=r(max)- H% U, U) H: Z& C
3 y3 s3 Q. N! U2 G, A
gen ddy240min=r(min)
- G$ e' f, i9 }' r0 ]) U& `0 w $ S3 q" {& P1 E, p( F# R
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
: W- p0 K/ p- s; B( ]4 r/ v5 P % f. s$ Y* V7 e0 _4 }
sum ddy240g$ ~* G5 Q5 K, p+ T: ^# u
- ?3 \, H! k# c0 S/ b% t0 Y
gen yxis3=r(min) in 1
- a, A( ~% B; d. X& A: c ' F7 a5 t! e6 a' K. y
gen yxis4=0 in 1
1 Q, i$ F0 k+ ?( m
+ E; A3 A4 W8 C9 c- p, D; L *ddy240g
3 P+ u; w* A) a2 i" S6 z I, q7 Y5 I' D$ m7 |
{' c9 R T1 T& |, _
preserve ( {* p5 v7 F0 e( K& g. \
# |6 `; ^% d0 z, K. s
sum v5 [aw =avol]5 M. X/ X/ t4 z1 I3 A' V
8 K5 d2 |- Y; f& \" b4 h1 Z keep if dx240<r(mean)( S6 H% r) `8 S, _
7 i% W, Q& t0 m1 _; e
sum ddy2401 z; p# u0 I7 ^1 f5 O; ^$ E- ?0 v
8 G l# ^/ }8 K, L: a1 r5 e if r(min)<0 {
9 o: L4 Z8 D( Z) k5 d: ] f! s
, M& }/ V" T" w- u keep if ddy240<=0
8 P4 t& q& S) N 1 G, s( i- k3 I- V; z
count
) s: C) u+ T6 J( c k3 o
' O4 P. J. Y% \ if r(N)>2 {
# K+ ~9 K: e7 n# s* x+ C: [/ r( s
. t3 w- M) i7 o0 |6 i# _1 s! } pkexamine dx240 dy240
# O5 o; q, V u" n3 p
# q( M% B/ B$ l& V& m local tempminp=r(tomc)
5 R; s s8 h! K3 D restore 5 t. v8 k7 h% P/ c/ I
}
2 q2 g7 g# L0 X: R( L' i
# l" v$ H* p5 W6 v5 Y; | else {; n. O7 h8 J. a' M. ~, G3 ~" e
4 K) {+ j) [' q8 M3 v( E di "cannot find minp": F2 l: p9 j( T; M% Z
" R- g' q+ ~6 U5 `4 @
restore
8 G9 A' {: c8 }/ d+ _1 Q sum dx240* t* A3 V& T8 b' J+ x
local tempminp=r(mean)
7 A) `( S* R o" F7 I& y; j
4 W: K# }3 \ Q+ _) r. x }9 E! E, G* ~/ O" Q$ n: f" L
}# A% g- M- B8 D6 f' [8 d
else {
- l% v; R# E; E4 X- i. m' ]9 J) j
8 I% y. g" i! }- I& G3 \- E keep if ddy240<=r(min)
/ |+ }' p c" z6 m5 H3 l - x% @2 m( o+ C1 X
sum dx240, A; J5 ?0 l) t+ \+ a( k
( Q, T* w6 o" F. B0 c; K" U
local tempminp=r(min)# x/ z: d( C- }. G
restore
2 l" e5 P- g! z* }$ _, l$ w m: K }
( D$ F* P* Y7 a3 o+ E H2 a, t
+ o/ i7 ?" x q( F" J0 r" Q" G( h
, T+ I5 Z: h( `; V. h: {2 b& {+ i- u4 E0 \( y* [1 L* _' d
gen minp=`tempminp' in 1
7 W: J/ l! B$ U *240 minp
* D/ w1 [8 Y" L2 W# u7 A( b$ ?
) C$ T4 ]/ s9 N/ A6 ~* d
6 i% j5 W% `( {5 u preserve
( u# L% ~' @$ L. m1 E, j 4 I9 }- M3 C N% z2 H
sum v5 [aw =avol]5 z3 k7 h% r5 n& }* [; f
# y5 |) z; v" ]7 R0 D" Q/ n5 v8 y
keep if dx240>r(mean)5 F4 K: _! \. ]0 H& M8 q. t
' l2 l ^' i# U+ Y! c) L# K4 x sum ddy240; |0 R: p3 |6 ~
% @$ Q6 E$ `2 Z6 `* P8 k if r(max)>0 {2 I4 c! b) c. ]
, m8 _7 O I8 R1 z0 n9 B( X2 z
keep if ddy240>=0
3 E3 ~% ~* _2 w" a1 r2 s
3 I* u v2 s% s6 ?4 F# Z count( I. O7 V+ H! K
5 Y& d1 x' E! ]& U' w- ?( m if r(N)>2 {. A) X: u' }5 X, _6 l
A$ e- g# T( Z* y% A- I pkexamine dx240 dy240: F# y$ {/ e/ Q7 G Y0 w
' o6 b$ _4 M" G+ Q' N' H
local tempmaxp=r(tomc)
4 v9 K+ N, v1 F6 Z3 I# } restore ) w( | a/ T0 O$ f! K3 x
}
; L6 S% H9 b) ~4 G' w) A- p
2 L* S l. t( x. o4 G
; s) _ h8 h$ |/ @8 M# q! |0 B5 M else {; X0 I* h m) J9 `) b, A
restore ' g, s; l( T% e- J: H
di "cannot find maxp"5 X% f- N$ X4 M/ [5 t" o2 ?
) m. w/ a V) K
- g$ s, M0 Z) o0 r- ^ sum dx240& u$ p, ~) o' e* ?
local tempmaxp=r(mean) j1 s/ M! D) {
5 t2 H' z& ]# c6 t) A; |
}
d# x/ d, W3 Z3 ]& `4 ^
' b2 H: P2 c+ g5 [) v }! b: _1 [* t% v. u- S
3 t+ O& y$ E5 i, d3 q( Q else {6 I& K0 t, J1 j W% S1 _. D
: v s0 ^5 v% a f+ a
keep if ddy240>=r(max)
+ v( R% u( U9 g; Q- c# h' C. o# g8 f( ` 1 q8 N# c% w/ Y. |3 K6 o/ p
sum dx240
o, X" e, z( M . S- k7 p+ E& b3 H: C2 e3 \
local tempmaxp=r(max)
' e* k7 W. a7 @3 }$ V restore ! m! d* g5 h3 w3 H. {
}% ^- ]! e. C" A2 w; g
- t4 f1 ^5 g. y+ [$ {6 Z* N" g
8 V6 E* [# g, {) g+ {' f! F
9 T4 V( w, ]6 s6 m8 T5 Q) @" ]
4 \$ r8 D) i% {5 o, f4 }& b: L gen maxp=`tempmaxp' in 1
7 v: ~2 |/ T. ?5 t' O7 ]1 ?0 ?1 Y $ ]- e+ u# k* ~3 D; {
*240maxp
2 P4 V' ?1 p0 B4 p; \+ H. M3 R5 ? ) Y6 }2 N; D5 G% Q; b
7 v8 w6 A: k6 y *-------------ddy240pminp左侧高峰值-----& c- T9 p. M, T7 q* i- O
! n+ Z% R3 i# |4 X; O4 F
preserve
- Q \5 W: J! i @+ h 9 Q5 _# [; u, W5 a$ [% B# |# [
keep if dx240<`tempminp'4 B# [2 _7 Z' b# s8 a: S5 { C
3 H! x- ~8 a8 i keep if ddy240>0
# ~% Z4 s' s6 \, @: l
) e. ]8 P' K, t0 s+ B c: p. ?5 E count
6 F7 p' f* A1 O4 _* S 2 P# Y4 R8 }0 y0 ]7 \4 m
if r(N)>2 {4 y- } y t5 e: H
( x# G% @4 a* B% }& N pkexamine dx240 ddy240
; g1 C$ \& d( P& X 3 c- c% A( J- y8 C4 q0 X5 w7 z
local tempminphddy240=r(tomc) " F. t e: N3 F# z6 n9 m
restore
5 R+ N/ Z& X" ~$ a7 @ }
1 [, \! C: B, @. W B : B; J: f& r: N$ `# U
else {+ J2 o% L+ h9 X/ `. R6 x: [9 `1 c
restore & w; p6 h5 o* Y! H" k0 b7 B
di "cannot find pminphddy240"
4 t; P, f# U+ J, K" X 7 l1 y, n% d/ N4 V4 J2 T1 f4 b
|/ Z+ R. x2 N( _3 R/ t: E& |
sum dx240
# O7 H% C$ t& `7 D3 x8 R6 Y$ M& L local tempminphddy240=r(mean)
3 s4 j9 ~: {" N0 a; l1 P9 e8 X 8 Q3 x5 O7 R: C0 a, X! m
% B3 D% h5 [. J9 O; r0 E) ?
}) v. C; |( S/ W/ I9 C% ^
! q& ?' k7 x* E. t( Y+ G1 a
* C5 R: D1 m: [' s
4 C8 z1 Z9 t$ S1 v 6 Z9 U! p5 f; _, o6 j
; q- c/ t2 h, c
6 N" {! ?) ?; z, M9 A. | gen pminphddy240=`tempminphddy240' in 1" ^. b8 X. e. i" C6 X! |# N
/ K0 G( D: I; D4 L" Y2 g* J4 ~( V 3 W' @! S9 n D8 F8 E; m7 O
*-------------ddy240pminp右侧低峰值 -----------------
: ^9 [. V( l6 Y preserve
! ~ w+ F- n" u0 h% I2 H4 ~ : C& t8 r7 T; Z8 l
keep if dx240>`tempminp') Y% v, J+ q& r: [3 w
& d# D6 [& b1 i- k9 D! R
keep if dx240<`tempmaxp' ~$ B3 u4 L" K2 D" j5 c, s5 Q
6 C8 Z+ h' ~- r" T1 N
keep if ddy240<0
1 d1 m( f$ n2 m" W
1 T1 K8 N+ x. d! W gen temddy240=-ddy240; U n: d0 k4 [& D
4 w, A8 f3 g5 _! {+ k. c: H$ ^! ] count
4 c2 S4 k: [5 y
9 Y% v" `" S! f j if r(N)>2 {8 z5 v& n7 o+ w" |# L5 b
- y! c0 c. L# T6 C
pkexamine dx240 temddy240
7 b- q# v' W; @; A" l% n+ ]1 e + t1 t- i, Q! l0 x. ~$ e
local tempminplddy240=r(tomc)
) y/ ^/ r$ g7 I: [# t0 s* u1 T9 ` restore* H% @8 s5 E% t" H
}) f9 f( w; J! l4 m z8 W) _- L
3 u) [: l$ c7 d
else {6 E1 I1 H6 \0 g0 L% F$ M
$ L. a) I- b* L# f& k* a di "cannot find pminplddy240"* O% t8 }% m* V' P7 {% T' J& Q1 F
restore% _) ]! K+ I+ {9 d& ?' I- e6 U
8 N: W8 o- ]5 ^6 W; L3 p7 ~
sum dx240
% z$ |; g0 X: X7 S9 Z9 }9 _ local tempminplddy240=r(mean)8 T" l' ?8 i. v8 E% c
/ t1 [! j! {' W5 g
7 M: o- w! D r3 Z+ T) m }# ~6 ~) B' d/ M8 J) {
0 a' m9 n) a, n# t! _ . g: L# H/ v5 i
9 X- ]* {- f2 n, u3 u2 A$ U0 P0 ~
$ Q! r* l; f% K7 ~8 a5 h5 r : k& z6 r3 U# j
gen pminplddy240=`tempminplddy240' in 1& ]$ E5 N# x( Q1 M# I2 X
" m3 N. t: K1 v" M. R# f0 u
*-------------ddy240pmaxp左侧高峰值 -------------------
$ V7 V; c2 U { c3 j. G j I
preserve " j4 x5 l; ?* b+ J4 c5 B# X& V1 ?
0 T0 \$ I& ~- g! m# A
keep if dx240>`tempminp'0 Y! J: ^7 Y6 i# @4 _6 }8 B
6 s/ F' _, n8 x6 U' C
keep if dx240<`tempmaxp'
2 ]6 B8 Q3 K. ~$ G1 n : W+ k$ I& _9 @/ M( q" w! J
keep if ddy240>0- A H6 t/ S+ v* W. e; X' \
count7 D2 _- n4 g* O7 J, h
6 i( W# u4 o9 l4 K, H* [
if r(N)>2 {$ Q( g6 V y3 r t7 w6 O/ e' M
|# S! S K. w' e, P: S; L. \
pkexamine dx240 ddy240: Y7 R% A" N9 z# ^4 I* h3 _4 n
( t& m: C) c: S& O1 e) S
local tempmaxphddy240=r(tomc)
; d% T, E; D" j: ^
9 w2 k: \+ L7 e9 x restore
4 F* Z: o: p( b9 J/ D }
% h7 |3 [1 @$ i- V: S3 ]
) Y- G7 y V0 { else {$ b P/ B2 f6 g
% e8 D' ~; T' M g" @ di "cannot find pmaxphddy240") T7 q& L2 V3 E6 P$ f" T
restore
8 b9 g. I4 x, {* V1 O" Z
4 R+ J8 N/ n! w3 n. O( ^ sum dx240( y/ Z2 s1 Y8 i) O2 c
local tempmaxphddy240=r(mean) 8 Z% @+ q7 h1 s% T7 t3 E9 p
# F# k' ^6 Q. \' L 0 t) O5 c) r3 ^7 u: i- e8 c2 w
}4 G, M% P1 Y3 H. X8 T8 b$ {
i* X2 p- _5 v* j( i - j( r# I- c4 S
" }9 j Z1 o0 M5 f9 h
\; f. G4 c0 L3 U) e1 w1 G
8 L; n' W; ], p- {5 a5 Z6 O
2 e/ W( x [' T" R8 p3 O
gen pmaxphddy240=`tempmaxphddy240' in 16 G. b, T2 U6 N; Q. d: g; G
$ j3 E, |, D0 k$ ~7 f6 f; G x, p
" a9 h9 }" h X8 \
*-------------ddy240pmaxp右侧低峰值 -------------------
/ Z* B7 o+ X S0 x: K, w
. o3 k; A& E; {; Z preserve , d) u5 Z! R" V/ u/ a
8 i5 l4 ]. \! x- r- y keep if dx240>`tempmaxp'
; u) t& `, g' D
3 M6 ~+ T( X' s+ B/ v, Q' K2 A gen temddy240=-ddy240- O# L, x/ X9 {: P4 V
, B+ l" ]5 E+ R* a/ R keep if temddy240>0& _4 J( R x3 F3 [6 G7 S# O0 z; F
% U2 H0 j+ \1 |- O' k: J" } count
7 s- j+ T( h. { - O1 X/ Y% z5 h. i6 J
if r(N)>2 {
0 y# V9 G# d7 X. b# W' Q- _0 u2 M, @ t/ ]+ _+ N& J
pkexamine dx240 temddy240, `4 A! r% h9 M# ?) g# S0 b/ k8 ]
; D1 ?. L) C; ?7 _ local tempmaxplddy240=r(tomc)
1 c: k* D) i( N/ D# g$ x restore
+ ^$ C0 x# c) z T }
& W) L6 m5 y2 k
' V, r; G/ w5 F5 V7 N else {
* E* D( E" ?! Y6 n restore
: \3 [6 Y" g: h di "cannot find pmaxlhddy240"
/ k% k* X$ D- L% ]8 E" O. Q! o
( } p# k+ N- G0 v Q
% T9 O! G( L4 B! _1 `/ e sum dx240
. [! P) K, b8 Z. A( g% y local tempmaxplddy240=r(mean) in 1- _( U% M0 x$ O. k* S+ D% P2 t
% X+ m: {4 Z3 Q
% {; X- W; [! D" g! V }
6 A5 J( J7 ]0 Q6 i! J 9 K3 _$ S/ D1 l" k
2 ]4 ~) l- w& p; d( s. l/ Z
$ t4 \6 R5 A h4 j
4 p9 D5 v) F0 [4 h
+ M+ K9 y- ?0 z
6 k U# W& m$ e) t: K" P gen pmaxplddy240=`tempmaxphddy240' in 1# {: |. W7 e0 r1 m3 N% y O* p
( Q$ R6 l9 w+ Q6 l0 w( A
*-------------------------------------
2 F# s, B! A. b; D3 S: O% Z9 H, U 0 P6 J9 w. a2 h7 q* w0 o
gen price5d=v5 in 1/20
! p8 B0 m* V& f% Y+ Y0 G9 { 7 G+ Y: x, w6 c% G/ y
gen price5yy=_n in 1/20
* O3 e, x7 d7 s `; `% [, T
; n' d' C0 ]; x gen price5y=price5yy*(dy240max-dy240min)/205 o0 A# v6 { n4 L
* ]& t8 m& l2 J; T4 q# M *price5y &price5d
9 Y2 f6 O3 h( U- p U6 g
( s4 x/ l+ i. y' ~# a7 y gen priceny=price5y in 1$ Y8 {: N5 h6 ?/ b* Q3 [$ G
/ m# [ [4 g, {9 f* K. ]" y. e
gen pricen=v5 in 19 Z/ K) h* A. E7 E
' e0 l) q+ |- b/ n 0 o s. Q: r8 F/ G( S' f M
*priceny &pricen
8 C' R! E4 o. ^6 n
- _- C, o* B- k/ x# M& u 1 q U2 x3 f, e/ x
*-------------------------graph------------------- H& y' p J0 @ c3 [
3 |7 {: ?* }, i" z$ |: |" d 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)/ l% f' |$ n8 J: l' m+ }9 a
4 }4 r$ z- a& K* ---------可选项目----------------------
7 l* \* ?' Y& m$ o6 d+ @& Q; Q$ ]% }; Y7 A* b
}' q) B9 V& O$ l8 g8 b$ F
end
* g7 c: l1 ]5 Q: ?% g |
|