|
|
maodeng 发表于 2013-1-28 13:13 ![]()
- D- w0 q+ Z) a& B/ o9 G8 E. hello 300236" m: a/ t; _8 F
statement out of context- c) b8 [" O* x: v! n! R, O$ T
r(119);
4 h! v+ x" s% F! b3 e抱歉,最近太忙了
& {& n7 X3 t5 R. i2 Q7 _$ k$ N; J" D. G; M
300236 我用下面的程序试过,没问题
8 R3 |' ?8 P3 |9 ]9 r) v
2 b: ]4 N/ C% W: |, V你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试+ B$ l6 n9 G N( v" V4 j
; d0 \: J" h* w, L
capture program drop hello
& H2 k) X8 T5 w4 Q9 h7 C4 e1 T F5 j. x4 A
program hello
0 S# W& a; z& Q$ x! n8 P4 q% B, E* H( r/ F3 d# u9 ?. s2 C4 Z1 F* M; N
quietly {3 c% f- \ F3 I, s4 A
! I3 }/ p3 l7 |" a. f! u
clear
( \# g" t3 [* m; O2 V$ {
8 P+ m3 m' W8 Y2 ]& Pcd D:\stock\test\source2 h' x; P+ s0 ?1 O( B" T8 ^
0 Z3 B ?1 _; q7 h7 w
insheet using `1'.txt
) [4 h+ F- r X7 E0 d: k) r& t' |5 l1 m5 m2 E9 }
keep if v5>0& L# T! k {( t" B7 c+ r5 x
% \. W% t# S. t- E. p* {
gen vt=_n( b7 o4 I4 \* e. y
9 a" d3 J: q ?$ L) p6 [ tsset vt, D! d; J! X, R+ R
) O+ C4 v' x( w/ `( D% `
gen zf=D1.v5( B" ^$ ?5 ~! f( o Y; P& e& m5 \
* l- B2 `/ v/ I4 ^8 s! H
gsort -v11 }2 H( q4 g: L4 I1 J
7 E8 }* q- W- Q
gen avol=v7/v51 d; [, Y. _2 A( ]$ ]8 s% e
# r; B+ F+ O% F. U# `5 I/ P4 {
keep if avol>0
2 B7 E' K ^- A" P" ~' u3 ~
; Y' ~9 t% j% Y6 u drop vt
% P3 `* M/ |% \1 B( i0 J$ E 6 ?7 m# p/ T& _, z) U1 b
gen vt=_n* K, J* O ]. f9 c- G/ b$ j; t
2 b$ G* N5 y( y2 G" e0 M( U
tsset vt
. e0 @% M1 [' g2 C2 e, o
- X) ]- b2 y9 R. B5 G) H* h& y sum v5 [aw =avol]
" q( G) f, o. h! p8 ^! p: ? E9 X2 T
gen amean=r(mean) in 1$ W# O H$ b* U. x' ^7 B- j5 Y* k
) F1 x7 C7 ^, K/ E7 Z7 v% H * 总加权平均值 amean, d# F) S' U" i6 b
9 b& R8 r( p! V; T
) p" d% p2 ?# x* k+ h8 Y
keep in 1/2409 L$ O2 m. V$ {& \" q, ]+ h
/ d' }* U; ^1 U! ~" c
sum v5 [aw =avol]
5 E5 a W" Q, E1 u* B3 D" x3 v1 d* t* _# Q+ e
gen mean240=r(mean) in 1" b b+ o, z! o ]3 l0 K' B# i
: O# [5 F9 H# A( r3 X *240加权平均值 mean240! X: f1 E* l. ~5 u" H
4 p# C$ R' ~4 _, i( [; Y0 V set obs 500
5 H2 Z) V- A( b) ~+ v+ C
j. ?' j( y6 z/ k kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
% W* y) g# `$ T3 e# S
) n7 N4 c2 P$ | *240 kdensity(dx240 dy240): V+ f8 l2 a4 A4 |6 t% Q
. c1 f6 i( Q* y4 j' b9 L" L sum dy240
v6 ?2 O6 X% R0 C. j5 m c0 R
% Y' k- G! H$ ?' _/ O! y8 i! M gen yxis=r(max) in 1
" c$ F" X- Q" o- p2 O8 ]' ~, E; p$ I
2 f1 j% P& S- l0 W7 I gen yxis2=yxis/2
2 r2 U, u+ q2 M; }' n1 L5 E 0 N# c4 K2 e( G2 X1 @0 I+ t- v s4 ^
*yxis
% y7 [6 ~7 Q, ]' t0 z7 Z/ ~/ P
" t2 r7 Y) F- Q" b! f5 b gen dy240max=r(max)
_3 U8 g$ W5 i/ o2 b+ s: m( [ * Q- L! Z H; K; F
gen dy240minp=r(min)5 F. R. W6 g7 c+ a1 [
0 }+ X6 d% K! e7 }2 v gen vtt=_n9 Q- l' D+ \, L5 |% C; U" ^/ `2 M
2 w* m+ b# J, z' c) g* I) G, l9 j tsset vtt
0 A7 a h; h8 [6 ?/ j& _+ s* x# c2 J6 E
gen ddy240=D1.dy240/D1.dx240
! z" B- {) G" D
3 C& N/ D9 q6 {8 j7 T sum ddy2407 W( p* M) b% ~ w* ]7 _
7 s# U/ \- `' T7 o0 t( M2 { gen ddy240max=r(max), _( j" z4 e) T b
. X; P( L* e! ?' J& n3 P; a0 h gen ddy240min=r(min)
' B: }) p/ W- x 2 O( Z6 V) k# u6 Z1 l
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
6 E" M/ v: a9 t 8 a5 H% _+ ]0 ^
sum ddy240g# s7 W5 a8 I- o9 l7 J
3 F6 M! k, Y& y9 s) p; ~# V
gen yxis3=r(min) in 1+ C& A" S. k% a) G& p2 c. a
X% u0 f$ J4 i# Q G gen yxis4=0 in 1
) N; T/ a5 R, _ R& u( j & N+ }; W" N5 A' w9 T
*ddy240g 9 @& ]: c# K8 n( D* s4 i5 V
9 _0 Q3 k* f/ G3 D 2 `; U0 k' K4 @6 M* y1 ?- |& ^) c
preserve
. S2 f4 J0 a/ O7 Y) n2 ^5 }8 w) G
5 W, n( b! ~: w- S/ W" ]- W sum v5 [aw =avol]! Q& m* ]6 A1 I6 }
4 c8 A3 W) `! Q7 \ keep if dx240<r(mean)# l! z6 s2 e o4 L& U! O8 b
& @) K7 u4 N a) d4 u6 \; D* R sum ddy240
4 M9 {3 t! a+ i3 f" S
/ s# S6 o( b$ X+ R: ] if r(min)<0 {
) `, |$ }. M8 o( { ! ?) D; F, U% \# b$ _$ x
keep if ddy240<=00 \$ @9 S. f M5 J* I
; A" A$ z, @3 v D3 x
count3 o0 q* a |1 C8 i6 i- ]
* z& M1 C; `2 ` if r(N)>2 {# i- _# g; V9 x& I8 y( i
5 W' s9 B# l/ {9 Y) `
pkexamine dx240 dy240
, E9 f# Z5 Q7 ?2 a! H; r; V ( H7 h9 J4 E# A% c: ^: I0 l! E8 Z
local tempminp=r(tomc)
( ]* C! p, K0 x {- t restore 2 R1 Z3 t4 |, k* \. i6 U, ]
}9 X& c7 F! F/ S2 }
7 e# N# W0 _* p' K7 Q else {$ U) H" g5 e j# g5 A. @5 z$ Z' \4 f$ }
4 E8 ~( {+ t+ n
di "cannot find minp"3 B* J2 p% B. k' v5 ~) E% @1 Q
. U4 ~& {; Q+ Y2 S restore
, X* g( Y* U+ [, ]- P sum dx240
7 O5 i; T# ~. S6 c& l local tempminp=r(mean)
/ x( ^* ?$ |% F! d9 G % H5 O5 Y! C4 U/ g
}$ `8 m q4 a; h! \- @9 O3 X
}3 n) ]9 @+ |: s/ d
else {
4 i m0 R8 W3 d# F 9 v$ I# K; I0 `1 n
keep if ddy240<=r(min)
7 _/ h0 S; U0 x: ?+ I* B& M & C2 Q% |. g3 f6 o- o9 R% n% A
sum dx240. b6 M; K5 P& l! R- \, w( _, y; K
" f# S" B% N9 p; z; W6 }2 C+ ~* W local tempminp=r(min)
0 V( I( d) n/ V3 a& } restore ) z8 |, h' V3 r4 [+ K& r2 r
}. s7 V* N6 D$ e2 h1 f: r" A
' n2 o5 _8 E1 z' U
4 K0 b5 ]3 L! r) ~% k0 d1 Y! L
gen minp=`tempminp' in 1
9 N$ W+ y1 U# |" T *240 minp0 @5 X+ g% h0 t
/ p$ p. J" `6 L6 v7 o9 T& }$ _: D
4 Y) Q; b: j; H+ h. F* `
7 Y0 `3 Z, G* k preserve & m+ n9 h* @; n0 k, q0 ?
0 _4 `; n4 { a3 [" y/ q
sum v5 [aw =avol]
/ c% [: `9 q& ]6 n 3 Z- e. w+ u) f: c
keep if dx240>r(mean)( v0 h W F8 r& L: n/ N
# [' x- I8 N1 Q! S; r' W1 g+ ^ sum ddy240! E2 |7 v$ k, a! D/ X. I
" Z! r! e7 F$ H/ x, q) _% K if r(max)>0 {
3 T$ a! h: f) U! f
: Q9 q) t/ z5 Q4 G1 n7 d keep if ddy240>=07 L* A- h, U3 L, t) \/ h; @' V
2 l( B+ n! A3 f ^& a1 k
count7 L3 j$ O- o" n$ C; |, H8 D: ~
1 O9 C1 w% V' p5 F% c% N if r(N)>2 {& l% C: L. V- r5 U# o$ a% H H$ c
/ L$ x4 N# W5 u K. _& S* e. F5 v pkexamine dx240 dy240/ j$ h3 m/ c1 G
! E! Z s$ I2 \% f6 D1 v+ q6 l
local tempmaxp=r(tomc) 3 X( k3 k" x) K& Z! P1 p
restore j7 J6 z% m# @8 g8 t1 @
}
2 B; W5 U, H1 I! c* Z" q& e
; C3 V& b* n, D( j; |$ |5 o 6 ]9 N. `* D9 e
else {/ C e y( `2 k* D v
restore
2 m; m! r2 ?7 w- U; ^ di "cannot find maxp": i+ N1 A7 d2 A+ V* l3 d9 {
8 k# L; G* F0 z0 e$ T: Q( i3 k7 c - o( i0 t* q% d4 d
sum dx240
+ x [" d) | K: C7 Y local tempmaxp=r(mean)
8 N( i9 b$ L) H$ c3 e$ X" s4 H % s, w& U( P( V, c: ^7 V
}( l2 K! g% o, m* S
9 _/ s/ y; H7 p }# E9 e5 v/ ?: g+ a
0 u: x% |9 z7 n9 w1 }8 N6 h
else {0 a/ P3 d4 j) ^" V% a7 X. a2 }
2 F) ^# C$ G4 ?1 _+ |; i keep if ddy240>=r(max)8 j9 a8 p$ q% }6 J$ } ?
* Z4 h! r0 {3 s' N
sum dx2405 p$ n3 R* s0 ?; B* ^6 ?
y2 f0 x% k. k
local tempmaxp=r(max) ; s1 o) \2 I& k: X
restore 9 r( C5 P2 F2 s( J; Y1 W! ^: L
}! V2 c( e, r0 N5 j! o2 a9 d
2 S) ?- H' E3 d
( R# n7 l" O# P' Q! @
4 j& i7 e5 {: y; @% O: Y/ w8 g8 a7 v6 m$ L u! p
gen maxp=`tempmaxp' in 15 b) v5 Z0 x$ a1 @
3 q% z+ ]+ l3 J0 h/ \: ~ *240maxp
# T+ s* N6 Q$ I" K9 ] - Q: b- d" T# l; N. O3 l
" J9 N& H; o a3 V$ u3 T: Y, o *-------------ddy240pminp左侧高峰值-----
$ V; ~- h; x$ S2 h2 a' I( X- F % \, ?, I& ?* [4 g/ n1 s
preserve * @7 `; |4 u ^0 Y# n
( _% b& b- s2 A+ {
keep if dx240<`tempminp'5 W+ M4 |2 f6 F9 c/ m
9 L* l# W- }: L" P- S6 Q/ p& G keep if ddy240>0
7 R: g- p- [ }0 c+ R4 Q
4 M1 m4 K: A% C4 y. N4 u count
: Y$ o3 h4 d! C0 F4 Q) Q " E* U2 @- C/ k8 Z6 ?! s
if r(N)>2 {
: P; ]. y; L3 m* T+ |2 r , c2 K. t- D8 _& n
pkexamine dx240 ddy240
* i- i: ^& U4 }6 Y # c) L& Y2 f7 j
local tempminphddy240=r(tomc)
5 j3 X: ~5 |) P restore& i5 c7 Z! v0 E: c
}# P8 {7 Y4 J9 w# _
3 d4 G: t6 `2 w
else {% s1 y: }* c5 P9 o9 r8 Y0 P7 \
restore
$ L7 Q( C" L- P9 Y" H di "cannot find pminphddy240"; V8 T9 t/ V" a: T: L" `
3 i6 O, b, w0 J5 b1 p V& D
+ g' w9 {: [- n: q; l3 l# ~0 k A sum dx240
0 y# x [% c1 _9 h8 @' U* P3 Q local tempminphddy240=r(mean) / o! v5 q+ ^) ?$ ]6 [# V7 z
* p. ?! c2 H$ b$ ?% T
1 | }" ?1 j l6 ] }( Q& D0 B) E- ?4 ^' l9 X' n
& C( Z. \) f. e5 G; P. J
* r, J7 ]$ O9 k% s7 q- J" {; K# x
& Y7 \* r' }, L# z/ a
5 U ?5 n+ i# J- Y: R6 u & D3 T8 U+ |7 D5 @
" Y" e( r, b ~4 G- S) Q. C; ` gen pminphddy240=`tempminphddy240' in 1% y; S6 R& G* B
$ r$ b( M/ u" {/ H* m3 L X! J" d @3 H. B" j; q# j
*-------------ddy240pminp右侧低峰值 -----------------
( L [ C. C# n% j preserve
4 O! C6 c |* e7 B5 N
$ {. ?. I% k) V; `8 k0 f keep if dx240>`tempminp'* q X% `& h) J- t6 [+ I
' v7 \1 A2 V5 P- d8 |6 C
keep if dx240<`tempmaxp'* a1 l( J7 b! J a
$ H' H* @3 L& i/ s! e; s3 V" X! A keep if ddy240<0" L% |5 c' w2 x/ |5 B- w
: g }& O% I5 o0 S3 K; ^: {/ [9 M gen temddy240=-ddy2400 ]. L( g8 @5 J' p: l/ {
- |: W4 ?& u/ i+ l) Y
count5 ?, |6 j3 _/ v ?6 [$ x' ~) C
. o; q! t+ c+ q7 j# q
if r(N)>2 {4 | j& R" A# e+ ?7 X0 R
3 G7 H4 y, t" c* T0 E0 S pkexamine dx240 temddy2403 c1 ~5 {' ~: Y2 U2 C. u/ `
' a0 s$ x& w# x local tempminplddy240=r(tomc)
; Z6 X, N; R7 u0 `8 l( H restore
, @) q: l" @' {7 b! R5 v }
3 G6 g2 D# C" W) S) A; l- u% K + v3 P/ [4 S/ q4 c, S4 w% p
else {5 I1 K6 T3 h4 G
- u" F0 d+ {2 A$ m di "cannot find pminplddy240"' s& Q8 r3 i3 ?/ i3 N+ Q9 `
restore
1 u/ X3 X, X0 D2 }# v$ p, G, a8 P
- L4 T3 \8 U* W& M% d4 v9 A sum dx240
! O/ R/ b' E, L8 Q local tempminplddy240=r(mean)
4 z! v$ `& v! K4 A* f1 m( [/ _* s
7 e+ M$ P6 R! G 5 i3 Q# }, G, y" P4 r$ |6 l/ p7 H
}/ i- }+ f/ Y9 l3 K% N8 O
0 c% e4 V- ?) D2 Y. Z
6 [6 S8 T* ^% V
# x( f+ e$ n3 i8 @2 c' b' P! C 8 Z/ ^+ W+ X, R, o8 D
) Z" ]8 v7 j2 F8 {! @0 h. z1 i2 l gen pminplddy240=`tempminplddy240' in 1
' N! M3 _. t9 N
& j7 z) c, A( k, ~! w *-------------ddy240pmaxp左侧高峰值 -------------------" U% ]8 i2 s: F2 _4 E/ |$ n
4 F& Y. _% X: H1 y; U/ w W2 x
preserve
\1 n- |2 V8 N* O6 e8 T3 b5 |
3 d/ b# I* W$ u$ o keep if dx240>`tempminp'
* F' N' @( E' |) T+ X 2 y+ ?# E; n2 c5 E9 a/ z7 _
keep if dx240<`tempmaxp'
( P" t8 Z y- k* { ]3 F# e% {( Y% h
keep if ddy240>01 d/ \9 x$ s$ D0 M- o8 v: ^: w* d
count
! {: S6 K& b& n: }9 ~5 d D
9 _; e7 {: {( d& _1 H0 P) {3 \ if r(N)>2 {' c ^) {5 A' }; Y) I7 k
* |7 m: o- d0 u2 ]# R
pkexamine dx240 ddy240* K" X4 Q% n9 M, s7 A& E) i
5 z( y. @0 o* W* I7 u; Q
local tempmaxphddy240=r(tomc) 1 |! r8 K3 b8 s$ c, o4 b# @
$ C8 E) G. h9 j! m: q6 d restore
# I5 X/ G$ a: o7 ]- Z! W }
4 m1 F1 b8 q, D4 m, D$ E' Z" }" I* | 9 ^* e( y( L l
else {' G, B" D' ]: t2 g& L) u- S
- s- u* V! D3 n! ~
di "cannot find pmaxphddy240"
3 E2 O% M5 R# u2 k: y+ F restore) `9 m: K. c& I0 X" c5 `2 Q
( E) C+ K- [/ J$ p5 U sum dx240
/ [6 N; [3 U) A, p- u local tempmaxphddy240=r(mean) . S/ M! B5 n5 C/ O$ Q+ e
: \) n; G; J$ N8 d. J$ q: N# v
! X( o; y1 b; r6 h; b1 F5 t }
3 \" v: K& {/ |' V ) {# d+ t: O; g+ |4 {9 T
$ n4 w& a) s% P% J5 J $ B0 T7 s/ Y$ S5 ?+ i
" w* Z {9 D& J# E3 }+ g$ w
9 U* n0 o$ ]9 r# n$ s* d7 ? ) c0 R! Z6 L5 S( H7 V
gen pmaxphddy240=`tempmaxphddy240' in 1
( h7 C6 x/ C, N" z1 v' O* b- ]
( A, F6 s" Q3 ] ; M/ f% n2 R7 f1 Y+ l) D0 K
*-------------ddy240pmaxp右侧低峰值 -------------------$ Z" \ f2 P2 w I: t& h
; ^! Y, q* S7 ]! G
preserve
( h+ ^- V0 Y2 r0 Y1 x& m , q; f1 E2 k: R& i& m' f* a
keep if dx240>`tempmaxp'3 y3 C# p! b8 |
: V: \2 j5 a4 T, @ gen temddy240=-ddy240
' F7 p4 n4 B& E: Y, r) E 8 C. W+ Y; m0 x) q" O! Q3 b1 {. z* @
keep if temddy240>00 n% P, a- p, b8 Z$ s; u {: @+ o5 v
- @: e/ n6 U" w7 {/ {+ E0 Y7 \: w count- w5 }1 ^/ O, q0 _& c
* R1 Q, [6 @- N3 ?, p6 r
if r(N)>2 {5 v7 N- p0 ?. Y! |% k W
' S1 ] h# ~ C- n* N pkexamine dx240 temddy240
, i2 B3 G" S- H2 d0 G
5 L! u6 B- g- ?2 z4 F local tempmaxplddy240=r(tomc)
) {/ g2 J( f3 n' c5 o+ b0 p. A restore8 x5 z( M+ d& o
}
4 _. D$ `6 u* Z; q9 S 1 @( \4 k9 v7 d y5 F
else {6 u! \" O! _) k/ m" H' P0 j' Z
restore
o: N9 _) g$ y4 J di "cannot find pmaxlhddy240"8 j& Z" c. \ d/ p
' } m5 ]8 P7 l0 N 0 t& T8 N( s* T( N2 O
sum dx2400 R- p) f9 E* M6 O2 p0 ~% e: _
local tempmaxplddy240=r(mean) in 1$ ? b$ U1 a' n7 e
4 r8 A i6 M8 U& i) p# f
: O$ z3 B0 J2 f0 d0 h9 X! Q } T8 V% Q- S% ]# H1 B( |9 }5 W) a
3 q4 t' ~5 ~6 H6 M& ]1 K4 K3 ^ 2 g$ ~/ G6 C) ?! J, n6 d
3 Q! e: F) X$ S% v; S 1 V6 w* e. Z+ J I
, Z# M, ^3 v$ z1 G4 t8 X$ m
5 \* T# @: {7 o; i gen pmaxplddy240=`tempmaxphddy240' in 13 E+ f* _8 }# e+ I
) a. ^8 e& Q7 @
*-------------------------------------+ C# E" |7 Q, c& E V$ v
* ~: J3 h8 _% m5 ~) y/ O2 l+ y& k
gen price5d=v5 in 1/20
. E! }/ O- r T3 K" \* g! B) H0 z
8 J# x! d r1 ^4 d% C, I gen price5yy=_n in 1/20+ N. C5 F' } E4 R
: F$ {2 D: L) n2 L6 M8 z gen price5y=price5yy*(dy240max-dy240min)/20
) W ^* c+ Y- Q7 X
* t$ I- w2 o& W2 i *price5y &price5d/ }$ b h0 g. N* J* s/ b
' H* z- N; U$ q+ d! A
gen priceny=price5y in 1
, N7 h8 Q# D, I 0 ~8 Z2 x0 e/ E, H* C
gen pricen=v5 in 1
1 g+ S: h0 G+ g* X0 P: o7 j9 g8 O/ ]. F g/ F2 i! M$ T6 F9 Q
7 d8 V( m* {: @ t$ D- a
*priceny &pricen
8 A' [. `, K" M+ w6 |. ^ 4 g2 v/ d, l, b2 c/ |+ D
* Y" D- j9 ~6 U y( e' I; | *-------------------------graph------------------4 u4 L$ c, b. g
7 u- ]8 A$ v+ j( a
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)
) h% a. S' q! i% h) |( o: M- w: s q' i6 {- L: t
* ---------可选项目----------------------
0 `9 c2 }; S* }, J% N4 C*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))) z; j8 s7 l$ M; C
}
) R( z! y W3 N% U2 h% Uend
& Q, y. Y- {1 x+ a- Z N* \) {/ D |
|