|
maodeng 发表于 2013-1-28 13:13 ![]()
# H0 i) ^1 ]1 g* g. hello 300236
; z. `6 }8 @8 a! O8 Y2 A; ystatement out of context4 f4 H2 i- x9 j8 h
r(119);
+ A0 y4 `, T2 \( ^# M抱歉,最近太忙了( U9 @, ?7 R4 z, B4 i4 X6 V
& _- Z6 P3 H3 q6 X% A9 x; M
300236 我用下面的程序试过,没问题
0 _6 ?! w$ \/ b0 T; |5 O; H0 d0 l8 f Z
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
+ I% t+ D5 O* S4 j( t! B$ `) X
" M5 a: k& W `capture program drop hello
* L4 u. |. j5 q8 w8 a- J3 Y1 R' }6 l! [; c; r
program hello
: f/ ?3 w( v/ v# e( `6 V* m! z+ |4 E
quietly {+ I- m+ A, |: @# n- u4 n
% B) @0 r3 l, |) d! c; X
clear- M9 ^" V9 E5 m& @6 w; l
% Y+ V6 t) k! X; q; P$ }0 A: ^
cd D:\stock\test\source
$ C9 n8 q' B f" A- W$ i' ?' _, O! `; c1 T
insheet using `1'.txt
5 G _1 w/ [- L) U( ?. a9 _' r2 W' g# {0 b T) n7 J
keep if v5>0$ O9 v2 {" c* A
3 R+ o# _( ?/ e gen vt=_n: c3 C: W0 h* k" u
. v! T3 ?& H4 x& @2 ~, f8 s
tsset vt
& }6 e/ z- G- Q" y; Z
1 \8 O- q: C0 [; g$ K gen zf=D1.v5
: R- F ^: F) c7 g& S/ x1 \6 |" N! j1 T( y- l7 S2 S, [
gsort -v10 x `3 X. |2 Z: ?$ J
' k1 W- }; |5 [% S& U; y
gen avol=v7/v5
- g2 W) Z" g7 w$ n7 m ~+ } ! t* D5 q5 C8 g
keep if avol>0- n4 q6 i* T8 ^: W0 d
8 K7 u9 Z5 t, G# ?
drop vt, ]2 o6 f' d3 J( ~6 x+ V+ j
4 h2 W- J/ I, A) A gen vt=_n2 L+ H2 u' f; p+ x" r- `4 u7 N
" M `2 ^+ t( `' k" C
tsset vt
9 f' E# D! N! M8 M; ^ 2 y; e. | g9 V3 f; {; c+ i4 }
sum v5 [aw =avol]
) X% k, P# a" u; J) T2 N2 g5 x/ H, b8 t2 u& a0 D) j2 a# j) r
gen amean=r(mean) in 18 N, u0 ^" r: ]( @) d9 }$ t3 t. Y
% Z X+ X4 N' \8 s" Q- X" F
* 总加权平均值 amean9 m7 Y( U* v6 J& b$ ^
* B( n* \& \2 V! l$ t7 F9 ~( ]& C
$ Z! s. ?6 h5 ^7 Y* ]7 j, W keep in 1/240
, l. d4 j5 _' z+ S$ L$ g. c+ h4 S; H- B4 H
sum v5 [aw =avol]6 J% @" I5 V+ ^. j
# U. H- m$ H' ?; Y( U gen mean240=r(mean) in 1, w; y& R, I) D8 J: T1 L! d
8 ~6 Y+ y$ b/ A. t *240加权平均值 mean240
# L! l+ ?6 s# i, b; k' n5 P+ o - e I/ F4 `6 s" t( Z; {3 y
set obs 500 " m( |0 s" u1 r) r% T6 l: o
z6 E3 N4 v. F! i kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 Y$ @$ w! |9 k a. R
2 F, L) c, V8 j% V; ? *240 kdensity(dx240 dy240), {# m4 u. T" S/ O
; l- k) p0 w+ E9 Y' S3 l& n1 V sum dy2404 M. b, a9 s/ v9 H2 x4 G, a
- t; d, m. L9 Z: C2 ] gen yxis=r(max) in 1
; W d4 u0 h0 l $ X3 P+ \3 G6 T% ~' r
gen yxis2=yxis/2& X* p9 }$ _ s$ s
" |. e$ k) [ O8 ^
*yxis, K3 n, w1 w2 C( d! C" t8 L
" N. T \# d# ?& q; R
gen dy240max=r(max)
- x! c/ h. J4 P. y4 k& i
& G% }& m$ R# e' B; T; b gen dy240minp=r(min)' i/ |0 F) w- c9 u
# E0 x7 I$ ~. }5 t F
gen vtt=_n
( g9 |+ I1 j- K8 L% D0 e) z2 }1 } e: U$ _! v& v- S) @
tsset vtt
) p+ a2 c3 I6 m- j( o* f/ L
+ N6 s- p+ {6 O4 X* \ gen ddy240=D1.dy240/D1.dx240
4 K. h! }2 u9 o0 o' Q6 |
" [+ c3 D* A4 _) k; _0 o sum ddy240. A% c% @; O- l9 I8 v: l! l) m
1 q# Z6 I$ V- ~" e: |
gen ddy240max=r(max)
8 o9 u% y! s% ^8 ^: i; g + D. i6 A- Q" a( H! [6 P) j# k# J5 w
gen ddy240min=r(min)
! n, D7 u/ v* R7 ~
1 ?' }8 Z( M3 L8 t, U4 o gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)% u) Q$ u- U# W, ^
* a0 s! u3 N* X ~6 o' Q6 I+ d sum ddy240g
8 [2 x" h9 j9 q+ z) [# D! |
3 x3 f8 H" E/ }! F0 Y gen yxis3=r(min) in 1' \: C9 P) u6 k% r6 |, i( U
1 P8 ^: Z! o4 s- d
gen yxis4=0 in 19 I( z! Q! |; V
8 @4 {* m4 O( i7 q
*ddy240g
4 L$ `. P7 ~0 n0 _- `4 B ( ^+ _0 W" [1 {/ H5 r
( b) Q+ m5 k/ o4 v' s% K- N( v preserve & C o! r" u3 e. `5 w' g3 o" n! x
8 S; b1 V; w0 @# l" U# q
sum v5 [aw =avol]6 V" l/ r. ?6 j. ~' ^. o
5 c w5 W9 c! Q8 f. y C
keep if dx240<r(mean)0 z0 c5 _, I& Q
$ |& c1 \" \/ H5 J, X9 j& j h sum ddy240
0 _6 @4 {1 [/ W2 H& \
1 D% @' H/ y. D2 L5 d/ \ if r(min)<0 {
t7 G; Z" Q* g' C3 n ! M9 {# m, i. M9 g3 O
keep if ddy240<=03 k: N+ f. n* \8 A
' Y$ U) s- c b9 C count: Y) k$ L8 w1 L" ?" S0 s! U
. U" K I% F& |1 P; u: d( \/ m if r(N)>2 {: Z& C3 {6 r5 K2 L# U( N
& k% Z1 ]! ` ?9 k5 b pkexamine dx240 dy240
6 R" u- d( @! H, o* }
- I/ K$ f( a3 T- v local tempminp=r(tomc)/ q- X/ f1 T/ }" d! Y6 e3 a
restore
# G' c! ~6 P* T4 F0 R3 X6 v }8 T/ v( G5 M, @# E1 ^( U: \+ H
8 C8 I' d- j' M: C# |
else {% m* o' d% \" i8 Z9 g/ j& a1 V) h
; p$ g6 t4 J2 f8 E
di "cannot find minp"! ^: r R. T Z3 r
* r7 @' J" c. S9 s6 B& U) }2 w
restore
. K* A; v/ e$ a& t5 |( U$ Y J sum dx240 x7 |9 Y- c+ T6 k3 N
local tempminp=r(mean)( }; G, x3 c2 V+ E
) J# S2 j0 m% U# t) k
}. h7 i& O' P3 G; t
}
4 `. @! U$ G+ e7 }# N3 }! \ else {
% P( `! M/ v+ L3 F% M2 }+ e " l6 [6 l6 L9 G3 w1 T# x5 J/ X
keep if ddy240<=r(min)
2 x# B1 A k0 u
' @/ @" l3 L, |) x1 l sum dx240
+ w* g' n0 Z$ T# W: ?5 |$ J; z
, T4 q0 G8 K) i# x3 S/ t local tempminp=r(min)# ?; h+ o" ~# O- ^& a
restore
) W* A! F' C" O& D }; d' |/ |. v5 t& Y0 b
+ P3 e! t* R2 p/ S6 \$ Y4 }
8 g4 {. a6 K. G8 U$ S$ d) A" ?( G/ [2 k; E
gen minp=`tempminp' in 1
- A! H0 Z/ N# ~9 v% S; v/ | *240 minp9 V2 Z+ s0 x2 c- a; `
( J( T( A7 u- P: T
: K; u L* s" E) h% K) U1 A
" f' V+ `, l7 e; | preserve
3 O. r9 p/ `" j# ] 6 g3 v4 F# V+ M
sum v5 [aw =avol]5 ]( C4 m3 z8 c2 Y. x6 u
9 a3 p) C' q/ N. l% w: d# N) k/ m keep if dx240>r(mean)) R g Q: q; {9 S
8 ]; l. P6 v& B0 X& B- C
sum ddy240" p8 D; w0 g! h, D' e% R" `* K: D
2 t! {9 @9 d$ S. r2 I! s$ A7 ] if r(max)>0 {+ f% P6 G9 U) W: E, B$ i- ]9 [
1 T( s/ Y) e* z F0 N2 c( B keep if ddy240>=0$ B$ B$ `- X) w/ A) \0 O7 r
2 h! Q) n" k0 I9 h6 K7 ^9 \
count4 }/ x8 M& j: h$ ^3 d& Z3 o! V& M0 l
( \ r6 }! q- r$ F9 B4 X if r(N)>2 {" W9 m. V+ G! N' r9 L
& k+ T2 R0 x6 V8 i
pkexamine dx240 dy240
" A) M* m, x# [( J. w9 N0 y2 o8 H 9 U* P* X! w) N. b: `# I
local tempmaxp=r(tomc)
2 p5 o. E4 S M) g& }2 ~( M restore & [' I% R/ A9 ?
}$ @- g- X$ w- w9 R. E
( [ Y W1 O- s$ x
1 D, Q. u- L7 C' i9 ?4 o# C' Y+ |& L
else {9 b# o6 e7 T& E) J
restore & S4 C( c' a, {+ |5 M
di "cannot find maxp"
6 x% Z1 J; p; ?: O9 p$ m3 h
. {# z' @5 M4 o u' i2 J- `5 M
5 d" Y9 s2 }, o, E' L sum dx240
# p+ u) h" U5 G5 H: M$ Z7 J R local tempmaxp=r(mean)
# W7 Z( C5 L- i! a8 z
+ j6 R; J: T/ v3 E }
3 J: s `. I3 m7 [9 L 1 V6 U5 E/ Z( f" Y5 x" e n ]
}% h, t( Q* N# x# V& ^( @8 z
: o' z7 y. ]# Y @' v: \3 {2 D else {- n$ [. |7 b$ W% ?4 A7 t$ S1 w
( T& _. e+ u# `
keep if ddy240>=r(max): s Q" [5 X5 r! Z! [
; @% i3 k0 y/ w
sum dx240
( h, \+ ?1 M5 n( e
' b; A, ^0 M6 k8 m: [2 Z1 }8 ] local tempmaxp=r(max)
: A9 f2 q" }+ g. d Y restore % U# ]) B7 J ]7 N* z+ i1 d
}
& @' V, x ^2 D$ z( u4 s% |' Z 3 \% O5 `0 ^" y) D- v9 U
2 Q8 V2 d7 G1 N7 p2 | 7 o' I% ]5 X. U( f9 z
: Q0 ?( c- _* B+ f d gen maxp=`tempmaxp' in 1% q% s- c0 O* U6 B' m8 J2 M# Z9 x
7 u& g; P- ]% H; A$ y; [" C. O *240maxp
+ K* R; N4 n& V/ i6 ]9 n+ V& C( p
! |. M- G1 Y! X0 s6 y0 T
! r' m- ]+ _; {# e |7 x# _ *-------------ddy240pminp左侧高峰值-----
& j- C1 D- B7 R8 O
& J+ ?0 P4 i3 _& n _ preserve
$ b$ ~+ B2 z9 H
3 O1 [. r+ F9 p( E keep if dx240<`tempminp' Q3 ^8 x( F& \- k+ R' _ O
. I( h# J# C o' j _/ j) O3 _ keep if ddy240>0* j* I" S! v9 f, @) _0 C4 b
9 `$ a3 z; n6 ]6 \& f/ Q
count
# i) l) V3 |3 h ) I2 a, ?' f8 l X* s# ~4 y& `' |
if r(N)>2 {
4 P5 V8 ~5 c0 T$ F( ^) k; t # n3 m0 ^" _* Z/ r
pkexamine dx240 ddy240
8 }1 s; B8 y* J8 { ) {2 K) v, U# n
local tempminphddy240=r(tomc) 2 D* y# {% s) J1 B' `* `
restore
( X( D: ?3 z1 ?8 V' k }7 }1 H* F5 q$ W5 Z1 W; W9 w
7 ~# l$ r0 }' m1 y( \
else {
1 m- @5 m. Z8 x, U0 K; Y2 v) Y3 m restore
& m( i+ C& ^0 l4 D di "cannot find pminphddy240"5 \& E6 f9 U0 o' a$ x( R3 {4 u
3 Y/ x9 Y! x5 s Y; \! e
2 |- P, e- I q/ ^, I5 F sum dx240
% D5 ~/ r7 O3 l2 H, r# ~; f local tempminphddy240=r(mean)
- X b: \( i( p x3 {; i& W2 v
' m* r6 X) L1 _! {1 {) c* N- E
: ]9 N) R: C. P# g+ n; i4 W }
3 W7 ~, f) E& h1 W+ N! ` 9 X/ h: _5 t( [# _3 k; C
7 I' m# Z, U5 v! E% C0 O6 m) \/ k - c1 w6 A( o) Z) _8 l
3 e5 @. u" J e. O. [
6 K- x5 P6 V( T8 H4 Z; w: t9 n
2 \( n; h! K% L gen pminphddy240=`tempminphddy240' in 1
; l) ^* X3 {! s
" W( ^9 h" r7 k# B. d 0 f# S- J9 n8 l' ^$ J8 p
*-------------ddy240pminp右侧低峰值 -----------------
) F9 q' J0 V; ~4 f preserve ) c5 g& V, B. q
1 _4 M% L- E) O3 j* R) r* D keep if dx240>`tempminp'
6 s6 l$ \# @- s0 a' j4 q# U j
7 ~" v: K# b8 J keep if dx240<`tempmaxp'; R, _0 _, E7 v
5 A; z, B d5 ?) d t2 L; K keep if ddy240<09 S* }1 ^) j& B( q
" j/ F2 V4 K+ _9 d2 X) X8 }3 Q; d
gen temddy240=-ddy240
3 N3 P& e: c+ T1 t) k& U* K4 ^7 c2 q
0 B! }$ {1 `3 s! w$ z% A; s) o count2 M; y9 C f% {8 E& u
/ |/ Z; e& Y) h
if r(N)>2 {% \3 w0 [/ d7 p9 N& r
: H+ t& o+ O2 J E( G, o7 M
pkexamine dx240 temddy240: g, l# t: E) Y
2 U: i6 }% L+ G- {' s' A
local tempminplddy240=r(tomc)( [% j# p6 X! w7 j
restore
) C3 a N$ d; m6 d7 m5 X, _ }
# N7 E9 z2 e" N5 S4 W 4 _2 G6 h: R# B0 [( k" y. _
else {
- `7 ]% t: Z$ I- a W4 o5 B ' S0 z8 _ `! o
di "cannot find pminplddy240"
8 }6 M5 k% K' L- c restore
. k( Q: a! N9 l4 U( o % r+ o# m) S5 O" D; z8 h- U6 ~! m
sum dx240
7 T! U% y) Z. }% D: B local tempminplddy240=r(mean)
1 f7 H3 o8 O- C7 r U . Q; f5 s& b1 s6 X# Y* [
: B( E, Z( ^- N; h. } }; @; L5 l0 O p" x3 v& b
* `* E3 S, F3 l7 Q( m- y) K 9 E2 E- L$ A- m
- J- C3 l4 Y& m$ N) L( f7 P
, h2 Y" [6 g2 m, I! v! O+ g8 {
; n- R- c! e( q, {. ~$ J7 ]& B gen pminplddy240=`tempminplddy240' in 1
) z6 L* r; S+ V; b- Y 4 q, Y* W% o- B3 c$ a5 D! c
*-------------ddy240pmaxp左侧高峰值 -------------------7 Q9 }, r1 x& A3 _
9 r. e Q( r7 f
preserve
7 | f9 G1 a f: T
: E$ x2 u5 L3 W# R$ E keep if dx240>`tempminp'
6 {6 a$ j7 C& h8 A: g9 N$ ?6 l# |
4 p# I S# L+ x# @: ? keep if dx240<`tempmaxp'
$ x& s! E6 n; \ 5 \% z8 r" F, B" F- G
keep if ddy240>0; K, Y- N1 e; s
count
" l3 c9 b6 z- `1 k, K% K) A + Z* e( p3 R: j) [# I
if r(N)>2 {
, a+ b/ B- d$ _, v& G, _ 4 D9 ^7 r3 w6 S( U) v
pkexamine dx240 ddy240& u% z7 s' G& ]& o
! Q8 H4 I7 w) y1 _1 f" f5 R6 x
local tempmaxphddy240=r(tomc)
C" A# L/ o# t5 s% p" Y 2 ]) i/ m# J& g; ~
restore
$ q- M6 t3 [; j g* H' p$ O. N }: K) A- m+ J# R* ^( X( e
: z' w4 o/ j1 w: q3 `3 P
else {
8 \ s" N7 w. C$ s: ?( ` ' }- s6 J. ]. g, |7 T- [
di "cannot find pmaxphddy240"
2 ^. J9 Q- l8 T restore
2 b2 c% e! \0 p3 L
3 }! c# W! F7 z- o/ G sum dx240+ A2 g1 ^8 B4 `/ x2 F3 L
local tempmaxphddy240=r(mean) 3 a" G& u& l# d N/ C7 O
! }3 k1 A* ]6 C8 x4 C1 Y4 {4 Z. \
+ Y. r* F) z- Y9 y+ Y# u }
2 I( I+ z6 l7 x$ T2 S3 \' t
' `' j0 `" N0 k2 ^) ~3 T 8 P7 ? @: ~" b7 k& d- G* L, S
+ Q6 ~7 J" \7 I$ ?/ M- h. N
% j4 k: z$ e8 z {9 f$ r. C
3 W" w6 s) n" V' b# i7 P/ z Z 9 t+ ` q, y$ c. j: w8 q
gen pmaxphddy240=`tempmaxphddy240' in 13 F v) k1 Y: L0 U! j9 f
r! W k: x- t9 [6 ~) K8 O0 i. [; B
5 J6 u9 i0 c/ J' A
*-------------ddy240pmaxp右侧低峰值 -------------------
% z4 x0 a I" a. T
8 S. [! x. K5 y2 T/ `- u$ E9 e preserve
; }7 o7 ?- S s
i& [! f8 m9 ~6 t keep if dx240>`tempmaxp'
, b# o. |( S2 F+ S% @5 Z " X* m6 L, W$ U4 D
gen temddy240=-ddy240
) X" U; |; _5 j/ Y. J3 C R; S$ D* U
' y- x4 }) `+ U keep if temddy240>0
3 d9 V% O: M; M+ Y # m3 X ` s) f
count( c% T5 _6 r3 X% A* _% }
8 M5 e! `' o9 E5 T1 H if r(N)>2 {$ f& {: D( d/ U1 {( L' Z8 i" M. o
$ D4 [* y) v# M" w- Z4 |, g: x2 f
pkexamine dx240 temddy240
0 k3 v N. i' \: x: T( c & L- H6 n6 ?$ D# p: x. L# y
local tempmaxplddy240=r(tomc)
& }/ J$ `& @1 m0 q, ]2 a" B/ _ restore
# Q7 F7 f9 Y- P5 { }
( |8 A' V0 @' {1 V3 i. M' z
x. O6 s5 s' L2 q else {
% a4 \' N$ u3 P6 T9 { restore
@2 X, A) l! A- h6 g di "cannot find pmaxlhddy240"
; v) O! N4 q. W! | v$ r9 k / @ i- f* g! S5 `: [4 D ?2 ^3 x2 _
6 @; E2 |7 M: d* _2 u sum dx240
; p B# v( c7 h% u+ M1 {# E q local tempmaxplddy240=r(mean) in 1
3 Q+ ^3 _, |, }" y, t5 M4 `
% l/ g, m/ {7 j5 |) i2 s8 g) s }! [7 a" P, M3 R7 o) D) J! \
}
" G8 V' M! Z5 w8 {
1 Q P2 `5 a- l; ]8 T * c7 H" h- {, `9 W' D) q s, F
2 z6 u( x+ y4 a) @" v8 G
2 s* C; k3 _1 A: J' B
1 a3 ~5 j' i$ u * _# j$ R+ N" G* M% q. M" E
gen pmaxplddy240=`tempmaxphddy240' in 1; v1 z8 A. k; s L0 y- ?
$ O+ b) b, P/ Z: ~2 N5 t* v8 r
*-------------------------------------
1 o: y* }2 v3 b! C0 }2 k4 G
. O+ ~0 i: P, S& i2 H2 o gen price5d=v5 in 1/20: Q; C0 L8 ]) o. H
4 }7 m K% ^) R
gen price5yy=_n in 1/20
) C$ C& e9 ]3 r # M% o2 f9 p% ?, D, ?
gen price5y=price5yy*(dy240max-dy240min)/20
g7 D* L3 u( |2 g) i. | 4 `7 }$ }8 p: T2 C |3 K* M
*price5y &price5d
4 N3 l' J! F5 m/ f 6 u+ D+ \9 E% ]1 L5 K
gen priceny=price5y in 1$ V% k% w& o# y7 d. i' Z) L% x
* r! I$ _0 ~5 {1 O) k3 s gen pricen=v5 in 1% \) A% a, ?2 G" i3 n& ^. f1 E
1 }) `6 G; K. a9 q% w% m" P
% z0 a" A; h y& T$ @ F9 { *priceny &pricen
& X# l. m6 x0 Z4 |& K" O % }- W& r8 S0 |5 W6 w5 g
8 Z: j+ m' _; g% { *-------------------------graph------------------
2 u6 D* e6 x% G5 o) Q8 F , g* G a# s2 L; F0 @0 v8 K
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)
& p H; j5 `6 L- d% q+ V; [& A* J
* ---------可选项目----------------------$ y( z! g8 P3 U6 }
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
' X7 c- Y6 o+ W, s1 U+ Q% C3 c}) \/ ~- l# }1 L; Q
end
0 D& i+ w+ T) F. k8 S |
|