|
|
改了一下,这次运算应该没啥问题了
3 [0 c9 M& } M6 V3 a; x* s _
- A+ {7 ? j7 k) s! H0 @8 ?* ?! J2 }9 S* o& Y6 z( e
capture program drop hello4 ^: G {: f0 Y( I
1 W+ Q C: U) ~- Dprogram hello
& l* s1 X- L# V; y0 H6 s$ ]( U- Q6 N2 {# v5 L
quietly {2 M" _! d4 c/ b/ J1 d
: C( Q, \0 u' s* j7 q8 Q' u7 U8 Lclear( _' ?" Y) i% E7 }1 r& I* v# l) ~
& p0 b* ^! r2 j4 \* T. P9 r
cd e:\finance\stock\20110101\source
6 s/ Y" i. o4 w
+ g, F3 C- y% r3 `: C) ginsheet using `1'.txt
7 J; A9 \3 l! M; l; t
) W! U- O7 e6 a7 z( |% C1 k! X keep if v5>01 d' E0 U6 K6 J4 y
! s3 |" l6 a! n. y! M
gen vt=_n
9 D+ k: n! n5 m( U' U; N9 {; d6 U 9 |' j: P5 u# G& ?6 s# \1 {( f
tsset vt! F& J0 e" ] x3 t; b% @
* g! u2 Y: z3 i0 W& l gen zf=D1.v5# q7 j6 S q5 O# g
0 K0 w/ B* s# |
gsort -v1 H+ ^: U, V2 O7 ^' b2 O; W
7 o# C4 A; e$ ~ gen avol=v7/v5( n0 b% ?$ }! G: D4 p5 F% J
0 U0 }. t4 F) p8 b( E# M3 \
keep if avol>0
" F) Y; r' r! x: ]; K* `6 } ! N$ j8 c# b. z+ H) s* O0 W
drop vt( p" o! J' N% e: z9 ?' B
( g. ]8 t9 m* e! `+ V; W gen vt=_n
% o L1 G8 O' y! l f0 x4 U
6 ~0 q& z( p9 B tsset vt( m o/ q0 x+ t& V. T' T) {2 u
* d* u( [) f% `/ e+ R+ z
sum v5 [aw =avol]
% k7 z2 s' \$ g. r) W/ P- Y9 F' |. d! `& {7 y
gen amean=r(mean) in 1
& V ]9 D$ W( P5 @" s% q
8 ]4 s' V5 P" Q2 n5 U * 总加权平均值 amean
% }0 K, w* H8 @
, P( l2 ]/ ?$ {# n; O$ G
) g2 I. f3 K4 e. E. d keep in 1/240$ n: B1 Y$ W* f4 Y
/ m% D. k$ ?3 i& T( s. W
sum v5 [aw =avol]
1 S5 w$ x3 p4 R+ ]- b- g6 z4 s$ R3 k
+ i0 E9 u. l8 ] gen mean240=r(mean) in 1( Y* [9 N% y: C4 i. C
! h+ \3 O# f' H5 f+ x *240加权平均值 mean240& H3 I# e3 O0 B; F
- ~/ l/ V. b- S" i set obs 500 ) d# m, Q7 t) w* C
6 |4 J0 z# J6 o2 P* d! E
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
+ x6 k, V" U7 Q' |! F+ k
. U4 w, x9 H0 I g( H *240 kdensity(dx240 dy240)- ^6 u7 t; u j) W8 V: P
( E) |! r3 Y, V( h sum dy240! c* {( _2 c u6 x- ~3 v3 B
: ~+ T7 a7 I; W' Q5 \' ?: S3 x
gen yxis=r(max) in 1 ?1 x, u' K& D5 u5 b
: T2 _* ^$ U3 y5 M) S' P3 t6 X
gen yxis2=yxis/21 {" w3 X6 I9 p8 _+ W9 ~, R2 V
1 k% Q6 a3 w7 d3 j *yxis
5 [& q: h; w7 n $ _6 j' L2 U/ `+ A
gen dy240max=r(max)5 U" x9 G: |; u5 E
5 z- i1 d& Y, d) g
gen dy240minp=r(min)
% Z2 i# r2 K+ [8 ?* W! S8 ~
) u0 d3 E( V# w2 H' S p7 U7 ] gen vtt=_n
2 |& f9 [5 W' j! r& S
1 i3 w2 z7 a, n4 K; g$ p; ` tsset vtt7 r1 I9 Z: ?1 f4 g& }
, ^& B" p8 M# ~, L: P( K
gen ddy240=D1.dy240/D1.dx240; C/ e) P6 E2 ]
+ O2 v f8 J: j9 Z9 S# H sum ddy240
) F9 i% m% t! w+ j" x: j + I0 x5 L$ C: D3 r* \/ c% D3 \; \
gen ddy240max=r(max)
) ^5 c- a# V+ W
7 ?7 `* f8 f9 F- _ gen ddy240min=r(min)
2 j4 R! ]- a! Q1 Y
1 X0 c/ e$ E* Z x- V5 t- Q$ s gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
8 `2 N6 [1 }* i$ `" Q. O/ V 6 A4 }; A; }. y6 r _
sum ddy240g. j, A6 E: ^ W. N6 R9 ?( O' N
) F# A1 g& F Y
gen yxis3=r(min) in 1
* R9 s# ?6 K" c+ k. N3 V 2 D. p6 _5 I1 m* a/ y) d) c1 M; b
gen yxis4=0 in 1
4 N& }8 J1 ^4 [ / ?7 P# J- T# Y% N4 ?0 |* \
*ddy240g
% Y, E# {/ d' t5 Z6 D, C+ S2 J, J+ _
( M; W2 k( J' Z7 J0 p , C; E/ G$ ?" d7 V1 i
preserve
& u: F- a0 A5 x! |$ U0 a
7 ^. r+ R2 z' r# z; l- z: P sum v5 [aw =avol]7 I: r) b( Y- ?( G4 v% k* A" C1 d
1 i6 b/ }5 J Q/ F' M7 F keep if dx240<r(mean)+ K! b I+ r0 u, Z
3 K7 l W" D" O" P1 j sum ddy240
; o- _3 ^: M( y6 U* a2 ?# B 5 J- X: t2 n4 S, w/ ^, k" f# w3 O
if r(min)<0 {5 Y7 L: w, a0 U# L' {, C
9 \, _3 s0 G5 d. b
keep if ddy240<=0: ^4 m% W, m1 U- a
( s6 P4 ^' L' Z6 @$ f% Q; \ count
3 n# P* @. |" D- `
2 h5 y+ w% C3 W9 A% y0 s if r(N)>2 {
' k8 `0 f2 x9 I+ w0 T( E
4 H& `4 {5 j9 D) E- `7 t2 d9 Q pkexamine dx240 dy240
. I" g5 ^' M% z7 K% L# S: u3 W
+ h! `5 R& ~6 } local tempminp=r(tomc)
3 X5 @6 m& |' _! i" Z0 a$ c restore % c# a# m8 c! V
}
* \/ a0 b8 _8 k, N6 H9 T5 j6 n$ v $ M& n% ]5 \* R' B' O
else {' `7 h6 }1 i) D
( B( j# I1 K. E4 | di "cannot find minp"- M0 A" p! `, a7 E n; g) M8 Y
9 h$ O9 a! T5 B* O- c
restore
% k( ^( e* z) r' ?" @' r& B0 ]$ D sum dx240
. A4 Z: ~, ~( b local tempminp=r(mean), }- z3 s& r- r' P3 M
. ^4 A1 @& P, v6 e; b! F+ g }
4 e* U" X% _6 s0 a0 d# m; U }! b7 j3 B9 a, Q9 l: n3 f
else {
$ d3 x; ^0 n7 {! k& B1 c' h
k7 m6 I0 q- c2 K& `7 o keep if ddy240<=r(min)
" @! i' H, Y) n' V
' H, o2 T4 K, \ sum dx2402 w7 L" P& x8 F% G% H
! P8 s! P; e: |7 i5 r5 T
local tempminp=r(min)
" c6 n1 Z4 F: z- t0 _% ~$ b/ B restore
' T0 n/ D, |$ O+ J( W3 f }
5 B& a* Y' b6 e7 z& s- L2 A) p9 y/ E- U0 \$ j* ^5 i
. Q, ]: X1 ^" ]0 E
5 W& [2 |; V6 b( R0 A l: ^ gen minp=`tempminp' in 19 L) u1 k, u. o3 @$ p$ F# P
*240 minp
0 @6 y8 q4 P2 \/ F5 _) G7 z* j" F1 S" s( T
$ s! \2 Q6 S! M2 u
" d7 N9 n7 p' b* l3 g7 S/ n
preserve ; c. D: o! p7 [, [0 b
3 I- H$ F0 J$ M9 F) |. l, D" ? sum v5 [aw =avol]9 A. i. W8 ^) y% G5 A
0 V4 w3 N9 u0 d$ I4 O2 g I; `
keep if dx240>r(mean)- K* J/ N" {0 V' {5 x. S
- x& z. L7 ~2 W6 L d6 q sum ddy240
9 Y( L. x$ m( n* z X ! K3 h: k8 l. V6 g9 y+ y Y
if r(max)>0 {8 I% B4 \, o- v. U, T! G5 @
, r* V9 s0 s0 L( W! I9 j2 o0 {% d keep if ddy240>=06 c+ a5 ]3 n9 _% n. ~) l- J# ^
- g$ @1 l% }% W6 @: {$ X: P6 n* ]. u
count
2 j. v/ G% _8 P% a
# D% r3 j' n" r. b) w( T if r(N)>2 {4 b0 Z' i9 k6 ^- h
/ P0 T! u/ f T2 d' U& K; Z6 Y pkexamine dx240 dy240
% F3 u/ o* b& b( _$ c8 \7 d" I
1 R: x( T5 y" Y+ M' p' } local tempmaxp=r(tomc)
6 s$ s+ ?" R/ _/ v4 ^2 F, j' M restore 5 E' z, V% Y" w" I
}
0 n) Z8 B( @% j* | 3 O. w, D- {( j' ?3 O4 C
0 c6 g& h( g* y9 D1 G3 s else {
% |- F4 P5 S5 [1 d- S8 U" _ restore
3 }: n2 z k: X$ Q: U4 u. L di "cannot find maxp"
% y# s% |9 R! ]! s/ K " E& l x# U+ R9 V: A5 R
. Q0 b2 R; m7 p" u. }* O$ t4 |- Y0 u
sum dx2403 U, d7 ~9 W7 u4 g
local tempmaxp=r(mean)' \$ n+ c1 G- r' Y2 ~3 ^' N
7 Z. O- z t" [& P( `
}2 e9 j# s2 P3 j
s; E, K5 p0 Y
}, F- ^) V8 s/ j2 I# R5 [% x7 y$ D
, J- ^: ^! |: H" ` f else {1 R5 @3 a2 [" c% m8 w
0 P0 W" `6 U, f9 o; R# {# a keep if ddy240>=r(max)
; R1 j( d% T( f2 Z3 v% |
1 U$ d. b$ Q2 M1 x J sum dx2400 S% L! }4 Q. l; C( a$ z i& H
# y/ n# w9 P) x local tempmaxp=r(max) ' ~5 Z8 A' s5 p; ?, z6 B" D
restore 5 X. p1 B" z" r; @. P6 p
}$ [! {# @0 N- y9 O4 x. g# U
]8 P- z( B+ d+ V
5 _+ x: V% e9 l* t8 \0 `3 x3 B
$ q! o4 O% x! x8 E; S( H# @) G, }# e) X" `2 G
gen maxp=`tempmaxp' in 1/ t' f$ Q8 q' s, [- \- D& k
4 S4 z1 V0 A+ V/ P# \! {$ ]
*240maxp
3 J. w" B }* m$ g' N8 h1 T* f & p2 h4 U: v* U0 d4 q% w( T! o
! N* ]/ l) x. o& N
*-------------ddy240pminp左侧高峰值----- } f9 z, |3 Q* Y, s7 }
. k& i% ^! g9 B( h2 P preserve
) L+ T3 O8 B. f6 `3 q
! U3 ]0 t# k6 q/ E, L keep if dx240<`tempminp'2 ]2 E: k2 A! _2 x) A
% N) Z" ?6 E% M- h+ n
keep if ddy240>0
8 h0 E4 E t, B4 w8 G
, _+ {. ^' @4 q& m' y count
6 J9 Y7 [& g0 T
6 }# C I+ E3 t8 N1 C if r(N)>2 {$ L0 S" Q' p) H* d3 s1 N
4 E; {5 u d' M0 S9 I5 L; D& Y pkexamine dx240 ddy2403 }0 c9 L/ S0 S8 N& R; D7 v
; p) r, Y: Z W. W; h( |" U# r; `
local tempminphddy240=r(tomc)
& z! T6 W8 u% V restore
& f* \# I7 D; e u7 D& R }7 ~; d/ R2 g, ]( I, @
+ g# {9 p$ p" n, b" |* i else {
, A" w+ ^6 W% J* C9 G restore : F$ _8 F2 M j* K5 X; r
di "cannot find pminphddy240"
; e! D; j9 F' y3 `# B0 N5 s( d6 K/ I $ E' V4 m; e% @6 x
. Z, `% n) J# ~' f1 c, z- R- F sum dx240
. K$ C$ d6 `) Y, f8 o" s) G; G local tempminphddy240=r(mean) # w" z* f' u3 m& H7 S+ u' V0 [
- V$ h; w0 L& g6 j% J1 g7 F7 w
/ X; u, \/ A0 c# y
}
5 O5 p& x8 Y) t" w6 | 2 q3 \; d8 y# l1 k- |% @4 ?
' k o. S6 c7 {! ? ! z/ I0 m H+ p# f, K6 [
9 X: ]( B* d0 q, J$ F! o & l8 s: J j6 s/ r2 B
& A) \. |- f% g% e" e6 I* ^9 P
gen pminphddy240=`tempminphddy240' in 1
6 v2 d& E* ^; t
' E' i. c% i' R! K4 @4 Q ( @) s7 E2 @( U. R0 r4 M8 N
*-------------ddy240pminp右侧低峰值 -----------------
: P6 a1 C3 U; F& a$ l* s- q4 w preserve ' w/ {, Y5 u8 ]; [) ?: M) V
5 M, R7 J2 N. s% v% R' ? keep if dx240>`tempminp'
8 ]6 G$ M: B0 C
: F% A' F9 R$ N6 i keep if dx240<`tempmaxp'
j, p- [' d& s3 c0 G5 S4 X: {
# ^$ A( s( `1 ^3 i0 x3 L" G! @9 l4 @ keep if ddy240<0' T( I3 ?. h9 E5 b9 R; `
* v5 B+ T* T. j% l2 u7 R- h gen temddy240=-ddy240: j3 t3 E' z" j, z% L- p0 S
% l. F5 v( G! [
count! @6 u) \8 |9 h" ^8 J. ]$ I
( I" D$ f0 x# D4 E* S6 V; M% Y
if r(N)>2 {
- V" R7 R. v3 Q1 D5 e9 s; R m2 f. Y4 k) A. ?
pkexamine dx240 temddy240
: m3 p% C3 D: \* W5 X z- j7 ?2 S I
/ r3 F j. F! B4 l local tempminplddy240=r(tomc). _8 C8 n z# H- i& r# v2 X$ F" C
restore4 |: l' r8 K r+ @( M$ I1 i
}9 H0 b2 b) N7 _5 K- A. G0 i; l
& s$ \( l8 m, [: W: l8 }$ x$ V else {. W# B" Q2 p2 H0 R n O
) M2 {8 c, C* G0 `2 Y9 M2 c, x di "cannot find pminplddy240"
8 S& ]' ?* }# b+ C q3 w, ` restore8 p* }8 D! w! m
1 W( p+ s! X/ \* T
sum dx2404 w) @9 N/ V q4 G" Y
local tempminplddy240=r(mean)
9 A" K4 a3 U+ i9 q5 ]: T+ O+ t
- f6 p9 B$ Y/ }0 s5 } ( s5 b3 s: ?1 c- v8 g/ F5 F
}* s( _# ^ q0 v) g8 }& h
- ?0 W; u% g7 u" N, E1 [* Y
- P+ {6 s; I2 o4 a n0 ^
) s8 K" d) n: Q# ?; a. ]" y. h ' P- L" ~5 x. X% }6 |3 a7 e' s
3 J& x5 l* M( t' z
gen pminplddy240=`tempminplddy240' in 1
( K# P) D- |% C5 u& S2 q
5 t$ V: J: Y& |2 b% ~ *-------------ddy240pmaxp左侧高峰值 -------------------' ?$ g/ r5 E5 M( T' E: e0 j' h! a/ t
! Z; M# x" V: V+ ]* u
preserve
8 P9 [5 Z2 |9 i+ E0 c0 `3 @4 P 2 A+ a% g; N& i$ I6 \% S' `
keep if dx240>`tempminp') v4 [# y/ |& b: @8 k+ V( Y: |
% G7 l2 o T% c* w) G
keep if dx240<`tempmaxp'. Z2 C* K+ M% w6 h2 J
, q4 T8 _" ^ n4 F0 {$ V* q keep if ddy240>0; {1 g( |$ M9 s3 B+ D3 O
count
& ~6 c5 z$ `8 H' B8 f " m7 Q) G E0 T" K& f3 R9 O
if r(N)>2 {3 w% d+ `2 E2 \! M, g
8 ]8 B1 ]0 B6 G- H) ?; ?
pkexamine dx240 ddy240* [9 e) x k. b$ S7 t
# w* V$ A! |$ ^; B8 j) ~ c
local tempmaxphddy240=r(tomc) ' q% m0 u4 O" z2 \% j
* Z. u6 Z0 b' _
restore
: Z/ `1 C. A: X; ]: v3 W. z6 L0 m }
% V" a5 @7 {8 d4 L9 O% {/ t % \9 _/ L8 U. k1 P3 ?$ {7 m6 f9 s1 {
else {
) A Q1 i) _$ _7 ` R- F- ? . B, x7 J( e. f
di "cannot find pmaxphddy240"
. _6 w: L! J& t. c7 k) G4 d+ X! v' v restore
2 U* D! M! V( p, b+ T0 w4 X
- E# J8 D, W5 ?- A. C7 r sum dx240
% E3 [. Z# ^- d: J% z& s local tempmaxphddy240=r(mean) " p' B7 j+ t& s9 a8 g
4 a% b3 g& x$ ~, V, a
0 \1 \% A+ I6 J8 G1 G- `9 M
}
. `, k+ w/ Z3 X9 O+ W7 \; W" a
* F: Y. ?9 V ]9 e3 N * M- n8 V0 {$ R8 f1 g
, n2 u, C2 h& u3 v8 }% O+ F: a
% O* i( @# y# Z7 @
/ k$ ~* [; t, U; b8 G5 ^: U
0 w$ Z. T% Q/ U9 g& e+ L" U, k gen pmaxphddy240=`tempmaxphddy240' in 1
7 }% I; @& ^+ }& x& m' d/ ^
: Q' D* r- V5 o" z7 Y' F. l
, z$ l' ~ |& ?# \4 v *-------------ddy240pmaxp右侧低峰值 -------------------* I8 i7 @1 l* |4 n3 g
. y% @9 X- l, a ]! q* e! x$ g( J preserve
; H) K, P9 L# e3 v/ D : D: D7 P1 }5 S, ?" p
keep if dx240>`tempmaxp'
3 s- G8 O7 v/ m3 L% d% P 3 `8 c4 q( w i2 a- M p# x/ r
gen temddy240=-ddy240& ^( D) t9 `: o# x( l0 [ A
' R) G% P8 `5 z7 F- { keep if temddy240>0
% }/ t& z! l- O 6 x$ V9 F7 ~4 ~# g( g5 j% H" q) S; v
count Z3 E8 z% j; \0 U& i# l+ Q: k
* l! z, a+ H) s6 g4 u if r(N)>2 {4 Q Z' M: t. R8 r. S5 Q
+ d: T6 c' I* g W3 P: w5 `9 c pkexamine dx240 temddy240
9 ]* i) m1 X9 F9 D/ h; P
2 T2 W( H) \8 X X local tempmaxplddy240=r(tomc) ; Z& D _5 `& p- r) z- y
restore: T6 G0 v3 n5 b" V/ x! [& N
}7 B& j) ]/ H3 P' Z. J9 B: Z
" U# o& p( K+ V" z1 b else {
' k' X7 ^ A! I1 V- d0 a restore- b) x/ o% ^+ I1 J8 T( h3 \7 a
di "cannot find pmaxlhddy240"
% ]: G) v7 x2 q4 B
f+ \) i% b* s 3 l# d* E* ^! Y6 H( d1 O! i& a
sum dx2404 o0 x! \6 P! M( m
local tempmaxplddy240=r(mean) in 1' ~7 {6 O" r8 X- r
( G: }5 Y8 d2 J
% e) e; j, k# o/ f6 e* w9 g% d }
( m+ J" R; h" q" [8 O- V8 p. i 9 c# O# y L$ K5 ~3 o' R( z# p) r
2 j _, }- k/ L$ {; A9 a: v" ` W
0 |5 l& y5 X" F6 m K/ o, z* W. }
7 r H! V- b" Z o" [3 B! F0 o: J% u+ i) T
1 W! `! }$ w) s f c gen pmaxplddy240=`tempmaxphddy240' in 1
# T9 \: u2 F# e' w) I0 _ 5 H9 s+ T; C' V' _8 j
*-------------------------------------% i/ w8 [1 V! Q! ~9 n6 X1 d6 M
1 K' M8 Q5 m& X* O9 h0 m gen price5d=v5 in 1/20+ D4 I9 a, Z9 C. M$ r7 [
- \4 w: j5 o& @. p; ~1 L
gen price5yy=_n in 1/20
! E* p1 |1 w$ L' Q% ^ - x/ m2 b% ], p9 @4 L
gen price5y=price5yy*(dy240max-dy240min)/206 m) z* ~8 V+ N! ~9 c
) @9 j# x8 s3 G+ E$ ]5 ?' l *price5y &price5d, O( d$ \5 |4 Z' x, G
4 A% G* p. g0 l3 w5 U gen priceny=price5y in 1
e* u" P1 Y. |/ T+ l4 n% H * c, i" b% P& O0 [( b7 G; K
gen pricen=v5 in 1! c- s9 C$ t1 J/ B$ h* A
+ J. }, h* k G# ]! Q. p
) @* X6 N# c9 H$ x8 \ *priceny &pricen
+ I9 b( i; a- \2 N; ?& A $ c- ^. ` T l% e6 ?
- }4 x6 Q. P- C6 { u7 |
*-------------------------graph------------------; J+ z1 V7 i2 k: I
( k& j/ g& c. b- I8 u1 Q5 T+ 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)
- e+ E! q1 o% G) H4 h0 v9 ]
% j7 y1 Y* y! b0 s; ~) d* ---------可选项目----------------------
* u3 S! H0 r( q4 Q4 |% I
$ H9 s) _8 W# K+ Z3 `" M5 ^6 s}
; i. h( M/ N7 [0 n vend
3 r2 I; u9 g) Q* r7 N) S |
|