|
改了一下,这次运算应该没啥问题了! x+ X0 u1 v0 p' @7 t& O! Z. ]; u/ L. q
% _ ^8 `2 }2 x
& H8 C( `9 c% R3 C; S
capture program drop hello
* a: t( g/ v0 f; K( B ^7 D0 w8 r) ]- Z/ H4 u
program hello
" `7 y, b. E. i7 l C- ^' l
, D3 O: S0 K7 v, R$ a+ c$ @3 y quietly {; z# ?2 K9 b2 C5 K2 p: f3 j+ J
1 u6 D F9 S. h( \1 Q4 s# `, oclear
4 l( g0 R8 X ]& }( f; J9 N8 ]
cd e:\finance\stock\20110101\source$ o, o+ t& e+ w( x* D
' u @- U+ \$ {: m2 Linsheet using `1'.txt
% P ]0 ^: G: m& r' {) |
1 ~ q: Q- {" ^; a$ Y' K keep if v5>0! }" V+ a) F+ G
5 S8 i. t. U0 K- N0 y- {
gen vt=_n! M. W( _/ Y+ ~. A& s
+ l Q H0 b; ^$ O tsset vt$ ]2 A0 w& L4 n+ z, T4 w& \
3 n4 K6 }& W3 Z$ J! C+ ` gen zf=D1.v5
$ R S j+ w. i: K3 H# ^# t/ n
+ y, Y$ c8 }0 d9 K+ Q- R5 P2 [ gsort -v1
& k" R" s. D6 d [% \3 J+ ^, A, r- ?0 H" A& Y
gen avol=v7/v59 _+ W5 c* L- J0 G5 \1 D
1 ^' d( F# T2 M* H R% c# v keep if avol>0) ^* W: ~, y5 f& v; l; v
% z. K. M5 |( q# ]$ W
drop vt& ^ X) Z6 ~) _' |+ q
; G! [% A1 h: h, z gen vt=_n
8 B2 y% u h( j' f r 8 n: G' U1 Z B- a4 Z9 ^
tsset vt* t6 Z# Q0 I2 F. e( F* s/ M( f$ d: W
9 S6 |, y- |+ Y4 f sum v5 [aw =avol]- a5 a7 M% s0 T, a
. I, Q* h& s2 e$ R' {& l$ |; { gen amean=r(mean) in 18 ^$ E. b3 K. ]: q
$ F! W& q$ U( C# X * 总加权平均值 amean, J- k: X; ~6 F
: ?5 Q; S# T7 m y
8 w3 r) w1 ~0 j; C& I! R8 r5 N
keep in 1/240
& R) w' x, {3 S" Y- u% S9 h
) P% Q) u& y" N1 _! u( m8 W- _ sum v5 [aw =avol]
5 z: A3 L: |9 V3 x
" t& J ]3 ?# s A gen mean240=r(mean) in 1
8 p/ s1 o0 f- D4 O
- c- n0 l4 p0 C& S- J0 V *240加权平均值 mean240
. @. j% H( |* L
2 q2 u1 O1 k \3 b3 d# o! Z set obs 500 0 V' O+ I( ^* p/ j
+ u9 a2 {4 }+ z- c" ~ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph& s7 N$ J8 D: ]% S" O* W
' e" E3 k- Y& ^5 I
*240 kdensity(dx240 dy240)
: f. Q7 s! i4 d( n- | . i) Y$ {1 Z+ [3 n/ S4 C
sum dy240
0 R8 C: {* r2 v4 H
. u3 i! }2 z5 ~+ r* U# E2 E3 Y gen yxis=r(max) in 1
% ?) M. Y( {" q* m2 m0 p
/ s5 G: F$ W6 E o; ^ gen yxis2=yxis/2. q8 D) r* @9 `
2 y' l) D" Z [, ]1 j' g *yxis
' a3 y' A9 |: r5 |! w - ]7 F( v5 l) j G* [, F8 K
gen dy240max=r(max)" r7 b7 T; S0 [% A k
" {" d2 v- R& R/ U% c gen dy240minp=r(min)7 K6 o: ?; ^) U- K* P
/ w# L! ] a' u; B8 s
gen vtt=_n$ l& U: m, R2 o# X* \0 }% _3 z+ I
4 e1 ^7 J" t* E, _* B# Y9 O
tsset vtt2 E3 H( W" f6 N- S8 `( t% Z
1 h; ~) V; A0 T4 M gen ddy240=D1.dy240/D1.dx240/ Z9 q4 T: X) R1 R( Q. z
. ], U' P/ ?2 e8 O sum ddy2408 f! N @) F/ C- k
) j% T( _# {" w, q" O1 c
gen ddy240max=r(max)
" o- N h' P! X1 F |$ y
2 |3 w, t% V8 g( C gen ddy240min=r(min)! r6 Z4 m, B6 G% e& o
- @& b" k7 C+ O6 B7 ?; h gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)+ T8 v; c# y' L
n' { }6 \( m sum ddy240g* C7 A! r: Q- T$ F# T8 q7 D0 e
; _' ?$ q3 D/ A4 ~/ s gen yxis3=r(min) in 1
?' C& C. Q( E+ [5 L( t5 v: V 5 A* E/ v2 [' T8 l
gen yxis4=0 in 1, s6 ]. _' a# k1 @; z& v8 x
5 I$ C: C9 e6 ?4 k. ?0 e1 }
*ddy240g 8 `8 \+ R/ n: I9 \( a6 s
5 q# X6 K* s1 y' V
, c1 `: H1 \* e9 i preserve ; m* u$ R8 Z0 a& G4 J
9 |& {5 T7 f5 H
sum v5 [aw =avol]5 L0 [; \8 l: ]3 E2 K; H5 B' r
9 H; P( W* \3 B8 b
keep if dx240<r(mean)3 `- ?! U' W; Y- Z" O8 G5 s( M
1 H7 c& y. W! u8 t2 {) @: B sum ddy240
1 h" E5 `* ]/ }3 z- O
) U% F& K* H) m9 m if r(min)<0 {6 d8 M* G/ P: @4 o* |. v+ p5 x& J
9 Z4 t* U. _) F) v0 i keep if ddy240<=0# ^3 {! ?5 d; d5 ^( N
; @- J5 [! p8 l5 Q W count3 g, p* X4 ?& ^0 u& } B% {
' @4 b: L+ q/ Y/ G! j# a2 b
if r(N)>2 {
/ R" O) O* X9 L' N2 x& i & U! q% v! s: E0 {( t
pkexamine dx240 dy240
' R: [ L8 d9 r) h ; y% f: c- d' D& [# D1 o- s
local tempminp=r(tomc)7 q- C& I0 t! ?, U6 ~! X; d' ^
restore
/ y0 u4 |7 M1 K5 l9 Z/ q. ?/ u }( ?/ Z+ C3 b; Y: o0 ^ M, ~
0 A+ S0 q: j9 q& C else {, C0 f& B& L2 f2 m6 x
0 ?. @7 v: L) Z4 K( f
di "cannot find minp"
9 ]0 S8 P3 h/ j3 ? , J" |* `& Q- c$ t* Z( ]! w+ [
restore - r% b$ |( d6 W8 u& Q0 d! A
sum dx240
7 `0 Q5 L0 W0 L: g local tempminp=r(mean)" L: K$ H7 S. ?6 _8 z1 I3 \" X. d
4 h! s2 _ i( X/ O: X+ g
}# Y( h3 K- e. P8 m3 Z0 ^! G
}( I9 H+ F1 n, \3 Z0 t8 S2 t
else {
- ^ q2 h( u( r. {6 l ( z7 z! @( `! H) G! e9 y5 q! X
keep if ddy240<=r(min)) V4 f3 @/ \ g( D
- H$ C- H* Q5 V* d, X# u' ` sum dx240
* y6 I5 G; x3 ` ; P4 L) u% N g/ u
local tempminp=r(min)
, _3 l) V' e. g5 U restore ) M& x2 q5 u0 G/ c. C' [. b9 `
}
4 O4 U# ?8 ?1 Z7 _+ N3 Z( b3 Z v8 `! f, v( r' K
; d0 |7 u. |" U- E; o& J+ X3 o0 l7 v6 r$ d, [. u
gen minp=`tempminp' in 1$ M7 b0 T8 f& `, q
*240 minp
1 w# W, o6 ~% R6 H$ J8 I5 w9 g( N7 P7 I
! I4 }# O5 e1 x2 \1 |) _ C
4 q5 S* x9 [9 R6 ` preserve
. u c) q; P i6 @# b
( z" V7 v s' ?5 z sum v5 [aw =avol]3 j. ^! i& `; \- b
; x9 j) l. ~& H3 g, a keep if dx240>r(mean)1 |0 Z8 W, K0 \! q8 T
" t& o- X7 a) s% x sum ddy240- ?9 v% g, l7 Y; }# z- S( E/ P
" H; N+ X; S$ N' ] if r(max)>0 {& R: H+ m s7 D, m9 {4 d* z8 Y2 f! P6 l
! E A4 ^/ h0 g4 J: D7 I P% O2 `- i keep if ddy240>=0% B9 \8 j7 m6 y" R8 C' F5 K2 o
& X" [8 q- G( O0 K+ P- ~9 |
count/ T' D( C5 S9 W+ j
. v7 x' X: s! Y& f; ~- K* o8 g
if r(N)>2 {/ u) l& y/ S' B; h: ?/ ?
1 {3 w' c0 x! \9 \' K
pkexamine dx240 dy240
5 q6 T, Q1 o7 R! S1 _
& j$ b) I8 X% Q4 H0 g F" j) q local tempmaxp=r(tomc)
2 ]. T5 X7 q6 f8 E* u, E restore
; b; Z' E. G: c/ e, S }* P1 M k5 y& `' ?0 M1 i
[3 |, m1 q( q5 G- v6 q
# t/ y8 n! L/ p else {) h9 F2 {+ g5 n6 C6 ]
restore
% Z9 ^* L# U, p/ ^0 b/ a di "cannot find maxp"
6 n2 p' E7 C3 B: y# N & I$ x! k, J2 }7 P. d# K
$ R. M' s5 P8 T3 ?
sum dx240
/ t- i z% F0 C8 `: D) K | local tempmaxp=r(mean)& B o6 G+ u6 P! h4 m5 C" {/ I( H& e) }. J
/ ^9 B# w! d R }6 ?- K, ?, Z6 ^" w$ v) [0 c
" M+ @" J9 r. d3 b4 |
}
5 `' J% F* ~8 r
* `7 ?: L+ ?7 m1 s+ X else {& H. J/ |# a2 J3 d% P: S
% {6 j0 q+ Q8 z& t2 b' _ o
keep if ddy240>=r(max)& B* }8 I6 A7 X& R0 |% g! A
* C) J8 P* j: _1 N sum dx2407 f% c1 y: J( G
R. `3 c- s! L6 |8 `
local tempmaxp=r(max)
4 Z1 k" G+ B: m/ M) h/ ], `( M restore
+ D2 f; v L/ Z( x @ }/ P0 I' ]$ Z( [- T
& U$ N* v ]$ j3 u( V
6 D5 A! b* L# ^9 b: { 2 X, m9 R( E/ }
1 W9 n7 r: J& H9 y, |/ J- q' G gen maxp=`tempmaxp' in 1! W& v% O! q: t# o4 R
0 ~+ c% X1 m: y" r2 u4 \3 ~. o
*240maxp+ E: U: s. X) l
. S* S9 @$ W) J, f; z3 S' v9 _2 V- n
/ X0 [. O* E1 I$ { *-------------ddy240pminp左侧高峰值-----& M6 z' {+ f* [% p- L6 b3 a/ v
+ b1 M) z' X; J X preserve C$ s& ?0 s& X' A
! d( W6 K9 s, ]0 t7 r9 t1 i4 k
keep if dx240<`tempminp'. \# N$ U+ @& Z- N7 c
% o( P9 o5 u9 {/ C keep if ddy240>0
# x! J: H: x. Q9 V; C' D/ t7 H0 i
( K* i& p* V4 W2 o% x4 T count: g, v1 ~0 `3 }2 e3 i/ f5 U
0 m/ p+ d& U2 y/ E7 l8 {
if r(N)>2 {
0 [/ G& |- V4 j0 L
6 j2 o# m# `3 S Y# }: q5 x. M pkexamine dx240 ddy2403 L* E; T: B5 Q { e# ~# h* V
; s. b, S4 {* X3 s2 K9 d local tempminphddy240=r(tomc)
7 B4 q+ d/ `- c" ~# _* F4 ^# G restore
$ Y, |! ^) }$ O2 o }, b2 Z! q6 [. Q+ M: N7 P) c& m
4 X: b5 n& Y. G' [. E else {
- U9 l; p2 a7 N% b" v restore
' F" z/ y3 y5 M$ T1 g di "cannot find pminphddy240"
) w9 ^" ^( l+ z
2 z2 @/ J3 l3 s+ h; ? J3 g0 [- z
V+ T' @5 g0 j+ j3 ~" g sum dx240
0 L7 d4 ~9 J! m7 j; i local tempminphddy240=r(mean) . e- T5 U, D/ ]$ `! L9 j) f, U
3 k- L4 S5 X q' {2 g
& t- W: ~: V+ @2 |/ ~
}
$ q- @' [+ i0 Q& L5 f
6 d7 |/ D4 C- h* h
0 `) _% y; @" |( V6 n# ^
# [5 {7 u5 [% B5 F7 r 9 i# O" H$ Y4 @+ o) m9 E: N+ g5 q8 y
3 ^3 [) C2 b: ~7 z8 q2 L: W : z( [: k1 p8 A1 \
gen pminphddy240=`tempminphddy240' in 1
) M; M* D- S# v) U ) K) d7 E, t2 t5 l: z9 r1 k3 [4 }
: p6 l4 N6 d6 E *-------------ddy240pminp右侧低峰值 -----------------2 G% A& n# V2 F+ n* b0 P8 h. ~
preserve # {" {6 v0 g7 C3 c2 T! B
7 d/ V# D U/ p9 q$ y4 u' Q keep if dx240>`tempminp'
8 Y* m! p& m; B# i# n 8 U! U; A' _# D7 ~( y# ]; ~
keep if dx240<`tempmaxp'% O& W' G& _$ m, D8 m
& H1 y. T4 [. Q5 h, p; \+ N" P keep if ddy240<0# Q$ O8 Q/ K* _2 r
# g8 L4 ]% U6 Q0 t; \9 X; N$ s* t gen temddy240=-ddy240) ~4 t# B2 `7 s
" L! \4 w7 J7 i0 p9 n7 o4 F
count% s' \& ^ |( z9 Q* o- v! d! m
7 n7 ?4 j9 h% v; L/ X& G- f7 W if r(N)>2 {/ z1 `8 z% S& s/ u) S+ S
+ F! R6 M0 J$ q pkexamine dx240 temddy240- k# M/ ?8 z6 m
& V( m8 s+ N) |( U3 Y9 W: y M
local tempminplddy240=r(tomc)) ^+ F' O$ ]9 c. `% ^
restore
# Y s& q/ l) N! R! j- I }
8 ]4 \* s- f0 @2 ]8 U0 R, ~
Q1 F9 m+ R4 f, M2 f else {5 k, Z4 g, J& ?. ~- n
+ h: C) R/ }4 J1 N2 ]
di "cannot find pminplddy240"7 e. g. t1 K6 o; M
restore
y- O8 a: r, c; X * i$ P- v: R$ R8 q$ u
sum dx240" r4 X% [; a9 ~) U6 `4 ~
local tempminplddy240=r(mean)3 V! `+ ]; G: }: C
0 _/ o- T! s+ A* [ - h4 n* b% o' Q- D* F. [( x! z+ A8 B
}
$ k, `+ e1 h5 |. K4 P6 G & Z( Z$ u; O1 t
5 {2 `* p+ l4 E9 h
. ]* A+ h N+ R! ?! d/ | 8 A9 C# J7 u. t2 l- n
5 ]( e, i0 i9 e$ q, [6 z
gen pminplddy240=`tempminplddy240' in 13 b: [+ Y7 f1 O1 E' g
3 o" H0 y3 S* }, d" Z! Q" h3 { *-------------ddy240pmaxp左侧高峰值 -------------------* p. h+ l2 r0 }) w; j
( f7 q6 _7 o# T) Q. P preserve # h8 i2 \7 D6 g) Q6 U" f3 c
9 B$ f8 o" R$ X+ Q
keep if dx240>`tempminp'
% h6 ^+ ~1 G6 c% p5 F3 T+ U / l. y* E7 Z; A% G5 h4 N( k; A
keep if dx240<`tempmaxp'- H- k& b% F: |- Z( ]
1 L% o0 Q. w2 k
keep if ddy240>0
. U% k5 c8 X. h6 T. A1 { count& t7 y# r, R* Y; \' W! n, w. ?) Y
7 v3 u5 O* Q* Y3 k" [: n if r(N)>2 {
" [7 I0 Z5 |* c4 f, W# } & ]# N/ p+ G) A* [; N
pkexamine dx240 ddy240
; g' `- J& R/ u6 \
4 s" N" C( R' l8 a; y) u3 j local tempmaxphddy240=r(tomc)
( _5 F. l! Q% Q$ I& |/ z 5 {/ q3 S1 Y3 Y
restore
& \9 X S7 g( e0 m$ H: C- E }
: n9 r/ g& _/ |' e! K' ?
; ~3 V) K- @% f. o+ @, P1 t$ S else {) A: q5 w$ {: X6 G: u3 Q
9 X* ~4 X) w) C% J
di "cannot find pmaxphddy240"
' q/ E6 ^! l( F0 ~ restore/ C% `% q) _7 f% u- x8 h
6 p$ f1 x' D8 L, [# [6 p3 c sum dx240
- \* U" k4 ?+ e local tempmaxphddy240=r(mean)
8 i2 I& O6 p! F1 R7 G& W, N# F; J+ b
9 |! L2 ~* r; p( l) a& }( I3 ^
5 y% P% c3 | [0 e g }) P+ Q1 D) k! n4 h
" k# b4 U0 M1 v2 \0 S# f/ S
7 @ V8 ~# H8 f$ g4 x9 [5 Z% Z
9 d/ y% L! n: K7 F; [2 r
: a$ b, q& L( h9 g! t( b
" N, F6 A: i7 ]( Y7 y 1 o& k7 c- U$ z( z2 _ h: f+ w% }3 t
gen pmaxphddy240=`tempmaxphddy240' in 1
' @0 a. G% T5 m . O/ `; G) U: \& D: d
& c& i+ Z i7 }
*-------------ddy240pmaxp右侧低峰值 -------------------4 i2 b+ u5 y, A T
3 ]% \0 b7 q, {9 @ preserve
: A: o5 @! w6 n* s7 y* a/ H $ U9 L8 I# ?- ~7 I, @0 U
keep if dx240>`tempmaxp', Z9 r* |. g. _) k6 t: o) O
/ A9 m1 x3 [" f2 k! y gen temddy240=-ddy2407 m8 _ j. |. h7 Q, c& ]
4 y) [" p0 E- M8 J
keep if temddy240>04 X/ `8 E1 x/ M% W0 [% i
3 V9 I& V! C- w) K" s/ R0 \5 Z$ U
count9 D6 n0 @4 Q F/ L. S* V
0 T- h& a: l# _2 D( o' h if r(N)>2 {
4 S3 {9 ~/ u5 T7 d9 w9 o2 s " S& k, T3 O& y$ Z8 b
pkexamine dx240 temddy240
( Q6 J6 E8 j0 m- { - a& Q/ \1 Q4 L9 @* c) [, {
local tempmaxplddy240=r(tomc) 9 `$ S; ~( L4 P# w/ J
restore
' }" @" Y' y( y) h, W }
* `: ?2 K+ w$ g/ X3 n% P) e ?" L
- J& E( q2 e9 e else {( s) O8 ^/ b+ c! X. G% ~! D
restore
; w" C- Y2 b3 v/ o2 ^$ Q2 {6 }' i, h di "cannot find pmaxlhddy240" F2 O% i+ q9 J% A) C
9 f! M- _# d. Z, I) ]/ M7 V% C
) g1 H/ R$ K4 |* S2 F
sum dx240! p% T3 z6 t" {/ k$ x
local tempmaxplddy240=r(mean) in 1
- R4 o6 m- c4 b$ H# N, [ 4 F9 j# M3 w( p T: S
3 ?' Q" P" l/ a7 N8 ~) [ }/ K& F3 c$ c+ u) E9 m2 M
6 N! |" r; f0 V- Z. [4 u7 h
" Q6 m% [% L6 V) D' A- |/ J
: g/ E8 ?8 H- s $ F2 P4 |! I6 {4 E" s9 I# U1 L
+ ]. B1 H$ i( e0 G# x0 k4 h3 q9 L
* u" x3 e8 m: w u( A: \! P2 G gen pmaxplddy240=`tempmaxphddy240' in 15 N4 Y* B, j3 q# u
, Z q/ e) v0 k9 D' z *-------------------------------------
* e0 X5 r' G: S. `: s6 F3 i # _5 c% K6 I8 ~/ h6 k
gen price5d=v5 in 1/20
5 K+ v, l0 S; H1 K, i( j4 S% P
4 b& `& N4 d8 ?8 O& R gen price5yy=_n in 1/201 E' T* h5 q+ \" N; T+ l
+ A1 K; ~/ q+ Y1 n3 m$ a gen price5y=price5yy*(dy240max-dy240min)/20( \! f5 e7 j- S. U7 r2 f
7 O0 D$ V: W# y6 E0 F9 s
*price5y &price5d/ ^% S( W: o: b% s
: f+ }" A; S5 d3 Z/ L& @ gen priceny=price5y in 1
( h8 B+ C8 j1 W! u- k, t. ^# G
5 B/ u: X. Q% U4 u gen pricen=v5 in 1" Z, Y5 I$ m+ Q# t, z" p
7 R! f9 o! ]( I, \0 s# d" _- |/ s ( ]4 U$ U8 [0 s+ L2 q+ V ?
*priceny &pricen
2 u$ X3 l* |& B5 w, K7 q8 n 6 M# g# J/ d/ o0 R. B# @
+ P5 D& Y2 C7 x# N
*-------------------------graph------------------& S6 q* w }1 R( R/ Q: w/ f, M8 l
/ R0 Y8 Z) `' J, x4 w3 |
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)
" T; p( U& w( Z+ V: ^" P, M5 M' @, q
+ @8 T6 g8 t q% p" L9 T. x* ---------可选项目----------------------
j/ c5 _$ |2 |' Q- d }6 v) R7 z5 k! o7 F4 r7 B2 | j$ q
}
9 e; Z" w" v( s( q6 i) S( Rend
% a$ g& u2 [, J: c* }8 Y1 N |
|