|
|
maodeng 发表于 2013-1-28 13:13 2 x( s4 R* j- U7 n
. hello 300236
4 ?* ?9 U9 K0 W( Nstatement out of context* {4 s/ [2 j8 q6 N+ T3 f
r(119); ) E# J# ?) v. {
抱歉,最近太忙了( N, X l# W B# v
/ w7 s) S6 b% ~0 G8 r, A, G
300236 我用下面的程序试过,没问题
" u3 G9 G6 `1 s. V1 }
/ A2 l3 |+ m8 |你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试& F' `: ~. u+ H, g" U2 F, R
) P* q5 R u: f$ ~3 c
capture program drop hello5 _* _6 t, Y8 \" a- v
3 ]' d% a7 {& O3 [) K( P
program hello$ l9 \5 O* X# [& B g3 a
* h; p# T3 \ U4 x% E4 t+ g: }
quietly {; _6 }' C, n3 h* n% e
2 a+ l" Q9 P5 P7 [8 s% `
clear
$ Z$ S% m) K" ~0 h8 `
; E' G. \7 B8 o C$ {6 ycd D:\stock\test\source4 v. N% C, R3 n+ K" _
7 d9 c' o$ S' _! Cinsheet using `1'.txt
* m/ \& M; w0 N, `5 q' O5 z6 h6 Y$ O" G* \3 e
keep if v5>0( D; J* _: Y* V, F4 B' D
5 e+ E! J1 q8 Z# S/ }4 Y y: ? gen vt=_n G1 B9 ]1 x9 k% I2 x: V
- J- c/ z" P2 n- b# ~$ E% I; g
tsset vt( p$ }4 r, r8 k4 _% ~
5 x6 P- S( B' x/ R7 m$ N" m, C
gen zf=D1.v5( t0 t& J1 r8 s; m, U7 o5 P% ~
) \3 C) n: F$ C0 z9 ? gsort -v1
5 H0 F C% w* k! v; s- X3 z3 k! Z; ^+ V1 n) w
gen avol=v7/v59 F( v0 b7 ?, _
( W& E: E" V0 T) D3 u/ d
keep if avol>0& [3 U- z* q! {. u- x. z- Y s
1 L! x- l5 |- A+ F6 z drop vt
; r- }$ v5 r0 }) \3 z5 m1 P 4 k8 U( _$ {+ I V2 w- \
gen vt=_n
* X& X7 s6 M: Y; k3 }% r4 P i2 Y 3 e3 P, \! o! s7 C! `/ n
tsset vt
' h5 v7 l) X# c6 `# m
5 x' `7 t" \1 s/ \ sum v5 [aw =avol]
& X i( E5 X7 r3 T4 G$ f. f- M5 h' J8 R" v- s- d
gen amean=r(mean) in 1
7 y4 l7 q J! f: |$ i
) Y, W; m1 w! O8 z * 总加权平均值 amean6 \7 j5 T& j7 K# ^
; P) Z3 {* v3 i/ f+ C" L
* a8 k) L' ^' c+ C
keep in 1/240$ Q8 P0 r" A, O3 W" r' o
0 U1 i9 L& o! m/ X
sum v5 [aw =avol]
7 B' k r/ } N# B3 L
: T8 S9 _' {7 N7 g gen mean240=r(mean) in 14 i4 [8 ]- x& s7 j/ i5 ^% F
- ]) x0 t$ O7 d3 l; z *240加权平均值 mean240! e6 z- A9 R" I1 x3 M5 G& @
+ g- E1 f$ h z set obs 500 2 F8 R9 K* k, n7 H
" s8 } m/ N% i* P7 K% O3 X: p kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
( \) O5 G, T% @5 B" T2 ]6 e 7 e8 K7 L5 h* v9 ^
*240 kdensity(dx240 dy240)
! p' l8 O% \ z7 l6 h/ r + {, g) N* E7 y, O& E
sum dy2407 C5 z% \3 G! ?# t2 i
% f, A; u5 q8 q* v gen yxis=r(max) in 1( p! p) m m$ D8 X1 \
# y) ?' J. `, V gen yxis2=yxis/21 k4 M$ k0 N' k3 W- _
, {/ |' T- C0 f
*yxis
6 t5 U0 W3 C/ @& u" `; U2 q . Y% G$ ~6 C. O5 ]: @. G9 {) V0 X1 ]
gen dy240max=r(max)# x7 [" E8 s; u+ F
' w- K7 R. {3 b/ S gen dy240minp=r(min)
$ I2 I+ P0 W* j2 k 4 `0 S) L: f! {
gen vtt=_n' l2 f. Y' a* K h; b) N
) ~3 U/ V7 q# D5 ` tsset vtt% ^( D4 y7 H$ \) A8 j
# @5 L9 r* d' e$ V. F/ M. A" e gen ddy240=D1.dy240/D1.dx2402 H+ J/ B0 o# j8 s( A. K ~
. n( Y" t/ y7 ]; e2 N+ h, E1 |- E
sum ddy240
6 E" O. r% |# p* ~
' A2 }; K* I' L4 C" @2 L& m) q gen ddy240max=r(max)
7 |- [ I1 P& J9 S
4 H# Y6 h" M# g- G( b gen ddy240min=r(min); ~7 j7 u7 ~+ }3 Q+ d
7 o) A Q7 i3 }7 Q
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)7 k1 B6 u0 r$ u9 w$ J
6 a9 ~5 X0 q4 h) H
sum ddy240g
! c1 q/ g& ~# ]& a) Q ) `1 D; o$ r3 Q# X
gen yxis3=r(min) in 17 h8 V# e$ x7 _; X# v7 d- N8 d2 S0 A
/ y' |6 l- Q5 Y" d, K7 O9 B# _ gen yxis4=0 in 1
" \/ i: ~1 x' Y & d; U% L0 p/ e; z* ~+ ?
*ddy240g
, v/ D2 i3 `! }+ E$ T
- B ]) Y+ F+ ? 7 g5 ~. P, C. b/ y- F8 o: q$ T! g, B
preserve
9 ~( h j" O3 G1 r. w % P" j$ o" D! F
sum v5 [aw =avol]
- Z9 D, L3 n- p* C6 e1 A4 V . N3 X! m5 Z' k: K1 X
keep if dx240<r(mean)& c: V% A( P/ `
, e. [* G4 n' D2 W+ ~" t sum ddy240# N. t w* ~- J' k; U. D4 _$ Z
; v% f6 a, X6 B/ u if r(min)<0 {
8 l$ k5 O( l. @/ }# b% `
- B7 }) V6 A/ s5 \* B8 P keep if ddy240<=0
8 s4 y8 S/ u, P s) ~. G* A/ v- E
! @) E, [5 p; \! W; j5 i count
! E2 c# @$ J: c3 V3 Y : D: j; O( T3 J( o9 F- d, K
if r(N)>2 {" D$ j# }4 c5 O8 Q
$ W' h5 U" Z% N$ {% c
pkexamine dx240 dy240
$ d ~' k# O+ G9 b0 M o! Y' }- H4 f , q$ t% O6 s" \3 \! k
local tempminp=r(tomc)
) K; z+ b1 Q5 s2 |) Y' K/ I restore
9 u4 K1 ]6 v& w }2 y J: o7 L8 u( {9 F6 H1 ~& a' ^3 p
* [4 R, S# M3 y; @+ a else {
& N; n' y; ], T2 M9 d& ^
, \# z Z# `6 M7 G. s2 L di "cannot find minp"
' w5 |& d \2 a S5 D7 h" W 0 m' @& L) o$ H9 [3 Q: a
restore
0 h$ A1 [- W. U5 d sum dx240
) U" i# I# g8 C: T& H( X8 @4 r local tempminp=r(mean): f5 Y6 }5 |& \
/ | x2 e B2 e+ P! ? }2 f7 Q7 ?9 {, U& K) s" V: p
}' } D, q" {' v+ D3 B( F: q% T
else {
: H3 y: [! [; y
. j- B2 W+ {( [" f: P3 ^# j8 d keep if ddy240<=r(min)
" y" g7 i5 k$ c8 ]$ @: E" m + v% r/ `- t% [
sum dx240# t1 y0 }7 c# i* V4 ]: a- g
- A8 G/ Z- p7 A* y
local tempminp=r(min)
; Y/ U9 H- J- x* k7 d( m7 ?+ c" ? restore
' X2 B' n; U* V/ l2 H' ~8 t" ? }2 s3 x* L: @, [
+ Y- \9 p+ v: r) Y9 o; k- b2 B* d4 s) [; ^; k% ?# H8 { t/ [
' K* G. y, [- B/ |; Q) \$ R
gen minp=`tempminp' in 10 B* y( d/ R/ G! L' U& g/ f5 [+ `
*240 minp+ C/ l' W) e* `, y, O3 l; f
( [& V4 h; |$ @* W; v$ I- y
4 ^; z4 ] F( R4 j/ y$ z , u( C0 O1 p. {* O0 V
preserve 3 n3 N/ Y# G5 ?
2 ^- Z$ P5 H5 \9 y' {0 Q P sum v5 [aw =avol]
2 U" D6 _8 a5 U3 Y " c/ I8 h1 k1 @) u8 C
keep if dx240>r(mean) G1 U+ Y- O+ R! Z
8 w4 E6 Y" X: T, x3 N! F
sum ddy240
2 O2 s( r' {! X- I
1 l# N# |# O; Z2 o* V1 [* t' Z if r(max)>0 {
# V7 g+ |) a6 U, w4 a % @2 t4 w. q- h- a
keep if ddy240>=0
1 f+ I; `2 C/ o
) U1 k1 U3 Z$ i# ^4 W4 K5 \" e* p count
) I+ b: M, b' \! x9 `. p2 g' X; G
& \" _+ p# T, {* k9 ~& k; Y if r(N)>2 {( b7 ]4 c; M7 x4 A
?* q1 O. V+ T
pkexamine dx240 dy240& t* t' @ s$ f7 Z. D( g; U& n
) P2 P- Q3 Y/ ^# P: V0 _
local tempmaxp=r(tomc)
. g8 h7 D" v6 V2 H# T restore 5 L: A: ?6 E8 \! w# ~# }/ Z( M
}
: q# ~/ N7 z4 U8 `, l
* {0 Z Z* M4 @ ! l/ |6 K- b' p# Z" X
else {
3 t- i. X b8 M; X/ \* m i restore 2 K3 N V1 C. N0 ]+ k) }
di "cannot find maxp": `6 I% L! _* X* N1 y4 m
7 @" c0 ?: [3 {) w$ N & _/ `: m* U/ o; p0 n$ e
sum dx240
N# D. H# S7 a& ]# K% x# n local tempmaxp=r(mean)
1 v2 }! r% u7 D ) @/ z2 G2 B3 ~
}, a. w9 a h% M
4 H0 f6 ?2 A2 B9 l }7 S9 `- s0 X0 _$ D# `7 T
) h- M2 e7 r8 ?9 c! t* ?3 U1 D& I else {
. y( U+ u6 [# } _: b6 B# o8 h# n
9 M! e& a: x! r( @& n keep if ddy240>=r(max)$ V3 \. u/ r; d, ^; M2 Z
% I. Y0 f7 X6 \1 C# i' o, n
sum dx240
/ o' y" j3 h9 T
' I; T, p- d" _' L7 ? local tempmaxp=r(max) % n) f8 V. {# s9 Y9 s: x
restore
' H; R" r1 z% W0 f( [. ] }
3 n) F _: f( m2 @' t- J0 |4 B
9 y$ |5 c/ i- f: R, F5 u! s. B8 U, @9 x L0 Z! R k0 e* E
8 s* ?6 v# s( _5 ^9 Q3 g
" _. Q- i3 f8 @% _0 G5 a5 m- o
gen maxp=`tempmaxp' in 1
( W6 w2 w, Y9 p5 Z" I4 R : [9 e, Q9 G# \" ]! i
*240maxp
7 B( e5 P: C* V1 r! n8 U3 t1 [8 W
2 W/ A# w7 R, i- Y3 D; a , m- p+ J. V8 N6 _
*-------------ddy240pminp左侧高峰值-----& p+ H' M- I; R, I% g/ Z3 W7 ^( K
& O4 W* h3 P8 f3 n4 ^0 R
preserve . Z! g* x3 |$ r9 ~5 W
/ s" ], L! ?1 C- T keep if dx240<`tempminp'
+ x* L$ O/ |( i0 z# s
' _6 b% u9 ~5 O6 C0 L' R M3 n keep if ddy240>03 o" P/ }6 S$ x4 T) a0 v) q+ K4 m/ C
* _+ w$ I7 b' I- E9 r" L# d$ k8 P2 u
count
8 |2 H+ N! T/ g. `( A: _" {
: r3 Y$ p; X% B' v0 n if r(N)>2 {
% v, O3 x/ d( `0 s, x6 V4 |
: E/ A0 k* m; s% }+ w8 { pkexamine dx240 ddy2402 j3 j& w9 J+ F" w, e# f( V
2 k+ H6 l, }; Y1 D5 Y. }+ c
local tempminphddy240=r(tomc) $ b" S4 r$ G: l* ^9 e. u) _* F4 j9 f
restore
* G3 w, ~6 X+ h) c! E, E& {$ W+ f } x- S9 Q# N" b
( r1 o9 I! J& W* k4 R. C5 k1 a else {2 Z6 k: ]4 R6 J! h) S. t: Z
restore 3 h; N9 q) V' _; o
di "cannot find pminphddy240"8 }5 [, i* S& z
# a0 L- [& Y5 I+ j. t3 I @ e2 E, ~+ N! U
sum dx240
+ o8 H( \5 z' B4 m/ ]* ^ local tempminphddy240=r(mean) ! R% a8 L9 [1 X) k$ }
, W1 r" Q# i4 f 6 |' q- e# ]' e5 x
}
0 E( F$ S' T% ^ r
/ F+ Z. V/ M |
$ G3 w' _. v a! ^ c' d$ J 2 b, r* x9 B2 L# V* s
6 t1 c, K; Z3 o2 i4 [- |# E7 o6 @
" M. W j4 X3 M8 v1 N. z: k( C
. ^/ c. r* [; ]! g' F gen pminphddy240=`tempminphddy240' in 1# H# I) c8 J+ c
6 P* V& J( A; f/ X
0 @. l7 S' F& x+ X4 R *-------------ddy240pminp右侧低峰值 -----------------: T& s. P. _& H
preserve 2 w" i5 D8 ?2 j) E/ o) w- W. U
- \# e' q6 T; R1 U, b2 ] keep if dx240>`tempminp'
0 b4 F9 v4 F/ e$ K * Y# }% P' U) S2 V- {
keep if dx240<`tempmaxp'
, j ~9 q- ?4 Z ) d0 T" I! h1 o. l J
keep if ddy240<0
# c f) k5 \8 F. @6 J ; j, \0 I/ q2 W: n* N7 C9 ?
gen temddy240=-ddy2408 L7 h3 k4 D# Y- ~
8 q7 h& G) p7 S6 L% y$ {* Q# a count
, a/ s x0 P, O/ p. a
9 q' V* r% V4 `0 P0 Y$ ^; Y if r(N)>2 {
- H' s) B$ h- h2 I: d ^% `
5 f% P. k5 C- G pkexamine dx240 temddy240# s; r; h& E! J& v6 P$ V
2 K* \- ? ]( v- U local tempminplddy240=r(tomc)7 L' j7 g% `% U; v8 u4 M3 S
restore% i3 M% y& z% ~9 w; z* E5 ~( q
}4 U! @( y j4 D" r6 B' n
# l/ \- o8 O% r4 \7 f else {. k, l9 a- f8 \* P, q
* _ d, n! `) Z: l" i5 d di "cannot find pminplddy240"
. w9 w- K) C4 P restore
; Z9 F; R2 B$ E' @ E
& Z/ Y L3 {& \; q3 [! Q sum dx240
( Z1 x8 G3 \: Z: _ local tempminplddy240=r(mean)
: [0 ~5 X: I; _ _2 a9 }" _# b
) h! C" W Q S" K5 I; i s6 H; {. R! D+ J
}
5 Z: a9 J: U3 e( q
2 x: e& Y: B. W1 ]5 m
; i) G" @( r3 l% T7 f, i$ r
2 i+ y3 w+ p6 D, f& d j3 u& w d2 a2 v( v) x8 T8 B
$ n+ W% B% E- U4 m, Z! y gen pminplddy240=`tempminplddy240' in 1
; o' V% A2 d- _0 H; }" f% v
f* A3 W1 Y+ d/ |7 M5 ?, k *-------------ddy240pmaxp左侧高峰值 -------------------
( d$ w& X k; F. a5 s
- c( J( N+ ]9 I& `2 L% M preserve 0 Y; O8 c, m8 b6 w! ^1 o
/ m4 ^ V7 X" b
keep if dx240>`tempminp'
$ b1 e. }/ v: P5 d) l8 k
: @" L7 s) s0 n9 C; f. x& f keep if dx240<`tempmaxp'; J4 W/ M5 m3 t0 }, [& ~
% Y# L3 g; @5 \ keep if ddy240>0; r* n* l5 x2 f7 D j
count$ d' E1 `4 C. o5 z& C' B* F, y; u
s8 q; r& s4 w if r(N)>2 {7 B4 e# Q+ G& I A8 U" y
; ^2 L% R9 G( }9 y" {8 q, f: [7 s
pkexamine dx240 ddy240
0 {; e/ l4 ]# ^9 Z$ `
/ I1 R" u, ^& ]" i6 h" V local tempmaxphddy240=r(tomc)
' P$ z7 L2 a' e6 u! C2 T1 q 1 d. E' Q& Q6 q3 L2 O$ [
restore
! D/ M% h9 N' _! a8 ]% v% K }7 _+ o/ v! n9 {0 t+ O
0 j3 ^8 A# Q/ \
else {
; b6 G2 h5 u% d8 B6 V B6 O8 B! b 1 H: T8 U3 V; Q. c" i
di "cannot find pmaxphddy240"
2 h1 ~% J! l; Y- J/ N restore
) ]4 D9 x! s6 g$ N
" x6 [/ X. G$ `. C# j' M; v# ] sum dx2403 r* Y- i B; ]6 o' J, y
local tempmaxphddy240=r(mean)
* G3 V3 q& b+ V e! W% R3 O
; w! Q1 V, T8 S8 l* T ' u# h) z( E/ e, l: J; o8 }
}
. n+ p- e' C4 R% ^6 B 0 g# {" l/ f q3 U& T8 \9 y
8 T: k; b0 ]: F4 d) U
, G6 g, u. ?' k' m1 }5 v! I) l 5 a% V$ `$ S+ b% ~4 n/ W$ V
, V* n; i- Z" X, C) [ / ?* _; U6 p$ d8 u2 @. q: Z
gen pmaxphddy240=`tempmaxphddy240' in 1
4 |- O0 i/ _3 O! [8 t; Q; b % X* j: {- r: r8 b
& Z, l8 @& ]) N6 V; M, j
*-------------ddy240pmaxp右侧低峰值 -------------------
/ s; j' E! y8 d
$ E+ b5 C( V" O6 M( F) x preserve
2 X! ^7 l7 j$ E# g) B, r2 i, ]
1 B7 ~- T) G, q% w+ _ keep if dx240>`tempmaxp'
+ V8 }/ O* u# e6 ?; @( f9 m( T& R& u
8 k1 C: ]; _+ L( W/ D gen temddy240=-ddy2409 j8 f5 x- l& [0 m; ^
. z. ^& h( @8 x8 m0 W keep if temddy240>0
$ t1 c0 w4 k5 w t9 q0 y - e1 e1 q( y9 G% e
count
* W" u7 u1 a9 K% p& X2 V! S
( H {; W1 V2 L9 ^# s if r(N)>2 {
$ Z4 k+ ]4 G5 w3 k * q) C7 x' i/ t' c/ [
pkexamine dx240 temddy2409 G1 G2 u7 x5 _' n9 L+ ~6 V
% e0 Y% I- {) i/ v
local tempmaxplddy240=r(tomc) 8 v8 u. B' b" |1 C
restore* W* b' h; f2 T3 v! E
}* x- l. F0 b4 q7 L, T$ E
* i3 y/ _5 y1 D0 r1 ]0 q else {
/ \# w4 C% @; n7 c, E+ _ restore
7 N0 r+ X. q# G4 L; I; D) H di "cannot find pmaxlhddy240"
( T4 r( z# x6 [# D) c+ B: y
0 x2 a- N& G2 ]" V' V S( L, s4 s% b 4 A! p- T- v. S# X, t
sum dx240
0 }1 e" O7 X* r8 @; y: S7 \ local tempmaxplddy240=r(mean) in 1, k3 R( i- M9 K$ x" @
+ x! q8 [& z+ E1 @3 s
' U) V' j9 s& V# N
}
( A3 h& `4 C P2 u4 V4 t + P& y( D$ s* v% }/ t6 j- {
& V4 B Q: w0 A B$ X6 E
0 U5 P! A& N' ~/ }
) p! ~! \" |" H6 Y5 [
! o& ?7 e1 l4 T# X/ v0 E5 |
! B8 U, ]( W& t- s6 R% O7 b gen pmaxplddy240=`tempmaxphddy240' in 1
+ E' W" m; B7 Q5 j' Z6 N/ X
% T: a$ _) S- p1 [5 K& h* Z7 J& O& C *-------------------------------------
7 |# G- k2 _8 D' t2 `9 U
* U; L% @+ P, t: N3 f4 e% c gen price5d=v5 in 1/20
. [5 Z6 {3 n) a% }$ g5 k 7 `: g8 ]0 q: @
gen price5yy=_n in 1/209 l1 V! d2 B# j/ j
2 _1 f+ A/ q1 |' i gen price5y=price5yy*(dy240max-dy240min)/20
) Y3 |4 ]0 L; F
n$ E) O9 m0 @7 b( C+ D4 f *price5y &price5d
5 c. ?9 T* r3 b) z3 w! i7 v, ~ ) v X. C% c1 w8 V G. O9 Z' q
gen priceny=price5y in 1) p+ ?0 S. ~1 e) |5 f$ C9 m
9 q) s" s& Z7 j" E4 n$ ~& M% t4 P4 g
gen pricen=v5 in 1
z# A H- e" P8 L9 n9 Z* j% \' C- e, A% h; i
5 x; f+ ~9 y, @# u9 W3 l7 }
*priceny &pricen
& e8 R4 \+ D; U/ K7 ]
/ e( x/ e5 k$ A* ]% o( i' o
) C% C5 Y( c) p, { *-------------------------graph------------------
$ ]6 t0 l# Y2 r& f& h2 m + @7 M1 z" U9 u% v6 ]4 s; q+ U3 W
tw(line dy240 ddy240g dx240)(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black)) (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)
# n& U& J' ]8 |% w! l
3 H+ E* z' t) k* ---------可选项目----------------------
( P9 N5 ~2 c; y: c0 ? r*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
& N8 L% K8 y: i}
6 K, y' Q+ W4 I, ^, Mend7 s' t! o( T; j
|
|