|
改了一下,这次运算应该没啥问题了
9 I9 i5 r e9 X) X' s" @0 L+ f3 W/ U5 Z7 I5 R/ x& H8 U- Q3 c
& e/ q+ b: G K+ ]+ W
capture program drop hello
+ s+ v( o) T9 a5 ^) a5 N/ y H/ {4 A% [
3 H5 z9 H3 h7 B" Mprogram hello
& m- D# i' ^$ f4 j- ]3 r
7 J, |; d& w6 i8 e quietly {
! [1 a0 R$ u$ B: w( @: A$ X! _' C5 U; L Z
clear
/ h5 `! k( Y# P5 B" C% F: ~& r% }# V$ }. J: S, v+ b
cd e:\finance\stock\20110101\source6 }( d. ]+ B6 X. C5 O# G o4 v
* y( N" R* ]2 Z( Finsheet using `1'.txt9 M( L% y) X5 F5 ]% L: J% R
# w! c( J6 `7 h5 X' g6 ^; D+ ]
keep if v5>07 C# n3 J6 F* n
5 A( |+ a! }9 w8 H$ w. k- ?: z
gen vt=_n( h$ M. ~/ r9 s2 s( H0 K* i! I
# v, t2 g! W+ W* X, E
tsset vt
# X r( m: d8 R1 q0 j t* |/ o* X3 l2 z# W3 C7 W8 ]
gen zf=D1.v59 e; s1 `& l* u7 U, R6 f2 F
) ` A# o3 H& f7 _ gsort -v1
6 V, H* Z; y4 @
+ R- P9 }: u, R g. K gen avol=v7/v5: ]8 U: @3 I- e }: {
5 P/ L+ `$ f5 c A) i
keep if avol>0/ k% G- T5 Z2 W1 l$ s* C4 h& }
$ s- e/ F6 j+ l7 V) k/ ]% O drop vt8 A: U; I5 S+ I* I. R1 f
6 O! L6 y5 d+ t6 S3 G3 t gen vt=_n1 |0 V: Z `" O/ Q+ x3 Z& _
8 ?4 H1 y- @: i$ R: ^/ u, Z. w( J tsset vt5 ~1 r* r% w: I# I
% P0 {# z; U- }' s sum v5 [aw =avol]9 X$ }0 N. g6 o& V( q0 L
1 p# U1 k6 m T# o( w2 x3 M
gen amean=r(mean) in 1/ _, E0 F! o P' {
: `. v. o U1 [6 k
* 总加权平均值 amean
9 c! {9 y5 @3 e+ Y. f' _ 4 T& n: n* P3 Z' r( K! X
+ M( ~5 m6 h9 I) U keep in 1/240
0 h/ \' M. V: U0 U/ o. ^
; a6 l% {$ x: x A8 @ sum v5 [aw =avol]6 V& ?7 U; B7 J( ~/ ?& Y
, k- h& p3 p: q, m5 \! W gen mean240=r(mean) in 1
5 Y. e0 Q' ^6 K, q , \% a' F/ S" r9 e7 G
*240加权平均值 mean240" W; q. R* T& `4 E2 A
# t' r9 @' i0 q. A2 g/ ~6 O
set obs 500 & n5 Z& t5 u0 j8 X l* x! H
0 q) [ x4 I- e3 \ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
2 a! N6 \$ E5 W8 E7 m 4 V/ h2 v& _% ^) R" D- B5 w
*240 kdensity(dx240 dy240)
. [" _' ^7 _5 \7 H
- P: w* S7 b8 _/ @% F0 a3 v sum dy240
3 H5 @ F, p: S# } 9 U) t; e P( D! s8 K& ~# t+ d/ d
gen yxis=r(max) in 1
# u7 P5 f$ z/ Z3 Y F. K; z& O$ r6 T
gen yxis2=yxis/2, P2 N4 H' u' N9 `4 x7 f7 }8 @& U
4 V1 Y: L/ d" E1 o/ v6 n' F9 r$ C
*yxis- o! U1 |' H. Q" `6 E
+ x4 i! x0 s% ], u gen dy240max=r(max)
0 Z* f6 E& c1 ~ ; ^( o# G) Z; A1 L
gen dy240minp=r(min)
0 E; ^6 @+ E' ?" R8 I & V; U1 d. y. q4 ]" R4 p
gen vtt=_n1 }3 ?9 x( l( t9 n( P6 X
0 O5 W6 k/ O3 {0 L1 O @8 {) S
tsset vtt6 V( v% @; p/ o
! R6 Z/ [* G; A/ h6 W+ p3 v
gen ddy240=D1.dy240/D1.dx240
' e! x6 g; D) m N6 j8 A + N: s. g3 ^! d* A4 {6 o; o( N( P5 ~
sum ddy240
$ a6 U: H# N' f$ G
" o$ _& l4 @4 a; u$ f gen ddy240max=r(max)5 H! d1 _ P" M% L
" H5 X6 s# b% |5 Y4 X% V( G gen ddy240min=r(min)
7 U" E. h. d- j0 Y 1 [ b' k7 c/ `* T+ G6 z
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
; ]' W3 ~/ z6 E0 p , R: E: Y# |- X1 b4 ?
sum ddy240g
% @* i' e9 ^8 _2 o. B
2 A" J j3 @% G. r6 a gen yxis3=r(min) in 1
7 M; H& D# t9 h4 b : }+ v6 E. {, x( x3 e4 v
gen yxis4=0 in 1. q7 B0 S1 G" t# Q; C
# p/ H4 {$ g4 ]$ v9 F *ddy240g 2 D8 B: X( T, ]5 h+ [5 A h
6 t! m: Q* a( t1 P+ g$ M
* F1 G) i6 N/ ]1 a) J" G preserve
- L% x7 c# ]8 D7 D8 a , u+ P y& @* w% h- b( O
sum v5 [aw =avol]; {( @1 h% X ?/ P
, \9 d5 y1 Z7 C! \6 @
keep if dx240<r(mean)& n( x) p( m% e' n$ ? q: y
4 f% I3 z G4 r3 G$ U6 M sum ddy240
b3 J8 c" J4 k; Y: W3 I: \+ G9 r 2 I& u/ V. ]4 \1 ?8 M! E) `3 ?7 O
if r(min)<0 { [- V9 n+ o8 j7 z6 L0 \
. Z; y6 X9 t1 x* X# l) M
keep if ddy240<=0
/ ~+ ~7 P, [& _, { # C1 I3 q8 z# E U
count
$ j- o% X6 z- f8 o% q
3 l! v: O; q0 ?' `: ^! \5 | if r(N)>2 {9 z* b! s4 y4 B. ?+ m6 B4 H
3 b+ C! F$ Z. U- f/ O/ f/ e
pkexamine dx240 dy240
+ S* P m& U# c# i4 C
9 i2 R m7 [7 H L( a$ {0 @7 o7 D9 S local tempminp=r(tomc)
2 A: x' H5 m9 Y restore 0 |* X, C b+ ?9 b
}1 W3 e9 |0 }$ q% m6 ]
) L/ {. D' c: G$ K else {
! j/ d, q- |* H5 U 7 w! `) S+ a7 `
di "cannot find minp"6 q' }2 f( [/ x& w/ y
+ o6 }9 U& M D" Y+ t, j6 K2 [
restore ! V9 y( C( X! N8 I% x* Y( u& S
sum dx240! d8 ]1 q- n) K: n$ y
local tempminp=r(mean)
: g- M' c0 o7 P# }% x+ W+ B+ I x
1 [% N" {1 t' g% L' l }1 \5 f. ]3 q8 N( J; t5 J3 z4 V
}# w) Y/ s' F6 d8 W' ~3 p
else {# J) ^8 y9 _2 a0 }0 o( c
" Y! G" V6 `' Y; I* G! A% x& {7 {
keep if ddy240<=r(min). a/ i% i- A+ `: v$ r6 C* k
7 C. L1 P# ^* f9 m
sum dx240
! C! l/ y D" n$ e
w7 F& q; I! V5 ^, Q( ^% ] local tempminp=r(min)* ?8 B3 o5 h2 [( d" G
restore . \- C, m1 u. g& M- f
}+ R h% s5 `+ ]8 G3 {
$ `* K O; \) B9 _* W. M `, T
Z$ N, o A# t. n# W1 l
5 \- v$ S: x3 C- k0 K1 d gen minp=`tempminp' in 1
+ U _* D/ j3 v# c6 ~+ y *240 minp1 b. ^1 p4 o( V' S# T T, L: P5 G
4 U' t$ L2 F y4 [) ]" P7 b% G* E
1 r, K' l& K4 _7 a- C
V, v: X/ b1 e9 J! `6 g8 U, y preserve 3 e$ X' Y* y3 N0 k
2 i6 G( ^) X( }! h3 W5 \# v
sum v5 [aw =avol] u% a) {' ~" c% z$ k/ l
, `7 n! Z" L* M1 F8 |* b' | keep if dx240>r(mean)
2 N: A+ x P. I" [ F4 U7 e7 | m W& k& ?- r4 a+ g
sum ddy240
0 a" [$ c/ \) T8 v* m
- R9 S3 I) [3 f0 \! ] if r(max)>0 {
" h9 ^( e; U e* l6 a% t* A1 x
6 R2 E- X3 y: e9 J; M+ h keep if ddy240>=0
0 _+ w' d) H. y: O7 B# d 5 w. R; ?7 o7 i! @
count, b' ^: h; y8 ~
' ^6 _- A( `) P8 S if r(N)>2 {5 Q6 I0 } h% R3 x4 e1 y
+ M) B9 v. f1 B5 e: |: ]1 |- O$ V8 O
pkexamine dx240 dy240
: m' f- i& g, [5 t : [1 `3 o# r3 q$ \/ K/ K
local tempmaxp=r(tomc) 3 k6 A* v) {+ }- j
restore , h# g& P9 O2 Z5 S
}! O4 F$ C2 i4 }
4 N7 e7 N+ @3 d# w- _: W$ N: O 4 m& g% q9 k, V9 z( Z6 T' I' H8 p
else {
% f# @2 ^! F+ O0 s5 D3 L restore
7 T- b" J" [" c% G( g7 ` di "cannot find maxp"
3 C" Y6 C0 L$ Z8 F2 a7 h1 W
9 g- S7 l7 J0 |4 C
/ Y% k& k( A! {$ [# p4 j sum dx240
' z# ?' O9 \, O local tempmaxp=r(mean)
) ^& N+ |$ W* Z: p& f7 H : i+ C) U8 U5 Y" Z! ~
}
% }, k; b; ^' @% u' t. L a# Z5 P8 Y) l/ X# O& }2 r
}! B4 x5 t& ^& l7 Y, `! Z N; x
, [1 `5 _2 x( H; E9 Z& v else {4 [9 ~: v6 @/ R% U
' Q6 k+ ~2 I! `) Q/ W3 t5 Q: f& j keep if ddy240>=r(max)& m d. P0 K6 R' }6 n( Z7 q1 i5 F
9 v; S- B* [& @( O& i. y
sum dx240
5 ]5 m& d) D, u9 j ; N- e2 |! }1 D d4 E
local tempmaxp=r(max)
( x6 H9 m' c# Y e! F9 U/ k4 u5 I restore ! F: a$ O1 ]" q* p4 k
}* ^4 W: A. C% U B$ V& n; G
, I0 m/ m3 N3 ~5 G ?& r
! w) l9 t6 x- P/ h$ M4 S 5 G4 f' ]2 p6 a3 g
, Q2 u* g- l: s1 M9 ~- T# K
gen maxp=`tempmaxp' in 10 q; i4 P# I, F$ m. M
* w+ ]# N. i3 p' h1 W3 n0 g *240maxp3 ]( H, j/ T7 G9 b
( ~# N/ b; H' d; t( q3 L : c: k) n& T9 T, z$ Q
*-------------ddy240pminp左侧高峰值-----
Y! ?' q+ n7 p' M. ?/ \% z $ z$ K n3 ^ B
preserve
, w6 L: N. B& v% f, o: V: ?; E 1 w7 ^. @6 ?" m+ p0 W$ T
keep if dx240<`tempminp'
& [/ h5 [7 [' P9 a ' `# }& d! L/ \' B3 B5 b& C
keep if ddy240>09 C; P, Z0 Y2 q. U) |3 ]; `
9 }9 L0 Y& m6 P. s/ f. `9 |/ A count' U5 X" I! _( |9 ^1 R2 O$ U- @
. }* g+ P t8 ]2 \ if r(N)>2 {( V! a! d5 M0 J$ ?& j: Q
$ k5 f1 W: e# y$ d( V2 S* \+ e0 C pkexamine dx240 ddy240
* X3 w' k8 T4 F- }' f
. G) n1 H9 U$ j0 i local tempminphddy240=r(tomc) : |6 K2 t1 I/ R- J( ?& a0 g
restore
: Q" y2 ? {: o) } }6 ^0 \; p8 {$ n! j
/ `' C( ~% {1 Y/ S9 ?7 C% D+ E* g
else {' A5 C! d- m% T. E: d: j
restore ! E7 ~% q3 Z9 B/ W! ]0 B+ X
di "cannot find pminphddy240"
6 v, A1 @0 t+ H* K8 \; M* `! F 7 C; Y4 G, f' ^$ [% R6 A' N
3 q* ^% F# E! p: ~# P! `' U( ~
sum dx240
5 x- {' j$ v2 Q local tempminphddy240=r(mean) . @8 r* F/ w- ]. W
' `' J: o- h, O7 Y( N& Z% ?6 O w
/ R/ D! p, J2 f }
8 |2 C2 q$ ]9 G+ O' s/ x4 B" @ " X% B O5 q; q' f
# h+ u) J; V& N/ `
, X7 E; H" b, g" `% e( k% r
# y" m D% D7 x R; y! e1 t 6 a+ [* r( R% i! Q" s+ N+ L# V! ]7 P
: X& b& j) l3 Y. F/ n gen pminphddy240=`tempminphddy240' in 1
# J, L% F: J% w e0 K( m6 ?! g * ^8 h" O8 n, f9 @) j, q
% l7 M3 F; e: X6 K' u
*-------------ddy240pminp右侧低峰值 -----------------
8 |( F9 m: f8 a# O1 }9 i$ r; o6 T preserve $ t& ]7 K, X. v+ e# {
6 D7 n9 `; ?4 b" s; S$ P
keep if dx240>`tempminp'' E2 {; H4 ? F# u
1 h( e) ]* V7 f+ E" [5 e6 ?) x
keep if dx240<`tempmaxp'- Z; o- ^, [7 g
" P# v1 `) J$ [+ A: j; j/ s, e) X keep if ddy240<0
5 d! f, R, K& I# v7 t1 m; |( |0 R. ~ . J( m% {) f6 r4 {
gen temddy240=-ddy240" v% s) |4 A4 C* [! o; ?7 _
e% L0 k, {* i, i8 W/ y8 g
count
/ e }. G: N$ B |0 W5 R& n
9 B+ B, R0 k/ B6 b" L if r(N)>2 {. Y7 P: [% u) c) `4 n
/ U3 e; o R$ Z; z& B
pkexamine dx240 temddy2408 M v& Q' x' G
- |: O) F) S% W+ f z
local tempminplddy240=r(tomc)
% E" E+ }: a# i/ ?! K' k- | restore7 B7 S: ^1 H( T# b! p9 B, B( `
}9 t9 b, g S( H1 {1 |
, |# b4 n/ ^. s else {
- D$ S' ?0 @/ _3 g/ S' n2 d
, H4 }1 j/ H+ j. p- I) b9 x4 g9 v di "cannot find pminplddy240"
0 @# H& V) ]3 x) T* u restore
. }0 s* O9 ]3 I* x+ F7 E: E! B " A4 n3 X4 Q4 }4 Q
sum dx240
! H% B. t8 g& z$ r9 @3 L; } local tempminplddy240=r(mean)
. X: s# `3 p: G6 q4 a0 t& S 2 S) F$ V% r/ a. G
: w& V/ O) _3 p" V/ W, _8 v }2 I0 C/ s5 b, G! K& y" c
! p4 _/ L6 U6 Z7 b! I
g1 w) M3 x6 A2 }: t* o6 ? ' l# x7 m* S8 J8 C' N& B1 R F: l
9 z8 d- A' f) Z" I) e( Z
, ~0 u3 u5 t5 q3 g0 T
gen pminplddy240=`tempminplddy240' in 1$ N4 ~7 g" c0 Q1 d% K9 S
. u0 H' o5 O" d2 u! J *-------------ddy240pmaxp左侧高峰值 -------------------
% a8 ]0 _6 ~; m
) V8 U1 r! i( D9 h# B% t1 F preserve 0 ? `2 E4 g% Y; N/ @( U
1 w3 L6 e2 L( B
keep if dx240>`tempminp'
( g/ v7 y4 k- H7 w / `' d) J/ b! C$ c' |
keep if dx240<`tempmaxp'
q9 M# {: e! f& o' U$ Q, ~
8 _: C) Z$ ~4 }" U# L- n! v. ` keep if ddy240>0
7 K- A# t( G! B) q9 m5 k3 r count& w) ?8 l; @; l( H& c! @
f* G% D1 H: G, a' Y6 Z
if r(N)>2 {* c- U% X5 r$ u* [
, x9 ?+ Q: `' r/ j5 P
pkexamine dx240 ddy240
8 L7 ?- z3 r* r/ D3 _ p
' w5 E; _0 I/ T) F! x, @% b0 z+ V local tempmaxphddy240=r(tomc) % R1 P- w- y ]
_+ f$ J& e" g4 ~+ x restore
% E. @1 h# h) y; i. ^! E }1 e1 U* n# l7 d# o3 {9 J
; U7 |7 k ?+ d% b z" v# Z' H
else {% @3 y: C9 s2 k/ s0 M9 b& a
! @# w$ Q. _0 Q* R5 P2 ?! I9 z5 R2 h
di "cannot find pmaxphddy240"
3 A6 M: l' r3 O% R+ x+ ? restore5 }" c3 }* k' C! ^1 c8 G
, ]' [- T# U- y! X2 h# b1 S/ I
sum dx2400 g9 M7 K1 |4 e3 \8 {
local tempmaxphddy240=r(mean)
" u% \% Y2 }8 u. E" a5 o
8 n# J3 r5 O, x1 K7 |: R7 J7 U
2 V" r! E9 _/ f7 W }
- X# B& C4 w8 L, Y$ S
: z+ q* K6 P8 J; i " A* G. s1 n( S8 m3 f
' }; q; P: D" L# x
& I. w% `* w$ H * a0 \% | A. p, Q" k- \- M
5 u) p1 E1 c3 _. ?
gen pmaxphddy240=`tempmaxphddy240' in 11 ?! B& p3 T& d7 Z' u
+ b" X% |, R7 s
- R: B4 ~+ P2 d
*-------------ddy240pmaxp右侧低峰值 -------------------
! R: J$ I0 r" [. Y
, {$ B5 J6 G. Q- S/ X preserve 3 I# s' J0 k; c7 n7 q
2 T% I$ [% g) Y g
keep if dx240>`tempmaxp'. [/ U' [0 g$ V% [1 c0 C7 E. j
7 g% j6 X4 X1 w9 I2 b! m1 `8 _
gen temddy240=-ddy240
% g/ u% `: V2 F1 w, V* N
" R. @4 Q. p$ `9 Z* x keep if temddy240>0$ V1 o# G+ @; `
5 `" b6 I; w5 W V& U" j( R count
1 B$ ~ z, e ^; @; a
; x' s# ?$ f3 L+ i7 T! c5 I0 A if r(N)>2 {) {# n* V* f v1 P8 u/ b
; B( f; P9 p/ T+ R! X
pkexamine dx240 temddy240
. b! Y0 D# |2 a; p, ]3 D+ ]) w
) G* c- Y* A. Y$ } local tempmaxplddy240=r(tomc)
) L. C7 N% C+ Q5 m9 i3 H restore
/ K( K+ j. B+ r4 v8 P }+ Z3 Z( p, Z; D" N4 S0 c |
) A$ p7 p; v- ~# Q0 ^: D else {9 }# e; Y. h) J9 E" ]% `
restore
# L; H" n7 I2 [- ]: T; z di "cannot find pmaxlhddy240"! l! K6 s" _# E# r S, x, A
+ N- p9 N4 x; B
- H! |* C- k5 [ sum dx2404 }3 b* A+ }3 b0 I$ q: J8 o
local tempmaxplddy240=r(mean) in 1
, p( [4 f- V8 a9 \! B- P& r
' Y! d( H1 q7 h * {* K8 Y) r ^1 K1 K% O
}1 N* v* k4 A* y5 j, C( h
2 g v" E4 W. }
# O: z7 @. G! O3 i' i4 K* h
. p A, k6 V4 ?1 S$ v( p! W
9 U- P! t$ d3 {5 {
9 y( l# T# C) I : L3 B( {2 S# {1 F7 A/ E2 x+ L, s
gen pmaxplddy240=`tempmaxphddy240' in 19 E) ], x/ ]* U A+ Q# j, a$ a
J! A( C# t1 v! R: y6 s
*-------------------------------------; s1 n7 e3 y/ z* e+ c
6 p L% A- c# q: D1 z5 ]6 i; D2 v, x
gen price5d=v5 in 1/201 V$ a" ~5 E0 P
0 K9 }0 b6 L: K' e! |+ y' G9 i
gen price5yy=_n in 1/209 t" L' [" W; o# [5 W6 Z8 ^6 w( X
9 O; R( s' X* Y- H gen price5y=price5yy*(dy240max-dy240min)/20; a8 ~9 b# Z/ [ t9 E0 f# v* @+ j
- A p: P4 b) l
*price5y &price5d. ]" W, N: S" a
# P$ p9 _2 y! M& c1 F# [) T+ ?) G
gen priceny=price5y in 1( r0 V5 K* N+ g; Z8 V& p
! ^! k( l- j1 u6 D3 c5 [ gen pricen=v5 in 15 S) i" K" {, h2 L5 J7 O9 `1 `
( B- u+ p- T1 h! a
/ g" l& i C) k7 V. s$ B- u *priceny &pricen
: O( E3 y# U# |, i# m: r7 } 0 K% E8 m4 Y& Y9 J6 e$ m. @
9 F2 _# z5 G: r" U1 ]$ m7 }
*-------------------------graph------------------$ C' W4 `) ?4 y; s" O
: U7 ^* r A0 b1 i
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)- ~- y- ]. ~5 L: |' m4 ]
8 @" R8 y9 [, v0 V
* ---------可选项目----------------------2 A) w x1 Q5 ^- G* P4 ~+ @5 O& K" L
; J% b2 @: \4 t" v( [}
: }5 D% f+ \# K3 d9 V. U/ ^4 B [end
" E9 y5 |% W. n& j4 o, z y; {% g |
|