|
改了一下,这次运算应该没啥问题了% ~+ D+ S8 z9 g+ S' w6 r5 ~- w
7 E9 y v! }! r X7 _
4 B; \0 y5 v u/ H& L+ K
capture program drop hello
% u c* E& _0 s0 J" N5 Q' F
+ n/ F; E2 q4 ]+ E3 [ F7 Sprogram hello) C$ q% ?$ o2 N" E( f
6 ?, Y9 J( y* e quietly {
. l) |6 T' W) m2 l, V- N
9 {+ U0 W% v! l" tclear G, G& Q0 j0 }5 M
+ q& c: S) I- P' `$ c0 acd e:\finance\stock\20110101\source) c) ?* { R0 }( [& V5 e
/ u/ c5 b* i3 ?, F4 c+ S% q
insheet using `1'.txt, Y1 U, y9 q3 H& L0 j; ]+ i
, \& D& K- Z& I, b
keep if v5>0- H/ L, V+ K0 P+ h
2 c" J, D) d. V3 K
gen vt=_n/ ^, y N* s6 O3 j$ g. S- B
. \6 ]8 q1 ]6 c2 t2 @7 C' A) r* B tsset vt, c C6 k) k1 l% Y5 j% p# h
) u. X0 u* l5 @: ^7 C1 \& P: t gen zf=D1.v5
4 F& D5 |+ f* ~# m
' A7 o2 | [5 o1 F6 m7 v gsort -v1% N8 X' ~: w% a) L: e, P. \7 K
! Q2 H, F) p' M( e( T7 o$ S% [
gen avol=v7/v5
; ~+ p7 |' B* F) D
& _6 w, z; h, N9 r6 e5 w: v* h6 t keep if avol>0
9 O& ~; t Z* l% P' e
- ]/ c* d3 Y: X) g$ j2 T; m6 F5 d drop vt
m6 N. D! t/ k8 m' v
( n# a1 ]/ h* ?+ n/ y) W gen vt=_n! q: c9 |, N4 h8 |
" s( [# n0 _& S( i' i
tsset vt$ F* e( p. K/ {1 e5 P i
+ w$ {9 l% Z0 _; m- m1 p sum v5 [aw =avol]# `+ g% Z" v5 w8 N
, Q% l, @! r e gen amean=r(mean) in 10 v3 ?0 n: Z, r4 x: ^
9 Q) E# G) I9 Q! I8 v8 ? * 总加权平均值 amean2 b v; l5 [# }9 l4 ?2 C1 d
) G$ p3 r& K: N G/ K) N0 J
3 | }* n3 n2 F- N
keep in 1/240
) M3 ^( |) d" t
/ L+ I8 c: C/ m" u sum v5 [aw =avol]
* k+ S7 @0 l; V0 M. n( f
8 ^ {; j8 C* s5 T8 P- y; K gen mean240=r(mean) in 1, \2 `2 j( N* \8 ^
& B2 `& V5 s; e, t5 ^9 F+ K8 j
*240加权平均值 mean240
; h: f, @: ]( H ?& Y / P6 C. G, b0 l- U9 F7 A# X6 x3 e
set obs 500
4 {# h/ N. G% S6 `" k3 w 4 N3 }) W3 V4 i6 y0 P% G+ R' x
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
+ M$ T" m' P( b# B/ y8 b! `0 M 8 m$ z( e" l6 @3 O0 o
*240 kdensity(dx240 dy240)
8 v/ c( s( i2 l2 x# r: ~ 2 u5 ?+ r" s7 R1 ]- a# {" l
sum dy2406 K* ^7 D( d" r- B
; r/ W2 i- u8 O( n+ ?
gen yxis=r(max) in 14 T, A% G! C8 Q" C- L& D0 ?
! [- y& i) e' {% B( g gen yxis2=yxis/20 Z) h' v' x/ @5 t+ n& I2 j
" R' O+ @: M# t( O9 q
*yxis# S" V( N( z$ v( F' K
, @* O, C: y T gen dy240max=r(max)* ^4 y( E# O, q V- i8 K! k0 \5 j- P
' q5 ]- u _; a c8 `6 G& }6 T
gen dy240minp=r(min)4 }/ L. [' n2 i9 ]' | Z+ _; P
* P/ L! ^/ S+ _$ P' Q gen vtt=_n
5 G7 l& P" u3 q# D8 X! ~9 `7 x6 I/ \$ L, F f. S: @4 Q
tsset vtt
" S# o, s: O: Z$ ]& x# i
9 p$ X l) D1 _' y: A/ ?0 {7 v: D# |) V5 Z gen ddy240=D1.dy240/D1.dx240
' ~8 \9 d1 O5 U% h. M 4 E3 t1 w; p. g0 t
sum ddy240
( E- c( z; o5 v' B/ {: E( J . Y$ J6 q5 i; s6 w5 k( s. y, n/ |
gen ddy240max=r(max)4 w3 V, l( Z( B. z0 d/ o2 p
; Z' x6 _' T b: L$ f0 Z5 Z) B
gen ddy240min=r(min)
' n! Q: n* P( {9 L& h) t ' N' e: o2 [; W. B' F" z' M3 o
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)' i/ d& K' F$ f$ a* S
6 j1 n' c' Q+ d8 F& B7 u5 e+ B! e sum ddy240g
/ X. v3 Q/ k1 R Y5 K
" Z" f8 f" `- [2 j# L* `: A/ ` gen yxis3=r(min) in 1% x! `' S$ H2 b1 ~: t) a8 r
5 z) U- w: w& K. U gen yxis4=0 in 18 l: q7 ]) X; o g
' X2 ~$ l. s9 p8 s
*ddy240g
5 ^5 }, ^/ w1 Y- c( Y) r8 i
7 m' v9 f' B2 u$ ^& \
2 p5 l. j1 d* H; F7 t6 l" q, h U preserve
3 F. I- Y) r: j& a) U5 r
* [* `8 S; K) Y& g0 Y$ { sum v5 [aw =avol]8 z! c( X9 m5 D8 c
8 x8 B% d1 a" `7 |6 N6 }9 G2 `
keep if dx240<r(mean)
7 O3 h( ?9 ]2 l9 o
$ g% E2 d+ L! F7 O1 b6 g8 G sum ddy240! `7 Z$ z. N- k, E. o( f* [
% |" @3 |( E$ l' ^$ b$ D if r(min)<0 {4 P3 E& J. e' l1 e% {, n U( ?6 _
( o( N( e/ p, C, x _
keep if ddy240<=0
8 u1 R! i k0 L( H9 n5 v1 k' F, Z " m5 u+ @ u8 J# ~2 z. A
count4 O- w3 v4 S1 Z* d2 s
' V. c4 ], \2 F$ B+ n3 {1 H
if r(N)>2 {0 W1 v+ R; h+ n! i$ T5 s: B
9 n3 L# ?: k. m pkexamine dx240 dy240- F- E/ w: T6 ]* ~
5 D+ [8 U. t6 ~+ {( e$ S( o
local tempminp=r(tomc)) S- p& ~6 K: `4 e4 U
restore
' M) `: T+ I F% b1 P }
' U3 n+ s. f! g3 ^ a$ ^
! H% _7 g& S4 u# R4 y1 @ [1 N2 Q( W else {
$ |: F4 A9 Z8 c! @9 v3 q ! P6 [: O8 _) @5 b: c
di "cannot find minp"3 Y$ F/ \ h: J$ C) P
: p: Y) O& |# _8 d Z/ W3 w restore 4 z( j4 ]" s3 _+ J* h1 N
sum dx2405 |$ }( x/ W7 B$ ]2 ^* l: U J0 _
local tempminp=r(mean)
! [ u" k; Y! J
1 i0 q/ `. j: F% Z" M1 P }
; X5 N- G0 p/ I+ u4 h2 U' r }, g% `6 t4 ^: c" B
else {; Y) j: Q; @- I: y% |* X0 X! E
2 p% C: Q& w+ }" v; [: X
keep if ddy240<=r(min)% r8 B* ?! Q% n/ L
7 A P+ P, f% N7 b) F/ q1 L6 k' v$ C8 X' M sum dx240
. h3 T+ z4 i* q& q( O 2 r4 p0 q$ {9 k: s. X* {' K" l
local tempminp=r(min)0 g! k1 C; v& `
restore ) V) Q, `3 Y* m+ |, {
}
7 s3 d/ M o" ~5 X$ @5 T4 g
8 n% h+ s) K x3 X- x0 A
; T; }: D3 j1 X8 X8 t% z- v8 N, O7 }; e; i# l0 C) b6 K
gen minp=`tempminp' in 1! I$ ]: O& q( Q" Z& Z- o8 U; f
*240 minp
; a5 e4 o2 o# P5 j( g
; j. Y* P; r$ t, g# O' E* ~7 c8 ~2 z1 l- e- a6 S* g
- f. R! I! U, f& T" g' ] preserve * E3 ~: j- S9 Q9 J) x, n* {: J$ h
, J3 |! } f) [9 q: N y G sum v5 [aw =avol]" Q7 l' d& y% y4 p. D2 Q
: o1 l6 T7 w7 X5 i4 K* w8 }: o. t9 X
keep if dx240>r(mean): Q+ T6 X4 H' n$ }: K: w
/ N3 M3 u, k& J+ @ sum ddy240
7 S* I. u7 d8 S, i5 W
+ E# `4 q" U3 o if r(max)>0 {* K! Z( @- r8 S8 w% A$ i+ }
" w: n3 E% Q" u+ v" J- c$ g( {. a# j! l keep if ddy240>=0
# w3 l8 w: k# r2 y
7 ]3 K7 a% l% m count8 e' r: f3 i+ u# b8 b# ]
. d3 J7 S9 A9 G0 N8 P
if r(N)>2 {
1 o& A7 L& j+ [/ ^! c
3 M1 ~6 B) ~+ g( W# h* M' R pkexamine dx240 dy240
6 O6 C! Q- o0 b. o( f, G - E$ ?0 r& |9 c" Q* k5 z! T
local tempmaxp=r(tomc)
* ~5 {0 D6 b5 K! s! a6 d/ @; J restore 4 p: E7 a3 Q0 Z0 K
}6 z9 M; y2 |1 ~6 f$ P
3 @# _/ ]8 Q |2 `2 V
( ^. |- n- X9 o6 M
else {
& o( A1 J' U; T9 n2 J restore
' ^0 h+ D5 |& Q) T- q6 U f8 l$ U v) V$ j di "cannot find maxp"
' D: H6 r) E* ~1 S6 O' v4 o
$ o# u$ Q' h6 i1 C6 N; \ 8 F" o4 t, I2 N1 p
sum dx240' s7 p( ?& Q2 F; Y- y) w
local tempmaxp=r(mean)
2 n5 K0 ?+ K/ {; l 5 c; E0 J) e! p- }3 `
} i5 B& u) p% c5 _% F
& ]( B5 ~$ w" n: f
}
6 B0 @* A6 X2 A6 d1 K2 s * d0 ^- P0 Y7 e% y- m' H( S
else {& U9 v; b$ ~; Q7 N0 ^# E5 p* ]4 w5 t
' e. ^% f7 r( d keep if ddy240>=r(max)
. ~6 z% a( A$ ]0 B6 l
& T, c9 V' H/ n2 l k/ \ sum dx240
# A6 Q6 w+ C: i& F6 t$ B 8 j( A6 s( |0 s, C$ J1 I
local tempmaxp=r(max) + T0 Q1 A/ |3 x
restore : ~& R$ B8 n; U$ @3 j$ q
}4 X2 z8 v- N9 O1 t& r" w
h! l5 I$ l2 R) R6 h C& V# a) Y6 c% M. }( g! x! q
) ^& U% E+ X J. i. X
4 v# ]" y. Z( W: i1 g1 H' q) G
gen maxp=`tempmaxp' in 1. ~0 ?3 c' S- i k, u
7 P! {, A; l+ Z0 [ *240maxp/ {. q+ I3 g( j4 X( _* P. d( y' x
O* u/ n& r) S3 M ; u C2 [$ Z3 e" W) p/ A# B
*-------------ddy240pminp左侧高峰值-----
R0 G9 J# B0 S# x% }
- N$ K1 S q/ j7 M- p preserve
" F& G+ A, W: _7 D' S ( }% f( f6 o( Q0 v& a7 @, C. [( _& j
keep if dx240<`tempminp'% y, Y9 ^6 O. T
3 x) ~. _9 @. v' h9 n. }. s" J keep if ddy240>0& h7 B& A6 `5 y& M) Y+ b
& u0 x! u8 `8 f1 ]9 p+ C' e: y0 F
count
5 B0 I4 l' W y$ `$ G$ h; @; }2 | # Y; j: h7 \7 ^) ?& ]
if r(N)>2 {; p7 O9 x0 q* q; |
" D, S: Y5 U' \
pkexamine dx240 ddy240
+ K$ i& `* j$ K 2 J0 {) Y( M& b6 q, }4 `
local tempminphddy240=r(tomc)
! _: O _& H2 i0 O restore
" E& e. O9 d# J) l8 }- o6 w" m. }0 } }
. D3 K4 g# J" R) _& h: f, Q
; m7 s6 t& m. |4 }" B else {
) y0 X. m- I+ ]8 G* C1 Z restore
7 l' M6 \9 I& R7 S4 t di "cannot find pminphddy240"
+ ?% Y& P$ c' c2 ?2 [) s% C 3 v2 k; W9 M5 v0 u
Q2 U8 F8 s2 F7 ?- I* u( s
sum dx2407 S$ `, C# v8 {5 Z7 } ~
local tempminphddy240=r(mean)
% r, C0 m6 r9 m; {7 L( i$ Z
: w5 _% {' E8 \2 y + s. L" A4 R8 B7 Y8 r# `. B9 O5 M
}& ?5 w7 [% ]. s: i# S7 Z2 \
0 D, Z) E" I: a: t! n$ F
% {/ T& k* T# b' k
+ C8 a# I% ^3 r( M4 Y+ v) j
( Q# }7 A+ J9 M) k- g- |
9 l+ P0 M2 o) d6 H1 C u # q+ Q- x; S' c7 R J& O
gen pminphddy240=`tempminphddy240' in 1
+ ]# _2 O2 b( x+ T% y& C
+ o! J Z& O4 W6 Y7 C' t/ S4 M" x) ? F . B4 B* ]4 c# H' A( u6 ~# u! F" `& n
*-------------ddy240pminp右侧低峰值 -----------------
) Q( n6 k g3 n$ o& C, X preserve # K7 p+ r3 P. B- @) W/ d8 i
! \3 I5 V B. B% e2 r1 ^5 c keep if dx240>`tempminp'
% b. ^ z: `1 p: [6 m $ w6 p4 t; d, n# ~. v
keep if dx240<`tempmaxp'" _! e: s, }. s- `' I8 ]
1 t) n$ ? R9 J keep if ddy240<0" K) \* \2 h/ q* @7 c* x
( E" G% k( n0 Q8 I& G! r3 p6 g gen temddy240=-ddy240
; Y# l: n9 M; d# U0 g& F ] ' e3 @/ I' P& e |# z, _" D c9 k, [
count
0 {" ]+ z7 o& O2 G0 P- d @) P
4 Y' }! o( H; B3 A$ B* N/ { if r(N)>2 {6 u. {+ O! b: W& @
" G/ F- c& t3 V pkexamine dx240 temddy240
1 N. Z/ x! x+ v6 u9 r1 {/ u: \
+ u) u& P0 s, z% q% h* P5 v local tempminplddy240=r(tomc)
6 r9 C9 l) N- m restore! e! Q; I' N. l& f6 g2 L3 |* p
}3 l' B* q+ [2 Y; a
+ a) Y: z& y( b7 |% v
else {
+ h7 r: w o1 V" k. o5 B
9 S$ n% I: `1 e7 l( ^ di "cannot find pminplddy240"( ]3 F- N9 R; F- W" V/ N, `
restore) y) m3 Z' K3 q7 ]
1 M* o: Q6 k7 [0 J5 F+ X sum dx2403 C7 z- A5 ]- d% ]' _
local tempminplddy240=r(mean)
0 G8 Y, k4 \+ U$ X2 B+ i" V7 s
% m! ~7 k! n! u; v0 _+ ], @
( }/ `4 J4 O/ E% y1 Q3 p8 ~ }' i& s5 ]) ~6 D E+ Q
# f: y. c' Y+ |; K, l( W ) q% j- D: v+ `$ D# w
! b3 u/ I4 u5 @* E6 N- i ^
. V( f5 P( B( n8 D' N0 G \ 6 X# v r8 E7 X) U5 G- ?9 [/ r( F
gen pminplddy240=`tempminplddy240' in 1, Z# H' u# T2 t- r, _% y
2 C8 V0 _" V- y% _
*-------------ddy240pmaxp左侧高峰值 -------------------6 C1 ]9 c2 I0 V4 T
8 I" B* ? Q6 L# |7 j preserve
8 r, ]9 E* g0 z% _ z+ K & i5 ?; g5 x G# R: k$ ]
keep if dx240>`tempminp'
9 O$ L) s0 a6 @* l3 i( Z, b . |; a9 b* k j4 h
keep if dx240<`tempmaxp'/ |: [. X4 v0 e( f
- [7 @0 j4 W* C5 l5 s
keep if ddy240>0: v4 d6 U) Z' x; V) t
count
( j$ Q" Y: F$ ]) r! \ ( }# ? c R, N1 U! u
if r(N)>2 { ], V7 T. g6 g _8 K4 l8 w
! ^$ J: I0 A7 V/ T
pkexamine dx240 ddy240' A' {. k8 f0 A5 @9 s
; a5 I8 U K( w9 K, S% x9 [! O% K) G local tempmaxphddy240=r(tomc) 6 `, W; v9 y. e' |7 I, w
) \0 F, H0 V" |4 |4 F" P) N0 `
restore
9 m. Z7 M. h% l0 ~ N0 t% I }
" {. W* l- P9 C+ t$ W
: C/ u k- i8 s$ [2 @) L$ k else {
& B2 M# _7 a' Y/ `2 ~ % x* m# v0 s/ m k1 J+ G; q
di "cannot find pmaxphddy240", O* j4 t. A! E8 y
restore& q& a: d+ @9 B
& O9 g: R) y, p+ Y6 y2 S% ~4 @$ n sum dx240
) D F, j" @3 W* E0 S/ z' } local tempmaxphddy240=r(mean) 7 P4 X, m/ d; R; y" g1 L; p9 j+ [
; z/ ~& z5 l. \2 s z( O( e # N$ R- P8 R0 c
}$ C" ]8 A& m; Z- }
# j. Z( |: b: ]# ?2 X& p, b5 q1 C
- w; h3 v, j# z* }0 {, v% O# Z 7 H$ O: [3 k; F+ \7 r- [
+ N" w* x7 |2 n) {# |! J
. J) _5 D* Y0 [4 m7 f( g" p+ C0 B 5 x3 r/ V7 r% ]" u8 L
gen pmaxphddy240=`tempmaxphddy240' in 1: o( W' I7 f5 g) D% ~0 _1 C3 V
w6 M w0 L% T. w 7 y$ |/ }3 Y4 U5 Y: \! i3 x Z
*-------------ddy240pmaxp右侧低峰值 -------------------
% h1 G% m% o' C' F# f+ q ' _/ J! O$ I3 ?- S
preserve
# b ^0 z3 p+ m5 C4 j
C2 w) t7 ^8 P6 J7 f1 J keep if dx240>`tempmaxp'% T. c: g E% I8 X5 j
$ `' D p) e8 w# P
gen temddy240=-ddy240+ M. f9 j! ^5 k
G7 W3 U1 U, ^. d7 F$ c keep if temddy240>0
& X3 w# ~, o! ?+ \5 d8 W" s2 }
9 p( y8 Q" d# O- Q/ V% r# p count/ s, D! ?& h: o0 P: b* ?
6 {5 _# y4 g+ q: N e/ X' x
if r(N)>2 {! Y) i0 q# z; B- T2 ?
- T+ z( I, R: _" A3 T1 E
pkexamine dx240 temddy240
' v; |" t. Q$ q- g
2 O6 g: w! y7 g8 w local tempmaxplddy240=r(tomc)
/ T8 |( I" \0 {3 v restore
2 m. ?- A J3 O; B }. y, o. p( K, \ R8 L
* P& |1 c9 b) \4 A: f+ y else {/ {( F7 t2 J2 }" ]; ]
restore
3 d" X! K: s1 D% Z1 T di "cannot find pmaxlhddy240"+ y$ m+ Y2 E1 b& d
. ^6 w& @, m0 [$ _3 R
& L) _4 C+ o2 P# ~
sum dx240
8 X, A. k v8 `/ p local tempmaxplddy240=r(mean) in 1
# {- [/ |) }7 E: |9 R% t( D7 D 5 w! O) Y* r( |! N$ q C' a
0 |2 A2 O) {7 V0 g/ U+ _ }' ?* e2 ^' Y! T) f2 @" Q" l) V
2 G o% ]3 r, e% G: M
0 X% s# M" a7 w2 B ; N2 v- z( T/ j0 j
0 U/ w$ i$ S/ \4 Y- b$ D* r! i9 v
* a$ O) `9 J: ?! @+ X
4 V7 ^+ w& n) y, F X gen pmaxplddy240=`tempmaxphddy240' in 1
/ F6 i. r6 i: |+ ]
3 e: g7 x; K1 e0 H# `. c *-------------------------------------
% O5 f9 e$ z# w$ s. H4 p9 x ' L7 r1 y9 g% {2 t& e2 _; S, g* @
gen price5d=v5 in 1/202 n% x" o3 U0 |( T; a
; H9 `+ N5 y6 D/ @: k gen price5yy=_n in 1/20
2 K3 b4 C/ V( P0 [9 P ! p; ^/ G6 S, o# b
gen price5y=price5yy*(dy240max-dy240min)/20
( ^4 ?' G$ l" G2 P5 | : o6 L+ q( E7 O, e2 S
*price5y &price5d6 Q# e) l5 S4 l; Z9 ~ B
; d5 b" |" Y9 Q& o8 J gen priceny=price5y in 1
* ^' Q+ g+ J2 v; R8 A$ I 5 j2 p, n) m$ t' l9 d' m
gen pricen=v5 in 1
) z% s, ^6 R2 s
$ o# V0 l& K% R 3 ]" B3 g0 v* o* {$ H4 t3 y4 ]/ G
*priceny &pricen
6 F1 e# W$ O1 \7 U" A: G
, v3 `- I) a3 A2 r) w5 q8 a ) {4 Y! a( n. [4 r2 x3 Q
*-------------------------graph------------------' h/ F, P9 E: V4 h. ?
: O7 Y0 h8 [9 l3 Q: ?; f/ ~ 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)
4 \4 _! c6 s L3 z8 ?% p
8 u5 o: H$ o+ w6 I- |$ n8 m* ---------可选项目----------------------, @1 A& _% U. `) s2 B0 S
( d1 I# w% H- y, h2 n! S}
+ n7 f) p! \$ \2 Lend
; s. ]' U" \2 Y) u, x |
|