|
改了一下,这次运算应该没啥问题了: Y3 B: ?* G2 O- e8 z
7 A! q, b% }+ ?! k* q0 d: D) v$ |3 j3 l) Z% A/ u* Q
capture program drop hello
7 q2 n) ~$ l6 x, a4 n3 u9 U) H, P. A- N$ Z
program hello2 H& v* b* B7 }: x# @
3 \- t# _. d/ R! _; P, ?4 j
quietly {
% X6 |3 F4 I0 Y' o' O* J* ^; P( q2 G6 B1 G4 `" x( s' M
clear1 j; y0 s, s* Y# ^
, H( @! x1 e' S; j0 K2 n* c; Ccd e:\finance\stock\20110101\source# k5 A3 Q2 o0 N9 h' G7 n" t6 R8 h3 E
0 E2 y5 j5 \7 o- D: i
insheet using `1'.txt: f$ e& L: l2 |/ e$ a
+ o) y6 X$ [# n- L/ |+ n keep if v5>06 O9 E& ^) n. v$ z; k
$ W6 e8 A) \4 k' i gen vt=_n
# ?3 H, j3 L3 S3 ] z+ t
. X: D/ Z2 A/ A; U7 r tsset vt: A3 c0 ?5 {* ]2 l* ^" B' W0 a! _
# P6 ]: f) n5 Q4 {2 ^ ? gen zf=D1.v5
3 F4 F( [! k9 ]' ^& A+ B8 [& ]( {; j: n6 G& n$ p) S
gsort -v1
* D: x U; `1 {% S, w- R" h3 R
gen avol=v7/v5
7 s- W$ o# A8 c5 ] 0 F% ^# @7 {6 D+ e( e4 Z& { N: L
keep if avol>0) @* x, Q' {& E* j0 e6 D
( [, g& E/ l9 C' R
drop vt5 ~4 s( N+ m( x7 e$ O3 S
, M0 e/ I! t; r8 U7 w, ~
gen vt=_n
! L) V/ S" u2 w; Q0 x$ e
1 p/ n3 p3 e8 z5 {* q2 l/ B/ ? tsset vt! W' i6 h% ?. C+ E4 V% D
. p) N7 u1 y9 ~! J+ y& x% d
sum v5 [aw =avol]2 u+ A2 a# w* o; N2 a
% A3 S3 l' U6 ]5 W; C- k gen amean=r(mean) in 1
, A4 y; o& v( x: m: c6 Y9 d 4 c6 w* x. S4 ~4 {0 s$ L( k
* 总加权平均值 amean( \; a6 W! P7 s
# x9 M# t5 D2 z5 [2 T; \) V: ~
+ `5 o ~; _8 K& u* h
keep in 1/240" Y8 F* J5 R" }. U; l
, X9 w4 V; y6 U! O" @" C sum v5 [aw =avol]# N) n7 P2 g3 j- m0 M' J6 `
; n0 j3 {- }* W. j7 W& s# `: @ gen mean240=r(mean) in 1% y( l _) A# J9 E0 G& U i: P
# h: J5 }$ Z) U x2 A *240加权平均值 mean240, z2 f% d6 q% @4 \
/ Q* \# P1 h; w% t* [9 R0 F set obs 500
9 B9 i! [! K6 V2 }
& Q) X } Y; U# u4 ?/ Y kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
! Z0 c* a" x2 f$ n6 g, s" K7 Y' _ " f0 f! @4 O# h$ y1 {
*240 kdensity(dx240 dy240)& T$ s8 ^& a3 U6 O8 [
9 b W0 O9 t% E r: N% N8 |/ j" B
sum dy240
6 T2 U6 M* F, `6 g6 N 9 v" C$ S# D1 k5 I
gen yxis=r(max) in 1& \! C6 v: x$ x8 Z" p/ H: D
@+ K& B1 t6 G- E. P8 I9 a gen yxis2=yxis/2
# L/ {2 Z% q( \6 n6 V % ]* Y8 x4 ?8 ^( I- L4 M+ s
*yxis& I. v. e" O* `8 K
. l. l/ @$ M- r( S gen dy240max=r(max)
1 q. Z `7 M' D& h- ] 3 h) C( v$ y2 P
gen dy240minp=r(min)* ?7 U) y& b6 ] H6 f" I
" P( B& j+ j5 Z @ gen vtt=_n
+ I3 N" I$ K& Z/ B' a
& k7 x% y) ~8 m- m0 \ tsset vtt
6 M2 ?; Y9 _8 S' t% D# u+ G, g1 T A6 Q+ s6 Q3 A
gen ddy240=D1.dy240/D1.dx240
2 Z2 e$ D+ n, ]& k
; S- S. a# c. o0 ~ sum ddy240
0 ~/ v5 a& ?' ~* r4 { \
* _$ f8 p' F! O. ~% R% d gen ddy240max=r(max)# N$ ?# x1 L' i2 A( U) n
( F& n% d* r* f# z2 K gen ddy240min=r(min)0 J# A- P# [! G; t) e8 m5 q
6 a: A9 B: k' e1 k1 o gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
! T/ L6 N7 L) A- f6 w- p
. F/ k. `/ O/ x$ m sum ddy240g
! M4 J6 D& ~9 d) [; V. i) n z
4 Y) Y8 ]4 ~& h6 K+ h4 j gen yxis3=r(min) in 1
8 i4 k2 O% w& A! {. g
- g) e' c' E& r gen yxis4=0 in 1& ^$ t6 }: Y% H0 [
( {% G& N# O7 K) Z" Q- G
*ddy240g . V( M& ^3 b O8 ~1 f
0 w6 k1 u1 N' ` ) B* G) {( Q2 g: b7 [
preserve 8 o# X$ y8 I2 X* ]3 s$ d) x
4 P1 ?/ Y6 H! u, g# \; H) K
sum v5 [aw =avol]
9 [5 H* ?( s5 E# S
( b3 e5 c" V& D+ `; A+ ` keep if dx240<r(mean)9 s2 t% f4 g/ O. K1 B7 [3 T' @
- P+ G9 [4 o' _: g" V n+ V, _2 z# h
sum ddy240: ]; }: D- t0 Y& I3 \$ I
$ T! X% a$ d" k8 [ if r(min)<0 {. U9 s7 I3 C9 i2 r' S
( K8 a" z: h8 h
keep if ddy240<=0
3 y8 o* }! n; X" a. c; m
- Z9 b. }9 I& ?, k4 n/ V: ` count
1 O9 S: e* A5 m / A K1 t ?' K( t0 ]
if r(N)>2 {
% u/ g* n$ e4 [ N, ?8 Y' Y( H; |: ^
. c* W# j7 d6 \, W3 j pkexamine dx240 dy240* D% D) ^) X( k L N+ L1 ]( A& A0 e. Z
6 b( a4 o7 u2 g7 ? K local tempminp=r(tomc)
1 @4 A8 B* Y8 u$ }; z restore
' r5 O0 I, n: O5 h2 [ }
0 F( [2 s3 J6 j5 ~/ u: w q7 { ^6 l `4 z, e. N
else {: n% r7 |' x- o+ N A, `
" ?& m+ @) n, w. U+ S( `6 q7 r" Y di "cannot find minp"
3 ~6 S: I! i$ i: j3 i: e
; R0 q2 K8 m9 Q( v/ }& J9 D& W restore / e6 f# g$ w' o9 }2 f }
sum dx2406 p2 h* ~. J! t2 N2 b
local tempminp=r(mean)5 {' A) O6 R/ C8 x; f$ U
8 F3 \! d/ u+ T# p
}
" F/ P G0 o' H8 m C& t }
* H( k2 P! [. l else {- T' g2 x6 L( a3 t* i" o" x# G
1 v" W ]" g3 R- Q, _) ]$ A7 p2 v keep if ddy240<=r(min)( t9 U7 R! o3 \' S8 C9 p6 p# u
2 z' F' w! g& h: i sum dx2408 J. x3 F. x+ w6 s; c
! k: }1 w& j' g) ]; W( g
local tempminp=r(min)
4 \& t, {0 Z; G5 d0 R restore
! |4 }# Q. B, A" K5 p3 v }
$ i5 I* Y8 B7 b [' V' t$ |+ ~6 u* t$ e x" x: v" T
) U% ~/ i# w. }3 |" d- Y* X Z, ~; z% q7 s! K& M
gen minp=`tempminp' in 1
) k1 v8 u* O* w8 V2 T& o *240 minp
+ }1 [6 G1 M/ h& r1 e, ]) Z' `8 e( ]0 o- n6 x8 u$ U
% W ?) o2 x2 ]0 B
8 m$ Y; [9 V2 Z preserve ( H2 @( {. u0 U/ X, B$ f
5 M0 r& N, u0 { sum v5 [aw =avol]
. D' z) \2 i# |" [: j/ {. \; K # r* ]. e8 t% H8 x0 m
keep if dx240>r(mean)$ }/ j2 S. ^! u5 l
$ p% u( i* q; W4 F7 i. C; f6 k
sum ddy240
+ T5 p( y& P$ f ~6 w( t. k3 d 9 D. L$ V+ V7 ]3 ^$ Z* j# \" n& j
if r(max)>0 {/ x% J) u# Y8 V: j! }: o3 j
3 R V' {0 q% l/ o keep if ddy240>=0
/ u5 R5 x; j+ U ) X5 J) o/ \ r- t
count2 a3 D) u1 F) b; Z8 e6 V
4 F4 ^# y6 ]1 V% B
if r(N)>2 {
7 |# n2 t6 d% ~8 E
# ?# w, ]% q& j1 d/ T5 q( ^ pkexamine dx240 dy240
& l$ w6 f9 V1 N5 A3 T& B y/ J9 r& K, s6 D' B6 F( q# T
local tempmaxp=r(tomc)
# Q6 a# g, a1 R" K- e' Y restore
|7 W+ y" J2 C }' N7 H" ]8 ]% f4 z# o* t
7 u) k+ Y5 a9 |- i, N) q
. D% o. S8 T" R( b5 D, ^! o else {
7 {* f( u+ S* P+ i9 d# O) |! x" W restore
( J' @( h" S: O" e di "cannot find maxp"
' K4 r9 y, B& | B" I
" g/ x8 n. [: x! p8 P- a* b5 ^ 2 _6 |( j" ~: D" @- }2 u. o3 _
sum dx240
8 D3 i, n1 s' k# e0 R local tempmaxp=r(mean)& B6 S2 p! `. S" r7 J
, a, e4 H6 q' I& \ }6 S+ ^2 v6 l3 `& }7 d6 F
7 h, i: a8 w- I! Z- |* r( K }
8 ~/ M5 O4 g- e1 H / \; R& W0 C _4 d% p
else {
5 p0 q' a2 ] @) A) `! u
; _5 C! C: k! b keep if ddy240>=r(max)! ^6 [; J" t& g$ g2 q& I9 r) X& ]
( \7 b+ N, U& P; Q2 u( }( B8 C
sum dx240
4 y6 F2 E6 ]# a ' T5 O$ ?1 {) |6 C$ R
local tempmaxp=r(max)
; K6 b4 E9 k# o, |4 y restore
# Y4 a# j1 a5 g" d1 H7 e }( N( o& J5 u- R
4 ~' U( f0 J5 E: V6 o2 |: A% {
0 ]5 @) q: S- A R1 E7 x, s2 Z
' w8 T! i% D7 Z3 k2 H. @7 x3 `7 n# n! O; B
gen maxp=`tempmaxp' in 1
9 t' e! R5 N* n- B/ q: Q ! C9 |4 U- m7 g6 K+ m
*240maxp! E- V5 `$ @/ ^ V" j0 a+ `
" u4 b; J* B) c$ G
/ {5 ?5 p" y* D7 B( [
*-------------ddy240pminp左侧高峰值-----
; h3 L& S% T) ]% @; `5 Q & \% z+ W- |" }& y
preserve
4 {2 T% `. z( I6 C% i2 N. } $ j5 }! J- B: Z) R5 ]% G0 r3 x. Z
keep if dx240<`tempminp'
- j6 ~7 n1 ~4 _ # x. r1 a1 {* D3 b9 l B: x
keep if ddy240>0! f- A2 Q: Q: I+ n+ j
3 d6 ?- C% h# K4 B count p) z) t& s9 r! V# A9 z) w5 P Z
- H/ u+ s: W. H1 V& k1 n& N, H if r(N)>2 {- n7 f N$ d. `
! k2 Y9 ] G, d3 r1 y( e8 e5 M pkexamine dx240 ddy240
8 r! y: _" t! S# S- I' m% a. L5 F 9 Q9 k/ ]3 y% R8 P/ M
local tempminphddy240=r(tomc)
8 `3 ^8 I n, e( b0 a restore) s6 N7 U/ x: n6 M) ?
}* D3 a% G& T) X2 l& m+ O
7 z. d: \( r' Z else {# D3 M, b% [ o: r( i; m
restore
0 E+ l% C% p" X$ [" X, X6 b/ N di "cannot find pminphddy240": p: O% k) Z* d- U% C; M
, T) `! C+ s" {0 b% M* P' k& B
( N& F* u5 _# E
sum dx240
5 \ X, Z7 R; k9 a( t' S2 e1 q. J local tempminphddy240=r(mean) 5 e, ~ H8 _* q2 x5 `. n
/ H( [0 ~1 a6 m5 u0 M$ ^7 e
, D! Q$ a; H& g9 @1 |2 w
}
. T1 x6 e+ @* P m1 `/ ~ ' J. a2 N4 A4 i; A) ~) m% y
; G6 `8 m8 l- q. Y/ T8 |/ b7 ^- ^
3 k6 V6 B" `4 p' A2 ?) ] * V( w3 z. N, e# M3 @2 G& `
( O5 t' P, ~$ P- o, R7 {! w- I
' e! A: d2 f- p5 m gen pminphddy240=`tempminphddy240' in 1
9 ?8 S- @1 H$ i$ [. F2 ] ; G; s( I: L" x* V, |* B
' K" r8 D6 G9 l7 U0 l& Y- H *-------------ddy240pminp右侧低峰值 -----------------
; A4 u( @# Q! |8 B/ m6 Z- ` preserve " i7 u2 Z, H2 P
( S3 L; q6 E1 V/ {2 @- ^: F# h keep if dx240>`tempminp'
# T+ N* Z8 H4 u3 |. ] . p! b& O8 m0 P3 K, m5 O
keep if dx240<`tempmaxp') p4 b% {+ a c1 ^8 O% h) I
% [3 g& E; @% _
keep if ddy240<04 l7 ^8 ]8 b# |, B; G9 {/ B
2 ]& K+ T; f/ `1 k6 v
gen temddy240=-ddy240" b, F6 q4 q7 I. z, d' H9 c
. O- t* H1 P. t8 B5 G
count: F, g# e" P7 s0 Y0 B5 P
: Z! R2 s" C+ d& j$ z. | if r(N)>2 {
5 }! h0 B1 M* s3 H' e' \6 O 8 g, b" Y. V- M3 d" U; w) f
pkexamine dx240 temddy2402 [/ a, h! j( P$ h8 |: }+ T
. ~$ I/ } @; X% [2 v$ |" B
local tempminplddy240=r(tomc)
+ E% t- {. K$ \! T' y9 E' f restore5 S; ^) h+ P J. d0 j, e" h, K" ` Y& B
}3 ~9 s2 u( C; w" t: {
3 i$ c/ X* r( @1 [! D5 A5 | else {$ [9 O2 P7 o5 [
" G" g" F3 H$ B2 {# o* g5 }3 B- R di "cannot find pminplddy240"
1 X( u. ?4 Z$ n; l& R+ E0 } restore
1 w9 ^6 y2 h3 ~4 C
- X3 l" k. o. ^) }+ s& `1 U5 D sum dx240
8 N0 I6 C* y( [( T local tempminplddy240=r(mean)( j9 Y f) Z( e; M( w' z
1 d: m4 i( o( ^2 e# {' H 3 P6 P1 L: r4 p& v, I; `! U( e
}
- Q, a; u7 U* C& |! p( v# q , n- V0 ?! A3 o2 u, y: l
) Y6 l4 _( [+ t6 p( |* P, @- W
/ r9 @8 i+ S" a* b( y+ F) f4 W
1 b7 j% l B# @/ _" c% ~$ D + `/ \) V9 U6 Y& L
gen pminplddy240=`tempminplddy240' in 1) y. ^/ m7 l' Y: f! y
% H5 X7 S8 [' ]2 P
*-------------ddy240pmaxp左侧高峰值 -------------------% x j% e' ^. |' f
/ O3 O" ^/ X2 f5 |% R preserve
/ {1 [$ X) a. n9 `
$ r L! p3 K! ?8 ~$ M E keep if dx240>`tempminp'2 k h4 y0 n( }- P- l/ V3 D
, M( {0 R) [' r2 }2 Z
keep if dx240<`tempmaxp': |: `% S+ d* q0 p8 V% j( t7 E
' a* i6 H! f! |, x. m keep if ddy240>00 B; y3 ^' w- K q7 O5 i
count
7 |7 k. r6 A9 C+ W" G. [
2 D* G+ v C+ ~9 f7 z4 u if r(N)>2 {
# W) E ]) {( C) d6 } ~. v" q
$ V$ g3 B; r9 w8 B5 d pkexamine dx240 ddy240
6 y+ |% i9 u" @& k y. ^7 f) P- D# q- R; [: w( P. r
local tempmaxphddy240=r(tomc) 5 c' N2 |4 ^ ^( S* h
; f f9 e- @2 P" q
restore! v6 e8 i$ }; v' R1 i0 P( c& l
}# W9 S, _% `& \, c9 r
$ f3 b' j2 {3 t( M) K: _ else {
5 l& j+ F' V2 ~$ M $ d) }8 G# [& V
di "cannot find pmaxphddy240"; _- ?4 @0 Y, J- X) l
restore6 y4 P0 n$ |* b* H$ x1 H
" g. @2 l: v% x6 T1 t+ G. I( R sum dx240
. Y, B7 _1 J" X! V0 D; d local tempmaxphddy240=r(mean) ( G/ z( b: |- ~9 }
' t' z3 u7 n% L6 l9 f$ S3 [3 b6 x
" V8 E. R9 J& }# c! ^ }% X; W W. e% W! ]. L; Z
: n6 A2 t) v2 `; X% n$ r
" s v$ R" B/ P9 m5 f& h
) \6 s/ p- i/ J 3 O3 N4 ]( o- {1 A1 M: c
) w0 a- W' i0 u' x& E/ X! E- Z5 V
# V v$ p; _! z gen pmaxphddy240=`tempmaxphddy240' in 1
( E3 {5 V3 c6 _ 7 g/ \: I" m7 W+ f& V% k
# u2 A9 s5 Z5 L *-------------ddy240pmaxp右侧低峰值 -------------------
; C6 v1 y/ e8 N4 Q ~6 ` * p' j6 Z' Z. K0 }. P$ z
preserve 2 J% g* B' g+ t! l% w$ G
" v# Q# M# I% e7 m) m7 e3 V3 }
keep if dx240>`tempmaxp'
* O' } N- v' t- o9 j7 y n/ J0 e$ h- F$ l8 k1 K
gen temddy240=-ddy240
2 t! U6 s+ q6 l* l( W ^ , m6 F4 ] i: x; Q" r A5 D
keep if temddy240>0
. k Y& l- V) ^" W+ q6 p) ? - g2 Y$ g5 \, H. |6 `* ]3 n
count3 [8 |1 p9 q" M p7 ]% ~! B' J2 E
* L/ U' _( v' d( f3 _
if r(N)>2 {
$ t' b' W% {+ V- e+ o' W
+ @& n; u* m) n% a# j5 F/ a* x pkexamine dx240 temddy2409 d( D4 N( E+ {+ p8 A* d! v
4 V: j8 Q+ G0 Z% I
local tempmaxplddy240=r(tomc) 1 w6 @# m0 P( O# g
restore
& S5 \. g. D# b) t7 @% a& ^; Q' J1 Z }' n: r2 x2 o# A, K2 Y- v* G
7 w" D$ g0 ?# P/ I+ ]* M8 e
else {
/ ]0 ^4 n% D, O) ` restore6 L G8 {6 P/ Y2 i. c( l
di "cannot find pmaxlhddy240"
) U% m0 |; |; p9 ]0 ]& S ' n. E! ]& {/ H. }$ h6 Q' x
- b: g) R4 D. c3 G7 ]1 Y9 D sum dx240
+ t0 Z4 |3 T! s* a2 h3 s local tempmaxplddy240=r(mean) in 1* ]3 @; a+ c' E- I1 y; H; e2 C% C
# F# R% I- D# K8 B# z$ e
8 ?: Z9 C4 y1 V# S" I
}% b9 ]3 q7 O7 U9 \% T/ x5 v' i$ J% |
$ ^: e- L5 r, u: A6 y' ~' L
1 P- y) A/ D% Q4 n7 r) h) [
" G. T0 y+ {3 r& @1 c, E
1 V. i4 F; D4 V1 q+ e
+ f( e6 r. s% Y5 [* C$ h! e
8 T" O! J& i( C4 z0 w5 C8 v- e gen pmaxplddy240=`tempmaxphddy240' in 1# @4 L& |& n$ G) r, w
9 p/ _$ u, C) F- A
*-------------------------------------
# G6 J% ~0 e: ?! K, C8 Z a2 q4 D2 ^. J3 w% N
gen price5d=v5 in 1/20
( M. f8 F* o2 q
4 N4 [5 {3 r% p gen price5yy=_n in 1/20
2 z8 Z+ ]* ^1 a& ]* y7 i- a. s& o
( E4 j3 i/ O+ {% |) s8 S% m$ q6 U gen price5y=price5yy*(dy240max-dy240min)/20
* T9 `1 o/ G6 b# B! q) ?- i0 c' _
5 N# e0 v1 ]1 Y! @7 j: I6 n) G *price5y &price5d& \" s1 E2 C z) E
0 Y6 d1 b" a' w3 c gen priceny=price5y in 1( E6 {4 ]4 b( U# W- H; r4 F* T
- V( P- }' S. R5 m% L6 U3 m gen pricen=v5 in 17 q `9 j* ]0 B$ O8 ]' \ n
& _1 Y7 y. q z1 w* j# I# N 1 A8 d/ c) _" H3 x5 t$ ~* v
*priceny &pricen: M- S/ @9 g5 u9 P& r
; U: w7 ]" |1 d8 d. l, M0 D0 Z5 F( c
* @, J4 v6 t) m8 E1 U6 t6 P& C *-------------------------graph------------------* [7 I' `: l; ]9 @' m* V4 N
: r1 k! P: U9 s% A5 ~
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)
& d: G$ S; j1 r3 {$ f
; s- u3 N( l- k& s" z% m* ---------可选项目----------------------: {. A3 p5 F2 T, ]7 P; I. W1 b+ V. m- F
$ A" }2 _! t4 `! s& o) A& p9 D}
D6 g) U' {6 K4 c1 H# H" Oend( C8 F5 l+ {9 V
|
|