|
|
改了一下,这次运算应该没啥问题了
* _1 y* _2 r% c( M8 e
6 D) N6 R4 ~$ _: H+ W
& @# f9 @7 q% F% l2 qcapture program drop hello6 _2 W; A, [( e* ~* h# {! l
* }& A2 O( l4 E8 R2 W0 O& ^) z" k
program hello; F, N$ q3 B' d8 d# v* ]3 h R4 {
6 v7 Q+ [2 p; `6 L quietly {- ]" x; b1 d' N* c! Z
: A5 u% m6 E- F n- e
clear
1 g/ P0 A! e4 w3 j0 [9 A
/ P( O' k/ |" g+ Acd e:\finance\stock\20110101\source
5 c0 Z* }! n9 M8 m L, I- Y( E1 s# N! |4 Y! E4 |
insheet using `1'.txt
5 V2 D3 S V( r$ r
6 R6 b' s% n- X" J. a3 m' j keep if v5>0' _5 }6 j" j" a3 B' B( X
2 I& `0 A, F* Z4 q7 S
gen vt=_n! t* U7 _3 o+ d/ F" ~8 v3 G( K4 D
; X: _+ |4 Q. W% S8 J
tsset vt* t% R# {0 W3 O
/ k0 l$ z0 y8 Q: l4 b
gen zf=D1.v5+ `4 R' W% F4 F; c- M% Q
* N% k2 g+ ?7 X* ^1 f gsort -v1
; D; p5 o7 f7 A! y% a1 M3 h, k# Z7 y# Z5 U B
gen avol=v7/v5 I) a$ d1 E+ Q( I
9 w. n$ j# f: v; t1 A/ @
keep if avol>0+ u" K: q9 K3 s1 J8 u! t
- l# L' k2 g, o% \" r drop vt
; W3 l: E/ V3 }% |: Z0 z1 J% @$ \
$ w% J. h- E7 c! Z- b! X: [- ] gen vt=_n
` H) e* x! R5 u- V3 U
z5 l6 r& A7 D tsset vt
; f+ T* ~ L: V9 X$ l G 1 Y' {: B. e/ u7 D$ Z2 U
sum v5 [aw =avol]
$ U7 O/ Q3 `0 S3 W) M; p' b% Y& r/ Y( }5 c R
gen amean=r(mean) in 1
7 q. n% n0 p: J% K6 U1 Z, ~, g8 ~ ! t. ^4 R6 {& [& V1 d3 Q7 \1 P
* 总加权平均值 amean3 i5 |5 S9 O. ^, v7 q8 z* w
- l, ~/ `" Q1 a, I7 c! h 0 s2 l- U. V% E9 l) @$ u. K* l
keep in 1/240
0 t0 p9 z0 [- q! e6 _3 a* F5 G' q) @# W
sum v5 [aw =avol]
% A( q9 B [, O& v! X8 V7 J* l/ O9 `. q( b3 Q) {, c
gen mean240=r(mean) in 1+ w5 Y @' Q/ Q: E. C) b
6 E6 D& A* L, u K7 A6 F *240加权平均值 mean240
: F4 L1 ~) G+ p, S. ~4 z - {+ C+ S! _ L. P
set obs 500
3 R3 M- S+ P4 [8 ?- c |1 Z- W; l
4 w- ?+ ] G J( v kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
^ N9 s' s4 e$ P) v+ w& f
/ J4 _! n3 \7 o) |/ Y$ P *240 kdensity(dx240 dy240)
7 N9 y3 w2 @# c9 Q) c; r 7 Y4 ]/ k# ?* B* q; f
sum dy240/ M# |( a' M: j8 W5 ^/ i( w
/ ?$ E( R* |7 S& R' [ gen yxis=r(max) in 17 B( b9 v0 w/ f3 s1 t. W- Z' l
6 p$ k( _& x) p0 k1 b gen yxis2=yxis/2! |/ O2 J* r9 I u$ ^6 |- ~' ^
# B8 I4 w2 g" F2 \
*yxis
- I$ K c+ X% _ e: v4 i ) f$ g: B; B9 O
gen dy240max=r(max)+ ]/ `/ L) [ @+ L: P
l y" J) S4 v5 B7 I. j% u& U
gen dy240minp=r(min)
" H8 {& E5 x! Q
2 m* m7 X2 F# X- r gen vtt=_n7 b. c& `( p( M" V
; [/ Y3 _# J2 s: X* y0 V( q
tsset vtt' V+ r/ u5 F! l
' U" o* V3 ]/ y. U/ v4 c2 z+ b gen ddy240=D1.dy240/D1.dx240. R+ W# ~ u$ n$ J4 Q2 \
5 p- b* `* j$ f( F) |/ ?& ]7 i
sum ddy240
7 z) d. a; M F- c1 l1 i& F$ _ " g# ^1 A% P, o; L: K7 l
gen ddy240max=r(max)
$ u1 }( K4 }% J / `( R* d/ l2 f. r3 r
gen ddy240min=r(min)" o0 a+ Y( Z# s4 L
9 j2 D% ?* B l O% ~" ]
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min) Z, T8 [$ g8 j; a- b2 g3 ^
. p& D# H! z7 N- d- ^ sum ddy240g! f: K& O6 q# B) G( E
/ `. L- ?8 i; f. F$ C gen yxis3=r(min) in 1
8 b4 x. w' H0 q5 B% M ) u" e- i& l. b
gen yxis4=0 in 16 @& _2 Z: V( l( B, O1 X8 S. z
% H6 P/ ]7 b b9 `& s6 L
*ddy240g
' D1 [9 G4 K' R9 h, ~
3 m& X( O' f/ K- W) P
- p3 N8 Z# n5 o3 w1 D6 S9 I" i preserve + i' X, k8 R. \( n) P
/ B* B! v8 T2 ~3 k
sum v5 [aw =avol]! U! v, I$ l9 e# W3 Y
( M+ Z! Y3 _4 @# c2 o3 n: s keep if dx240<r(mean)1 x8 `7 l) M' I, F" G X7 s
3 m5 h3 V& |3 y4 o) v% L4 D) h* N sum ddy2405 y2 G6 W1 Y1 |7 K
; m; \6 N. p" E4 r1 b
if r(min)<0 {/ n1 X4 W& K1 k% ~% q4 {6 U; X& w
& X# k: a$ P5 N! A; H) d% i# @ keep if ddy240<=0) A$ c( L8 U, |# X
7 e1 T# C* s; \5 r. J8 i" h count
9 O. P6 H0 X8 I8 R y & a9 D% n. t3 h$ z
if r(N)>2 {( v4 b* L+ {1 h% d* ^
9 X3 y9 O' i4 H% l' T pkexamine dx240 dy240# G* T! z% e7 L6 k
# X# L* R; T& u& u4 c) M" G& n( E local tempminp=r(tomc)
+ o! K+ J& x( @) _3 A restore 1 s0 R" K2 _! l8 J
}
; l) _' b. Q |% P ) U8 G' k) c: W6 H9 }
else {# z! k- |3 e2 A& ^/ L% u
$ E* }2 F2 n1 r
di "cannot find minp"
( |3 m |! x! N8 _4 q % h" a6 w9 q, c
restore 3 O8 [5 l' |$ I! i
sum dx240
) D2 c+ A9 P! O local tempminp=r(mean)
' w! j9 y$ D: C! D$ [ ~! d8 N
' d$ w+ r! n f& g: A P2 b: {2 ] }* Z7 g6 ?9 W6 ? Q& _& w
}
& a& ~. T0 n; [ ^9 ] else {% R: I- c2 {6 X5 X) m; _
6 b8 O# T3 K* ~- f$ j6 M
keep if ddy240<=r(min)
- a; F* D- j9 c O! c % J z) K* D: v) w0 z8 k
sum dx240& i7 [% B1 i% e' m. w/ M% |( e- |
: Q1 c" ?7 Z1 k$ O! |
local tempminp=r(min)& z+ U# W3 H+ U9 h
restore
7 ~# a; d& f+ q) t# L- ^$ n }
' x* \1 `8 N( A. S/ D% u
* b$ h3 s& l3 R2 V
, g" Q0 s/ N+ V j3 Y" @3 V
9 M+ i. W" X @. u; z! Q4 V gen minp=`tempminp' in 1& n r0 h$ Q; V- Y( C* D6 [; x
*240 minp; p9 E- n( T3 C. z3 o8 T F
* W- z6 v9 w v& V, I0 q( Y( K3 e# v, g2 v. ^8 f
, L* ~( S; \ l" j, M% U
preserve ! n/ h0 ]$ X* K4 `) L' E6 d
% ?4 e' [. Z7 i$ v5 E5 n( m sum v5 [aw =avol]
* F+ |9 m1 G0 t' [ 2 C; t5 |; G( c) U9 q$ ]
keep if dx240>r(mean)
% O9 r3 n" M/ _0 [% Y4 r
) a& U) E6 |2 l. `3 M5 K sum ddy240! ]8 E" V6 m3 d" I7 i/ V
, Q# D* }5 z' E: v! N
if r(max)>0 {* c# a+ K8 F4 m- U
; `: i: j8 m6 Y
keep if ddy240>=0; v' F; X" W. f
5 g6 f7 u* [& \$ }$ n! q- _
count
2 ]4 ]4 R! s6 S* r
% g5 Z2 n0 t- C" V( p+ G( r if r(N)>2 {
# U3 U3 u7 d, P/ s& P3 u ) A9 s- w a8 P& p% p: M
pkexamine dx240 dy240
1 U. p: s5 M4 I R) S - m& g' {4 H/ U& _
local tempmaxp=r(tomc)
. z3 [# m% H! C restore 0 R* C# l$ V g* P$ T, q
}
! B9 X* O( K# `4 A
; W N. h6 q# G# K+ d6 A" q0 a9 e * [7 @# h, X6 K _/ e. t& V
else {! t8 o% ?$ S/ o; P3 y; n
restore
' G' g& G5 u! w: E9 |( a di "cannot find maxp"1 S3 _& T* O2 l- M8 \+ ?% P
c% [8 a5 r. F$ m' ^
' D4 E. V3 ^; n% T, y
sum dx240
3 ^9 d' E8 E! e/ r7 } local tempmaxp=r(mean)& b- f, H1 X* ~ Y9 _
( E* h3 Q# b6 q2 S
}
7 n6 C/ `) |+ ^( A- G+ u
0 W( b! b0 p" H2 ?" ~ }
# f0 N& ?' M! s. A& R k3 y
9 ~" Q: P; O! Q( v1 n. s else {% {( }3 x, c" ]$ B' g" w; ?- s
2 x/ ?+ B, t9 |: t2 Q: g
keep if ddy240>=r(max)
* q8 p3 W8 ?- U! B7 X" |
# F. N) U9 f8 {4 k, N3 o) K sum dx240
j) \, z5 Y, D8 v K: q/ t E. K' q0 ] 6 X9 J/ w" U9 ?( U4 w- K# ]
local tempmaxp=r(max) 3 I j8 g: R7 e5 a: t" t- N- Q
restore
3 f3 x: T% H5 D. r4 T5 R }
4 H$ z1 a! W# q 4 Z g$ Y! @3 j% o" h6 W+ ~8 `
9 @/ W8 j$ N0 o+ | w; J! B0 [ 7 v5 T" J) w, L! x
- F/ G# j; r$ K9 U: ^
gen maxp=`tempmaxp' in 1
3 A% ?5 l# t, [7 X V G 7 s# U. ^ R- B1 ~% L
*240maxp
7 o+ {4 c6 X5 A" B ; p0 d) k( {! z6 R7 M9 |
% L, S6 A$ S2 w* e$ Q& ^
*-------------ddy240pminp左侧高峰值-----1 ~6 @ U! B& k+ \0 B+ ?
5 o6 ^- T. ]2 R
preserve
6 V8 c4 M9 J0 R9 Q
& m. E% a) L1 a4 ^ keep if dx240<`tempminp'
! A$ S0 a, H$ s5 \+ i. p5 v5 m
7 L, X* W. }8 J! \ keep if ddy240>0
4 J" X- v, e" e7 {# m
: y& M! A& E% r, j count! J+ K8 w0 N/ L* I9 R
% I1 ~! K6 V. I! |& Z if r(N)>2 {
/ |& C' L$ ^8 Q; t
$ a! n, v3 ^- v6 k pkexamine dx240 ddy240% Y7 k( E! _& _; M
7 i& ~9 p: ?( m9 U" n
local tempminphddy240=r(tomc)
1 R4 o5 \& [" O restore
8 p! I$ R% ?7 S! O }
$ t( ^8 ]6 v! q' g+ D
6 |/ s4 A" J1 B$ y else {
8 B4 h+ Y2 S9 Z6 ~ H: ] restore
( s3 _# x( y4 r. |3 `; M+ Z( z di "cannot find pminphddy240"% ?- Z9 k$ V% }/ i3 g7 A' z
; g, {6 r6 [* N% x9 H) b
: z, F5 |6 o& g
sum dx240' v4 t- _3 u' k
local tempminphddy240=r(mean)
3 M, |* g/ r2 o8 z
; S) k* T: h' ^. @/ b' |; X
* q7 t" S3 g6 l# A }
; P/ k6 @! ]9 ^; l
, j7 a( ^) Y$ C, ?# j6 Y% W
0 P7 n. j6 |8 @0 `9 }* v0 B
$ m6 z& r" i+ [ / Z6 p. \( l$ _0 E7 }
L( }8 C4 q, B$ @: L 8 {0 S( c! s& n1 v- t0 b
gen pminphddy240=`tempminphddy240' in 12 d, |! O0 r$ A+ T b
$ W4 S; O* h$ K! c$ w9 {3 a . Q2 e( s/ \1 \3 U/ {/ E
*-------------ddy240pminp右侧低峰值 -----------------
& R- |* A' F2 P5 O; f preserve
1 p+ n& O4 l( S - e& o' X' q( x
keep if dx240>`tempminp'
) z2 Z% I: S; H ; q2 p i9 D( c# H. a( @
keep if dx240<`tempmaxp'# R- {# d A9 u
- s& R y4 d O' O- D- ` keep if ddy240<0' K# n1 f% D7 J; ]
7 H5 K7 \/ g: x4 e: I0 g, a. } gen temddy240=-ddy240
2 z9 \& M) Q& m* s: K
2 a1 p6 \ A! ]- J% b1 e count
; Y* b& h' S7 o3 b
# e, f' w* h" `" R6 k/ [# ?) }( U if r(N)>2 {
1 K# a, T) D$ N; E
& V7 V& p& K+ U/ w: I pkexamine dx240 temddy240
% S6 [' _0 l$ w ( T$ i/ T! \) z2 U5 h3 i* k
local tempminplddy240=r(tomc)
5 k# E8 o L# J- B1 D* p$ ~; a restore
! u3 N! {0 Q- ^ }
1 B) ~) B3 q5 D' r' z' l2 L 0 V4 d7 s' r( H/ v. b+ k2 k5 {
else {4 g/ i7 k; _7 n$ Y& P
7 x1 i- K) I+ |. { di "cannot find pminplddy240"1 o* C) X2 R5 T% Q& d8 b) }
restore2 h8 \" C8 U. {' Z8 x0 w4 J: G
I) y+ Z t1 R
sum dx240: A N! x: d% Q9 L
local tempminplddy240=r(mean)
3 U) _. F% |7 `* D5 h
2 y+ _' t- B6 x; A4 B/ Z' D+ } : R: [" b. C5 a3 m3 P+ y
}
/ Y( I5 O$ e, p. R0 d2 X$ m . y' ?" A3 ~) E9 D7 D5 p
1 @# q Z! q7 b4 g; u
. Z- Q L) K4 a0 x
+ k# @- J8 }5 Y0 e# r% K( Q 4 Z( m% o5 l+ z" \
gen pminplddy240=`tempminplddy240' in 10 `* A, ], ]1 D% j
' ]2 c8 N7 \( B: \( ^
*-------------ddy240pmaxp左侧高峰值 -------------------
7 |) d& L, y( V2 f, Z1 E8 b- ]
" i# m) B4 T( z' G0 t' h: a- }: {4 p preserve
: B6 M" w" p A2 `$ D 5 u! R8 A3 d5 D1 n4 R: j
keep if dx240>`tempminp', A A7 e$ b: A( O$ Z5 V' i
2 d8 ^" d' N5 F4 R3 m7 {7 X0 K( R
keep if dx240<`tempmaxp') t0 e# U, w1 n9 v6 U
9 b8 q. q% d/ G' D( I3 w9 i
keep if ddy240>0( W; j' [8 j0 c
count
( w: w: _3 W1 B: k9 h, v( s0 o ' D5 p# S, i% m
if r(N)>2 {1 s& M, |( [6 L3 D' Q/ m
3 G* T, n2 z; ] pkexamine dx240 ddy2404 `- Y7 [/ z' [" y: D
( E1 [8 L+ a% a8 U local tempmaxphddy240=r(tomc)
% h5 |9 t) y5 Q* Z: i9 |
; G5 {7 w% B: x" N: y: i+ h restore
4 n2 C" v) a" s' a }; Q& o3 A) l! S f/ f( Q) [/ @
C# \ N$ R5 a& X+ F else {
& p! ~ H# z) ?9 [' g% W+ w* ]
$ w3 P4 v# O4 m Q di "cannot find pmaxphddy240"* z' h8 a5 |; C% p6 g$ ]7 D
restore
2 Z2 l s$ L( _' ~# s , c" P$ x( ]. R* J& t" {
sum dx240
8 _4 Z5 K+ d6 O3 r9 L local tempmaxphddy240=r(mean)
( l1 K: [9 V; C3 r
/ K3 X* w" Y$ V3 g
: l8 g+ H4 p' H; s# d$ n3 @ }( G# ]# @. |# v: P6 Z# @
8 F* g* L/ L, ?9 y/ f' m
1 {* L, X4 F6 `. f
& S/ l, G% x# x q! Q
' b7 @8 I8 P- G 1 c6 S. f# o- C$ s) c$ }; W% }3 C
: \" F" V; r9 I" B0 ~
gen pmaxphddy240=`tempmaxphddy240' in 1
; q9 L; w) q* G F: x }; l2 q( n; H: D
: A0 O$ y3 U, [* ]0 _ *-------------ddy240pmaxp右侧低峰值 -------------------/ U0 T6 f5 k3 s0 y: @. @
1 N3 V3 y9 |% o7 [" i preserve
# t2 L! K$ g+ _9 {8 @( }0 B. S
5 O' X4 C! X Y0 J! m keep if dx240>`tempmaxp'
: ~8 g* N7 v- q$ c* p% z9 l7 `3 Z , h8 J$ v3 d/ _
gen temddy240=-ddy240
5 J9 ?1 h8 Z3 f; }8 L & @- Y) W$ T& J% [3 B5 I
keep if temddy240>0
% ~, ]+ }4 v3 o C; z6 U) o) z$ [# N
3 q4 t/ a8 u# Q7 n count
0 m' |& d: q* Y
4 N& G! \+ n9 _ if r(N)>2 {
/ o9 t. ?# S+ H* m. s " ]/ C2 T' Y+ {
pkexamine dx240 temddy240
- N# v7 I i4 M% @% A- x4 c 4 U! l; L* f; z3 ?$ `. v9 j5 B% k7 |
local tempmaxplddy240=r(tomc)
- h# I+ |( [, R6 K" g restore
% w1 n, O, y2 V# S }
D, ^- m% \8 `" [ r% S& c" L
- J+ }4 H: u3 N else {5 u; b- u8 _5 b: m/ W/ U. j
restore
: q# L- H4 G% O! c di "cannot find pmaxlhddy240"
* K& U2 A9 a6 k# z! Q0 p
+ I# t: `4 H* A7 s' g - O+ W# X3 z6 a0 s r' ^; F! o! G
sum dx2402 c6 \5 H) j- ]9 _1 v$ c5 x
local tempmaxplddy240=r(mean) in 1- U+ `) k" w3 W3 S8 H
' o" M$ W! B4 A$ J2 W" e $ v' |* O+ T' Q! k8 L
}" b5 ^* U& @9 ?8 l$ X5 T
% N* b4 m* f3 [& }5 Q
]# n9 N- ]; ?2 R* L$ w a/ H7 ~' \% }9 O/ s
6 y+ h" ], k5 W - P+ e: f2 G4 e1 Z' _
/ @9 S9 {! ?9 g5 L% w0 X/ W, f
gen pmaxplddy240=`tempmaxphddy240' in 1
, w$ L& U$ E+ @5 Z* t% u
6 r8 [7 ^8 e7 @, m4 p+ w *-------------------------------------
0 |$ R0 }; r/ D) q; q
3 A9 d1 Y2 L' U gen price5d=v5 in 1/20; ` J% z# [. W5 t
) r% H$ d% O0 J9 j; L G$ b& U gen price5yy=_n in 1/20
- \7 R' `: b1 d! n6 U 0 u1 J5 c. D' J. s; ~4 ?" ]
gen price5y=price5yy*(dy240max-dy240min)/20
8 W' }' C+ e' \0 X! ` % T: O0 ]& A+ t% N6 M& }' {" ?
*price5y &price5d
' Z8 N* U7 J) |' \$ I! b# V
6 P4 K/ ^7 X3 D% @; c: f2 a" R8 L gen priceny=price5y in 1& x# v" h2 n; }
2 g7 A# J6 F# j
gen pricen=v5 in 13 ]* x6 H) o; e% S0 k
( H& L) Y n7 } M5 ^. C+ ?
4 H1 k( P, u! _( R *priceny &pricen5 f# z" _7 E* x0 [
7 w! C) f. V9 K) j
* G4 B5 V" b9 y3 _/ j# M( z$ C
*-------------------------graph------------------; A5 z7 w9 u0 y' s0 \
' P% c& O! o N. ]% y" X: l3 e6 p
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)
9 X8 E2 P: \ K0 k2 u- r j T5 u1 N
* ---------可选项目----------------------
2 D* b q% S6 @4 Y" Z9 k- c/ r$ O
}
# k4 {2 u; ]2 Yend
5 C `( i. s' o f$ x |
|