|
|
改了一下,这次运算应该没啥问题了
. m, l, Y$ u5 h! X, h
. c6 w9 t6 ] L( i! i, u; L0 K0 k ]" H( n5 q# D q4 ^8 y# f
capture program drop hello
/ }% V& Z- W0 P. z) p
/ @$ H4 o3 O. K3 O3 }1 P( Nprogram hello
0 o* T3 n/ Z3 B/ l, @% o4 \& V$ t2 T& M) O W
quietly {
) \7 b5 H) z# c
& o7 O: ]- Z' ` z7 r- wclear9 x3 r# o3 V% l' c: s- T6 g
0 c: j4 H7 i. H& C0 n+ D. _: H
cd e:\finance\stock\20110101\source
& k/ y, i) Z. Z8 i8 z* Z
3 P8 w* x. d: F- Binsheet using `1'.txt( j& U0 n/ \0 m, z' j( L
6 M" m; q: d7 l, ^, N5 i* S( X
keep if v5>0
1 Z. i* X5 A) W3 ? / F# h. Z- n8 @ B; P4 @5 d$ d
gen vt=_n
4 G! b; ~* \* l2 I
" O( e) D# I. m& a tsset vt( o: i4 B3 W# Y) `+ Y7 t
& a3 ~ E' w8 R1 _
gen zf=D1.v5& S2 i2 }% }; C
7 c( o. ^8 P- C gsort -v1. T, I# s# Q+ w" r" z" D
2 [3 h* U& }( W3 b
gen avol=v7/v5
5 j$ v) ~! ^5 ^% h 7 v' s E; }) J" D$ `* H/ B; I
keep if avol>0% ? u) b. f! G9 W. q4 v
" C; S2 V7 f( A" b& \
drop vt
/ S: {4 w# p u" O+ Y, S% Y
, x0 b/ Y$ k% [& W1 B7 \ gen vt=_n
) Z1 J- p# N/ `8 N# p8 V. e
2 V" a9 A8 f# ~. Z( U) Q- R7 k tsset vt+ t3 C; [5 }; n! _
" e5 k; V7 y7 O1 x
sum v5 [aw =avol]
6 b2 z1 }+ n( G8 s3 y2 L, a* h6 r1 q
6 o4 J3 G4 d! b* T! X gen amean=r(mean) in 12 p% S3 x$ P& W. n; B7 @4 m& L
& I- }) s" |6 x4 v8 O
* 总加权平均值 amean
5 N& R5 `- Z3 g- g
) o1 p# l$ H5 p" B+ G: _3 ^6 C 7 f; H- E* I: f! r
keep in 1/240) x( \6 O5 t5 e/ T4 P; w: z
/ N4 }; }& X! A sum v5 [aw =avol]
' L: H( i8 B: V) W4 N1 o& e9 \0 w9 e: r1 A7 f0 l
gen mean240=r(mean) in 1
% G4 z# G, F T # E3 x; w6 Q; H' q- E u6 C
*240加权平均值 mean240
/ q( D" ~+ y# P& `( _$ _- @" [
2 }6 F+ A+ q+ l0 f set obs 500
$ z S% M) v" S- G4 i, f4 Q7 m4 [! {! i
& H- V9 W, k; M. F: L kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph4 J- D4 F: [( y
+ V( q4 j0 Y* V
*240 kdensity(dx240 dy240)$ e F: ^" Q5 m0 n2 u! w* o
, E: b5 F, s$ o, E. @3 E
sum dy240
& e/ |9 _3 a1 m2 H# X * X" U: [/ H# ~7 @& v& p
gen yxis=r(max) in 1
5 N T. y+ O& ~
1 z0 b( u# K) y* U' p% c3 h gen yxis2=yxis/2
( r; G+ {/ b- J, f% W% m) \
$ o" H* m. {( M% V, d. f *yxis
2 q9 E9 X% }. d) l / S' t0 P) ]5 P. y! ]
gen dy240max=r(max)
4 U) r/ e4 w& G, C( M- z1 M1 s 0 z& D1 N% B( i+ j0 \
gen dy240minp=r(min)6 A) o7 t& R4 L7 V ?6 {; i1 z# \
; Q, S# L" Q) J9 Y gen vtt=_n
) l! g$ g( v% [2 }1 ?1 S+ w* K9 W/ j" x( [9 Q* |$ j# z+ O+ F
tsset vtt7 q! s, I: L6 C* [& {
, [2 X5 N$ e I- o% S# ?3 J: K gen ddy240=D1.dy240/D1.dx240: X+ U- |- ~+ I/ f+ J
" F& c; p, O6 q( H sum ddy240
- `. O' c% c. _+ R
/ B7 D, {. a8 N( v% w' \6 _3 F gen ddy240max=r(max)
1 \ P. @8 I) P5 S
) T d0 [1 y3 p2 p: p gen ddy240min=r(min)
0 \( L7 q" W3 p* _ + F4 t; @. [- B% A5 X. ^
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)8 D/ t8 Z! O. t2 A* D
# U4 ~. S3 f+ `9 E* p. y% }
sum ddy240g5 B6 B( A6 t% K1 W) V; Q
6 c$ l3 C2 t7 b& i9 R gen yxis3=r(min) in 14 n: y" L) T( f( a) U' h/ }
+ b' u) @2 u' O1 s# a0 V& ~, T6 I) O gen yxis4=0 in 1
* u9 h0 C( [3 `5 U0 N* V/ n
( D( x1 o: b J *ddy240g
: z' x) W5 D+ e4 f8 x' P ( G2 Z6 h& {% L- @+ }8 d9 H+ U% v- b( N
# `" } A6 u, W( [- v9 s preserve
' \# u: m% h& r1 G4 v) j4 D5 R; k
7 T# V. G( @' q9 G: p4 ? sum v5 [aw =avol]
: t' s$ a6 T0 }0 I! W7 N7 d # G* R& G4 m. V6 q; c, {% U) f
keep if dx240<r(mean)
2 L# o/ h5 b1 ]) p1 b
}3 \& ?8 W v' M; w+ ?8 y. \ sum ddy240$ n7 q+ w; S, f& `
6 ^$ T- x1 J' n% T' J/ I+ w
if r(min)<0 { n, v( D* N. e Q7 m# L- B
$ z, o: j+ S6 ^2 _. o3 e$ H: s! E# x
keep if ddy240<=0- s& q/ e6 q& r+ I* D% J) M
6 P$ _$ ]$ k9 Y. b/ c
count
* J* t) s3 y+ ]* l8 A, K8 s 0 u9 H3 t9 E; d- N* \# {
if r(N)>2 {
; J# O6 m# r t& r& b. n- H. B " B! |# y) O" b4 A% S$ {0 }# V8 y
pkexamine dx240 dy240/ q7 v5 z3 @! Z
) U, x& J6 F s, G1 ~
local tempminp=r(tomc)) p3 Q; }9 L6 V. o3 g' ~6 i
restore - J" U. `8 q: r" {# ]4 y
}3 x6 w9 o4 c) S* V" Y, d3 `) w
, j6 H' u% o& S. t) h else { I1 f8 K) X q. T$ k
7 I4 e. O- U$ T* ~
di "cannot find minp"+ C4 I7 G+ B; d u& k0 C$ e/ x
" B2 `- \; ]! e' @ ~
restore 5 E7 F4 `+ W3 \
sum dx240
9 y G0 j2 o* `! D$ H local tempminp=r(mean)
2 `6 t J; T+ M, s/ G. C * |7 @6 B1 U5 X6 Q3 m
}
) E6 Z6 F7 M- D9 M1 {6 `5 d }
7 x% ^, e m( f/ d" N else {
+ g+ Q5 B- N1 E% V
, l& h8 u1 Q- R, c# [2 n3 u keep if ddy240<=r(min)
+ E8 M" V- j: P u, q% U7 ^; Y. b1 [ 7 l: b. s1 i6 X% J0 m
sum dx240* n @. I# M: G7 C; H, E) [
7 K% X4 F K7 m+ @
local tempminp=r(min)) y U- H# R; P. m8 Q- [
restore
: ^4 k3 K! ]: |* \) k, ~6 ^ } X8 U4 @( z1 b7 G" M
) U e* C( W3 e( y' L5 ~
, u1 L8 e! G1 H6 Y% N* |; b
' l: k3 h+ p% O. W) l
gen minp=`tempminp' in 15 ]& Q s7 n$ _5 m! w( J. W
*240 minp# ]) ~- `0 w% f) Y8 A
2 x7 f0 b/ O7 \3 t Y* K1 w9 z3 y r) y, i3 G
$ {8 p2 ]- a6 s' |- \! R
preserve
9 s% m+ Q B& {# B/ a 4 X3 j# a- f3 M! q: p
sum v5 [aw =avol]% V2 u# x4 X, S+ _7 N- b/ v
+ B- l0 _# U, P2 ~8 K, x+ \0 A; y keep if dx240>r(mean)
" b/ E7 R/ z ?% G# T3 f+ M B8 v 9 G/ H6 y0 K8 i' u- U8 y3 W8 i
sum ddy240
. L! F9 L, W" a+ T J7 j$ d9 n Q
if r(max)>0 {
% C' N% w S. ]/ Y
8 j& m0 @4 L# s. J# u keep if ddy240>=0
6 C7 F; o4 p( i/ d ) l. R( g% c7 ~3 |0 d, L
count
. i. y# k! y& R7 w+ m* c1 R- C
" C( y% U' G0 y/ H: O( s; ] if r(N)>2 {) _9 F: ] Y4 d: t) H+ k
: m8 z. |4 `1 ?) e! y" Q: r2 v pkexamine dx240 dy240/ P0 v" S% R+ ~' k% F/ e9 T
: h% ]8 b1 o% s5 v
local tempmaxp=r(tomc) 7 @8 o5 W9 B1 O9 Z
restore
/ y% L8 D) g( y! A a; W }
0 }" g2 C5 h" P2 L7 t 3 q- @4 Q4 H( l' E$ Q
; |& v" I$ o, ~3 L* Q, ^
else {
6 c* Z- } b% M& `; T g restore * ^2 B0 F8 X! }
di "cannot find maxp"
4 e2 V( }# q+ b) g6 ]
, L$ s. ~; [1 o6 ~ , `: X: S, D% B/ l: Z/ J( V; ]
sum dx240. C( Q7 ~6 s% T- C' S" S; }
local tempmaxp=r(mean)2 j5 k$ a# i9 l2 D9 i- [
2 G% x+ ^ }/ D6 R+ ?& z0 u }' J3 j! y! a8 I& D2 u
2 y. x$ F6 s) w
}& s) V- [% w7 N( A" @
; Y. u& q# d. P+ t
else {$ ^/ i" @& J( W' B' K% k o) i8 o
) T% Q. f/ p8 c) W
keep if ddy240>=r(max)
! [, K; v" O7 x 3 w: e; p) M. [! q2 P/ s+ q. o q
sum dx240
0 b: ]3 n1 U7 f. K; a : {) e6 S( k# z/ l7 k
local tempmaxp=r(max) . n( a1 v0 l- J' b: Z/ O
restore
; T% x: w7 k. t+ x }; C% z& X9 ^7 }. r( c. m( i8 }7 w5 l4 ?
' ^4 N% c0 w/ e6 T6 O3 I: x0 O6 ~! i" j( y% w. ~7 @
' \" y5 j, I- i( \' R' c$ ^1 b" b+ n3 W; r
gen maxp=`tempmaxp' in 14 v. [# C7 m* E: R, {5 y3 o
; W) T1 L8 d/ m& \ *240maxp
) A: Y0 n3 x5 ?5 u* j/ O2 ?% w 2 I) h7 i d' M" i& X
/ E' V% N) S+ n *-------------ddy240pminp左侧高峰值-----5 X& A- S! y p" R. e a2 B
# Z' j4 ^$ b/ |% h) s( j
preserve
( ?" T. j4 K. J: |# }" l 7 e/ ]8 x7 R4 j8 z5 M
keep if dx240<`tempminp'' B% I. Z+ V1 E* `2 v" r
, s( C( r8 L7 _/ }# x
keep if ddy240>0
: N' q4 B* F7 f U9 Q, O
9 {. z! d3 a2 ~/ H3 u# ` count
+ C3 t) |4 u. V' t. ?
: |8 U. X, y# i& r9 e% B* K/ w f if r(N)>2 { }$ ~% \6 {0 s$ S
' L! p" ?; t, L1 ~4 }7 D7 ]
pkexamine dx240 ddy240
4 E3 q# c+ i1 ~7 `( G9 H; k 1 D. T1 y7 K: E. N y0 q0 L; C
local tempminphddy240=r(tomc)
8 L7 ?) e# \, |$ m# I restore; |5 m: E" m4 A- [4 y
}
5 ]9 q2 B6 S3 T2 m, {. l) [
6 y& \% s& B! M# E- P; ] else {& m* Q9 ~- C2 S% [! Z
restore
) T7 x9 H2 r3 R% `3 W. d di "cannot find pminphddy240"
4 _ S# q$ E" i, o% f0 b 5 s2 a' O+ V6 d& @
( N; U9 t/ P/ O U3 M sum dx240
2 s$ h3 Z' F. H* W4 S6 f local tempminphddy240=r(mean) 0 U" ]3 a7 B% X6 s; ?/ {) d
* `) |8 {/ P4 n9 V 1 U8 \& j5 y8 m" B. D/ `
}( l/ L! {& q! B1 S
- x# l j' b/ B. K- M0 | 4 d" [/ W( N" D& `
; C% A. C) W* N( i& \1 [6 V R) ^
! w9 d: r1 M4 S- o6 a
, L; ?* X7 r, I! g1 C- I0 g: ^4 f/ m
3 m* A0 h+ p. z' ^8 }/ ]6 t' v gen pminphddy240=`tempminphddy240' in 1
+ B! H# Z {& s7 \+ |
% {- L! s, B+ s, g% u
8 U6 Q# R; W$ V; ~1 w *-------------ddy240pminp右侧低峰值 -----------------# ] r4 H( e' r1 R1 f
preserve 3 h7 I x- h& {3 o. I( \# J
6 x) J$ ?6 J6 H; `) } keep if dx240>`tempminp'
+ f2 o3 {% y7 n7 R & [6 _. G5 l# H5 N4 Q+ Y7 X
keep if dx240<`tempmaxp'& s _- Z8 s0 X$ Y
y) V. T8 Z" c keep if ddy240<0
" t8 K3 a- H7 g! | T( G: D
' j$ O" K/ M# c, ^+ x" u- J gen temddy240=-ddy240
+ U. ]% z t$ J( b; ]6 r # [% ^3 o9 f3 I) F" R
count
. L0 V: P$ U- O; V0 d: \ ) k6 W7 ?% ? q/ W0 k
if r(N)>2 {
) {, O. \9 }; j Q- A
s* J+ _4 z' C+ F pkexamine dx240 temddy2400 N1 h8 ~+ i5 X, [" ]: h. S& o
$ M# D* {) w$ x% F
local tempminplddy240=r(tomc)9 ?7 o8 y* e6 u
restore
/ S& `- ~3 } q }, n- m/ i2 F! h* l3 I
' Q8 L5 {" e* L9 \ else {! }! a& ~" u2 U u
) M# p) B$ z2 p' Z) W' A4 }' r di "cannot find pminplddy240": b2 s7 \$ m9 X2 |
restore6 G4 K+ ^- @% X2 |$ J0 `9 S
* Q1 w) |+ [8 U$ _
sum dx240
& i* ^4 f% l+ S# Z' E. n6 Y local tempminplddy240=r(mean)
8 _: v1 I& P z" N; y 2 D1 M5 s# ~( b$ a3 {- r
6 x! A9 J# Z# P" ^8 J. ^
}* `; z- N( t6 u) D; Z3 q
9 E8 {% F: ^8 q# n" b! h 7 U1 ~+ u8 R& b6 F! |
5 `% }6 l* y( K+ K
6 m) o* Q' c+ Z3 |5 l) x + D5 { ^" {! H7 l/ X
gen pminplddy240=`tempminplddy240' in 1
" D; l* l+ [, o
- w1 \; h$ `: N" o *-------------ddy240pmaxp左侧高峰值 -------------------
: K/ t7 l3 p9 _' C & r( I# m1 o- h9 S; a( U+ N
preserve ; P: V: X! [7 G( r6 H2 f* M
$ K$ P/ h7 P! L6 j4 Z$ O* | keep if dx240>`tempminp'
~# N. @6 h* Z9 {$ j/ o) K
6 Q& ^7 X% D, |8 D' f# ^; I keep if dx240<`tempmaxp'
6 f! K5 c0 X3 q1 K 2 h1 n% d9 z) \ P
keep if ddy240>0
. `1 L4 ^5 c+ }; `. o count1 d# i; K5 p3 V% h7 x
, M8 |' U' M$ x3 m: s' m8 R if r(N)>2 {
+ ?" a, A& k; e+ u6 D% M
% n+ [ Y) x3 \ pkexamine dx240 ddy240 \, l+ Z# T9 q" O! j& n
% h' L( b! W+ M& q7 S- p
local tempmaxphddy240=r(tomc)
! Y. ^, {* c; l' T8 X
) Q% `8 P" L/ ^2 i; }$ Q/ T restore
# y, [( k8 l" l, @& y& } }
0 e% K1 d3 A* w. \) \* I+ {& y- I ; \( `, F; F! n* r! z. V
else {
9 ~3 P3 S, }$ ]# q3 [ ' l8 f8 y; M& O5 ?
di "cannot find pmaxphddy240"
3 q- X' E5 U8 r+ e. @* \/ M* J# h restore
7 {( t: b# K- B & c' H7 V# p" l3 T
sum dx2406 V5 s" M" n4 q7 f, g/ k9 b( d
local tempmaxphddy240=r(mean) 5 R0 B6 T; ?0 W% p
, p- z0 d: o* b1 V# t z0 I. x4 V
1 T! E8 [/ s; a# Z# x7 [" | }
8 n, Z+ V# Q, z
7 j3 k% l( Q. p# I& ~+ P; U; v9 T 2 _- d" D9 I2 _" F4 ]' ]8 {7 o
6 u6 q& q* z5 D& r
: M1 X( H, I! x; Z' [6 H8 I
2 \( f5 u/ i, }! ~ j. O ; Q0 t; L3 @" m# ^" K1 k
gen pmaxphddy240=`tempmaxphddy240' in 1
) x3 I. ^ V, u
9 V ^2 G+ \% m t$ f
, n" {2 q/ z/ S4 a' D Q% l *-------------ddy240pmaxp右侧低峰值 -------------------* ]8 C6 B. o: h, c1 U t! d! R
7 P3 `% J) t8 [: v$ C
preserve ' H0 r3 W+ i, _" v: U
& K$ O0 S; p6 e& [9 F0 L keep if dx240>`tempmaxp'# P8 |: K% e" B. T" ~2 p
2 A- B0 Q5 Q; N/ Q gen temddy240=-ddy240$ _( L8 |6 j- }0 p. X3 e
, J9 u: ~. Y3 _0 P: B+ c2 l
keep if temddy240>0
) p! h+ Q, L. @ $ }' R) s4 q0 ^( \
count
3 R* a* h- \+ x 5 b4 x# v% z9 b, ~2 p
if r(N)>2 {8 k, E' R2 @7 t' C5 S8 A' E
& |& g; \* s' E+ {1 {
pkexamine dx240 temddy240: \1 C7 G+ @& | }# S
# j6 ^+ B- V: @$ J1 x( X local tempmaxplddy240=r(tomc) 1 F, _ J/ z: B) D- g
restore+ m& N& y0 b8 o# c: [& u5 R; R
}1 I# q) J2 U* `& U: I7 q k+ l
" W8 O: U8 O" [) d
else {
& ?0 S5 k* o7 C5 o restore
* W6 H" t5 n6 |( _8 F# i4 G di "cannot find pmaxlhddy240"& c5 K( w3 f0 `6 `9 G
7 t% y; V5 }8 V3 o6 Y6 K3 j. w
9 `, h3 R- ?/ w6 K sum dx240
. K( T2 y! ^7 t7 @9 ?: |4 x3 t0 g0 g local tempmaxplddy240=r(mean) in 1
# Y4 S" p9 k: E/ I & M U4 W; ], \/ s! @" E
/ i& _9 p {- Z) b
} E% {: n; W- c$ S+ c+ H) \
, j8 C* t; g+ |$ J2 s) @" M
+ M+ ^$ A s, p1 O
3 @$ C: a# C3 m2 d7 a
5 {+ _% K- q" f % J0 e3 ]0 k7 b, a: c( c( P
, @; m# z! I+ b& k gen pmaxplddy240=`tempmaxphddy240' in 1, z3 B- F& L8 I5 k6 g, ?$ m9 Q
$ q% N: q) y: S/ k. B
*-------------------------------------
& m* w- Z) u2 @2 r- h3 t, d
% @9 \" i* U3 J4 ?1 s gen price5d=v5 in 1/20
! V5 D; u/ k) P
5 ]* n7 ]( q0 m/ n gen price5yy=_n in 1/20
, `( S& A! l: m+ E/ Z. G % Q% c; A9 _2 ]8 e1 D
gen price5y=price5yy*(dy240max-dy240min)/205 |) l7 z6 I+ D% }- t7 l. Y6 e# E
! s% p! ]9 o6 [. j' I# @ *price5y &price5d
* Y0 ~3 U4 x4 Q7 }4 h) O % N+ W- f2 O' d4 F' C
gen priceny=price5y in 1
& F( r8 t2 j; k2 |& f1 X & u3 V; K1 V, Z
gen pricen=v5 in 1- i5 T# l% p; l$ u/ y! k' \1 g/ G
6 \' G7 P0 I' C5 r' {% d" I
8 X- {& |8 E) x+ i, N' L *priceny &pricen
% Y3 [: d* o! B! y! R & f. Y" R/ P8 c5 E( s s
7 u4 n" B: U1 n: e: R% C5 h
*-------------------------graph------------------
G( q4 [& x2 }* R
1 G8 ?- c$ X2 r" E1 ?& x8 H$ } 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)
$ X Z! x& F& [! m. G
) L" h- Z' n5 {& O* ---------可选项目----------------------
. t. _4 E- j7 N; p: B) E. @
; U$ h4 u2 f2 P6 t7 s6 ~} J' }' P( I0 H8 x
end
* }# X% i" h4 W. [& k5 D0 K |
|