|
|
maodeng 发表于 2013-1-28 13:13 ![]()
) a& U; b: O4 [4 i! e2 V4 ^6 U$ W. hello 300236+ }% s' n& o+ e/ z4 `3 [3 o/ x
statement out of context! x- i e: Y4 y$ W) h7 r
r(119); 5 r1 d, P2 R3 V6 b. e9 D$ X* ]
抱歉,最近太忙了
; V2 w# Q1 [/ x S, @# M
/ o+ F, b8 ?% w- J300236 我用下面的程序试过,没问题
! A1 p* J1 ?% q; e( O0 R7 |$ f( W- r! M. ]
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试% l5 u; k" D5 N2 \7 o) h9 b
$ t* e H+ _0 p! V6 _9 ccapture program drop hello8 g% k5 l/ \1 w/ m7 K1 `
4 S% S. d$ Q! S; z/ ?
program hello
1 ^/ W6 V: e2 t5 K2 ]8 s1 |- q. k# B" M! m% r" B
quietly {# ]6 {$ u4 N$ w, T$ p7 B. q
3 i% K7 A, n1 ?# W! X, }. ]/ p
clear; S! x% Y7 J9 R) ~0 U
. d$ p; z9 ^/ j7 X$ fcd D:\stock\test\source' x3 o% i2 u4 Y5 o
; L1 Y/ B: U4 |/ C# Kinsheet using `1'.txt( a# ~) Y3 ?6 ^7 ?# n! \
2 q- h4 T8 i: p' K' m" ] keep if v5>0
. ]" q2 {: Y2 K0 F + m0 E _- L' f5 y% a+ `4 A4 Q
gen vt=_n
6 k# ~# H5 t% F: u& S5 @
) u) j2 a1 R1 R+ d tsset vt0 }* W- M4 k$ v, ?* Q6 q- H' l
2 k$ P! S6 C3 k0 x4 e( _5 ^ gen zf=D1.v5+ O }: s' z! U
6 Z; H. g! a+ i
gsort -v1
2 Y5 R V5 |; k" f
/ { c2 p* g# C% C" A( T5 z) b gen avol=v7/v52 k, [+ W* _4 q0 _( ?& D
/ A0 z, H4 ]: W; b1 { r2 a J% {
keep if avol>0/ G* J3 `$ ^6 E7 D; q
7 v- X9 f1 l7 f: {4 w. P drop vt
! d" `( p# s9 E" q
8 V2 y& _6 a! ~% Y7 e% M4 `7 \: e gen vt=_n
5 o# l1 E( u/ ?9 @
+ {; t: A* P) f9 T6 B tsset vt
0 k d3 e$ H6 h2 N, q P
; ^% I1 ?& S8 B sum v5 [aw =avol] ?4 c, Q" Z$ d& F1 S4 m$ [* w
6 b, C0 }, F5 K0 N. V9 w( s' L: R" e
gen amean=r(mean) in 1. `6 w- K) t y7 U
1 Q* H& K: }8 |8 U
* 总加权平均值 amean3 \' f& g% | k; t1 @& f
5 M& B7 `- i6 o; J; L ( e3 ^7 S4 `! Y. K6 D* d8 h& d
keep in 1/240
( U5 u3 h' ~, Y
7 V) P. P$ q5 Q8 W7 t sum v5 [aw =avol]6 [/ L' L& J% J& ~* l v
6 \2 B# `# @4 o f4 b5 v
gen mean240=r(mean) in 1) R) ]( q1 D7 v2 ]9 V
A" x- X( M% p *240加权平均值 mean240/ Y+ U. B2 ~) j
" e( N5 g- e& M) s3 S: @ set obs 500 " n$ C. E' `- u3 K" e+ _
% g- Z( _! `1 j! w
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
1 y" c' ~6 N! _$ L1 E7 s% v N
- a# V% r. C' i *240 kdensity(dx240 dy240)
; _! S( q! K3 p8 }3 N4 F 9 x9 T9 _. _$ d/ t ]( T! S4 O1 \
sum dy240: h) ~8 f$ }) w6 r# D- S+ |# m
% o8 l: K6 ?0 A* M) q: z, c8 d0 D gen yxis=r(max) in 1
, _& i) m8 R d6 M. ?1 ^ 3 \+ b# j0 L {+ g) ~0 W! Y
gen yxis2=yxis/2
% o! ?+ y+ w) G+ P4 `$ @
0 f" \ f8 l2 |% } *yxis4 x6 Q2 u% P6 L9 f$ b, [. x# [: R
) q" D$ ?; e r) c0 j; C/ d gen dy240max=r(max)7 N/ R7 {! H1 p, ]7 F4 ?
5 } X6 P8 @ v0 \$ T
gen dy240minp=r(min)/ c$ Z& C" W0 `0 ]$ S8 i
# O+ V: m9 h6 n. K$ a gen vtt=_n
$ h! ?8 k1 v5 |4 o9 h: r5 e0 E: t4 U$ ]1 N- M/ Z# j
tsset vtt
/ S" I8 c' K( F" S
5 e1 M7 B1 i( J/ C* r5 Z gen ddy240=D1.dy240/D1.dx240
+ Z* z- }; u& U/ [! O 1 Q9 H% G s i# ]) G% C
sum ddy2406 v1 S2 O" D2 v! E
( u5 F! Z2 n" ?" X, o gen ddy240max=r(max)
Y3 n* ]/ ?/ k: v j$ H
9 p% f, w# [2 W( G gen ddy240min=r(min)
( n4 S- Y; V/ i1 A& G# i ' o6 f4 X' ^0 ^& A0 T' ?: @
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
1 D* d8 K v; |% b
+ s7 ]+ D3 f2 Q3 R( @7 q+ r sum ddy240g* i7 @( F: R2 B
; J5 D2 T2 ^, f1 |
gen yxis3=r(min) in 1& Q" Q! ?5 [0 J4 u: p
1 \$ u1 c6 `/ l+ o
gen yxis4=0 in 1& U( G; e' L4 e& Y2 @* ^: X
2 ]% c6 Y' k5 [ *ddy240g - |9 C8 w5 K6 B; K* u7 v {+ r
b" G2 o5 {; p: u4 X4 U" p
4 t+ _, `0 R4 R6 c% v
preserve ; @1 c: a: W5 g" L7 |
% r$ p2 o8 s# n5 d
sum v5 [aw =avol]
( U/ w+ L+ Y8 C! g; }$ s3 V
+ {2 _$ J1 G& O6 G keep if dx240<r(mean)
* ^1 \3 w5 _9 e" K
7 c; a4 j, f4 t6 b5 u2 P sum ddy240: ?' y6 x" q$ {! P9 b7 H8 |9 D
: r( p, ]: z6 j) ? if r(min)<0 {9 I% h/ N$ F0 P Z* D" Y2 T& l
' T/ c) [2 l0 K" B/ r* i0 e keep if ddy240<=0
3 g' L6 o; H. @1 E5 U( Q
9 R, S S0 a) X count
) O7 u r; v. f$ J' y0 ?( w
0 D9 P8 B* ]# B4 Q0 w) A4 h, v if r(N)>2 {
/ i/ q8 p6 c8 o# R( e- R& a # K2 ?( t0 n: g( ~* Y
pkexamine dx240 dy240+ I0 a* u" j, U2 K! U( v0 ?+ U9 C
3 n/ h7 ~. a V/ ?! \# [% i7 u* N6 s1 J
local tempminp=r(tomc)9 {( g$ f# g: ?+ o+ i2 x9 U
restore 8 m6 h0 T- S$ h; F" Q
}+ i1 w! n3 v U
* j, n. n& D. J8 Q: D2 _2 q
else {
$ I0 k9 A, t0 O- @ , t% [$ }9 x% t: I& K/ F, y
di "cannot find minp"
1 V! g, w% X+ A% T& u" {' i
4 a3 M( P% M) q O2 W restore " a" y; c& ^8 }' N9 |, F
sum dx240
9 k" N8 n; B+ m* x local tempminp=r(mean)) r. `6 `; j. ], ^ b; B/ F; p
k( v' Z4 J7 C g2 v n. G }
7 K! I Z/ p- N }4 o: B" D. f$ O) \
else {
4 k2 \, P0 ~2 x0 k, Z/ F. ^ , V* m6 ?8 U* S/ I
keep if ddy240<=r(min)% K4 s4 q4 o, p, z
) N5 H# l" I. `' u sum dx240
' Q7 U$ ?. ^% [. I
M$ A d L1 o& U$ `9 j4 B local tempminp=r(min)
h% d3 C/ g* O' G& p$ M E7 i restore
- O, _8 D' x* e' \. ] }
. k) s( l4 G/ D6 q4 b+ {3 u* L$ }% z) n3 { W
- A8 Y& G" d. o
7 z. @- l7 |* E9 ^
gen minp=`tempminp' in 1
N# L" R8 U, X6 o5 } *240 minp2 p: I. {+ i6 O8 u8 j( q) q
. n& `) f4 n; t0 P/ @1 z; H3 D) Y0 c! s
+ a4 _0 T4 b" c' V* f! o/ e6 p! q preserve
/ x% W+ Y- k+ Z" u+ e1 q) h5 i - ?8 E+ v+ i: ?: w9 R6 B* Z" D" r
sum v5 [aw =avol]6 M, K3 m. d v4 ]
- t+ s0 `* B0 O keep if dx240>r(mean)% d6 v7 d M2 }4 W4 r( P8 |
% P) g6 d# \2 {9 m
sum ddy240; E* r5 Y- g& t+ r' Y; P+ v3 B
( d' T( t p9 i1 Y% P if r(max)>0 {
. p8 u0 D, M; g) { k8 h; t 1 n+ F) A8 c! m' Q
keep if ddy240>=0/ k% A3 W' \' m% \! ~2 Q
0 `" j- X% p) ^& j+ y2 k count
* i) Q8 L" G( m1 Q ; h4 q' `5 V" x. S3 W+ S
if r(N)>2 {" Q9 C i- s) z1 Q. l
7 o- _. n* K+ w# O pkexamine dx240 dy240
8 q6 ]0 t* |/ b2 O
) ?+ ?. X# I/ P6 P- Y0 W) G local tempmaxp=r(tomc) * ?; k7 w" I. m, e; X' O$ i, o
restore , G! W1 {! j. Y$ K0 Q1 k
}
. {2 f) E, D" B5 T. @; q b/ l
# O! l# o$ b I' M/ V4 e & ~4 _, ?4 Y. T: H- M5 @
else {* \: F* c/ P; O
restore
* j/ _ {- j2 h! X4 ~ di "cannot find maxp"
9 b% Y: p' r2 A0 }3 [/ J) \ 4 K2 F1 {! t6 I. j' @/ d+ O0 S
( j& z; W2 Q$ i4 v* o: L sum dx2403 x4 H) g. y0 Q$ i
local tempmaxp=r(mean)# m9 g* j2 ~. n6 p
+ x' m% F( P9 ]% f! C- P& s h }. h) [# u h' I# J7 Z) R: _
% K0 f( ~# c" l4 p8 @2 P
}
$ z9 C+ E R' h# `- C
& g# `& R0 v! i9 B+ f( y else {- _, T5 Y+ T/ W6 \% M
6 {; j& N! _2 A' [% Z& d
keep if ddy240>=r(max)8 q9 X$ t9 X. E: I" X
' p _ `3 |; U7 L2 `
sum dx2402 r0 Y8 \: y+ v! {( t
- E. t8 U* w' \9 h
local tempmaxp=r(max) ! c" }# L- B& [. B5 e+ i9 Q
restore
! L% O: l [8 J6 f/ M# N* F }
: N8 O7 i5 c0 t" G " b% _$ ^7 P7 T8 u2 ]7 T' ?
; V: r' a2 w% O) p. W2 n3 [
. G8 f/ k9 n. R; {
& O8 g: e/ t( R, A" \: ?! }) r gen maxp=`tempmaxp' in 1: B; t8 v+ c+ a' B. R
$ u1 `% [1 J5 g; x/ U% {% @' A *240maxp
1 w. r1 C6 p3 q2 e: X8 _- r
! M9 V' D. e% T
' y# |* x3 z6 n* O) L& {- J7 P *-------------ddy240pminp左侧高峰值-----0 x) c7 x6 u( ^6 {
/ k8 t. I7 [$ R, p1 d0 G preserve 3 ^8 Q" C( F5 E" {
5 z3 f7 c+ Y1 G) Z, b
keep if dx240<`tempminp'- ?; V, F* C ^
2 I+ D: O# ^: k: q/ \
keep if ddy240>06 p2 s9 O E: L% l/ j$ A8 Z
' D- x3 y9 p- ^, }$ [1 M count% G$ c& q, X# G7 s6 x# d5 e9 e% Q
3 i, x8 |1 R. f if r(N)>2 {
, L# N( l1 g: P% i8 G5 Q- g% n
/ U8 D; S/ A. t; o- _0 g( V5 C pkexamine dx240 ddy240& } l! n% r9 W3 C( Q
8 d1 ?& ^. {3 }6 V) j& w6 Y1 m$ d
local tempminphddy240=r(tomc)
A e" q5 F% v8 m7 Z& r restore
Y4 B6 c3 F6 c3 ^ N! x2 X }
- k- W+ ]* `1 l ) y, r1 |- k+ U `3 Z) Y. E
else {
j! _. |, Q% K8 h restore 8 [$ J- ~7 x" _" \; e& I
di "cannot find pminphddy240"
; t8 u) Q1 M: ]$ D3 N& f. i # [3 z: j- ]( l2 l
/ K ~+ V$ ^' a1 I3 s" K! P7 } sum dx240
- y1 v% t: e7 P1 p) N, `1 R* b$ a/ u% X local tempminphddy240=r(mean) 0 f0 o) W" f1 c/ f$ b" w/ g' C
* e; \4 r8 N' J+ }
$ c' n. e8 X( ~ ^* i8 @7 q2 ^ }
: v# B& X7 Y9 P1 ^5 c 2 E* {1 c1 |" ~
' d8 H a' T# h" U' Y
; d5 r" k& Q: B; A
s4 `9 k- g- y/ S
3 e" G: K$ A, L5 T
; H. T. Q% \: ]3 y gen pminphddy240=`tempminphddy240' in 1
" V- h! n0 v+ |; j7 l( ~+ P
4 f4 T% S! ?% p" k& c! w+ Y 3 H; l3 ?1 L% _' q H& ~" Y! |
*-------------ddy240pminp右侧低峰值 -----------------& @: Z8 T0 L8 p$ I
preserve
) p/ H& M! x* g& i4 O' m" ~* l
7 c. b8 K7 M3 T; a keep if dx240>`tempminp') a$ z5 ~, i) ~# k3 @# B" J1 w) \
) z- N& r, b4 \; q8 @4 F keep if dx240<`tempmaxp'
6 D' F; t2 e+ d+ f2 b, `
U6 i# t0 r, v e" a# e" m keep if ddy240<0. ~ @8 _: V/ J5 p' z' r* _
4 H u! t X- N3 r3 W, u- \ gen temddy240=-ddy240
9 t* h2 o2 ?1 T6 F( v8 ] 3 x! g& p2 G9 h: z; b( f
count
$ r4 Y& O" n, B7 I# q# T ) @5 B5 U# } S( R+ D3 H
if r(N)>2 {
& r+ U2 z( r. ~ / ~$ n) i. f; g) m
pkexamine dx240 temddy240
g) y4 |" s6 N2 D
0 R! K9 a$ H7 \7 D2 s, l local tempminplddy240=r(tomc)
6 b" e F" K, _) N" C! | restore1 [$ R8 A3 g8 B$ n2 O( |
}& N; R* O9 Q% b1 q
/ u2 K. z7 c! d- G+ [. k else {
: u3 E1 s' k5 n9 c8 P
$ O$ ~5 H+ k* q4 F' B/ O di "cannot find pminplddy240"# p7 W8 d9 [+ U
restore- O& P1 x5 f+ c9 ]9 S* S7 y! L. U
# \. B/ l7 n+ E* C c
sum dx240
/ o' ?7 B- J3 ~; O w8 x local tempminplddy240=r(mean)
7 c, G( O& s# i6 ^; @
- ~, W8 `& U9 W1 K" t: p% S
8 Q3 D' `5 T2 [7 m/ a }1 y* l9 B7 m5 k5 L5 ~2 e
6 u M Y( @+ Q6 @: q, V4 }* u8 s
. \; Y5 q( l& U
) S, M* z9 S" e' H 1 u9 m" C4 E/ A7 Q9 I
1 e6 x' h! t# G3 z8 ~! `5 \8 a- P2 A+ _5 t/ n
gen pminplddy240=`tempminplddy240' in 1
0 g+ x. Q" m5 J4 o7 o% X . ] F5 s. _& M9 y' S
*-------------ddy240pmaxp左侧高峰值 -------------------0 W6 s7 ` S/ K% S
7 t; g6 ]; X( p5 F
preserve , _5 e1 c3 r7 o3 C1 T6 r
0 i( [- }( Q5 O( N/ a
keep if dx240>`tempminp'9 G6 `( K- f5 k$ A8 R
8 `4 N' s) z4 f- [! c* H$ b c
keep if dx240<`tempmaxp'
) {* \+ J1 e/ G* J$ a7 t, D7 l( p
: U5 |" t; b/ F, Z- n" P keep if ddy240>05 ]# g. f1 W+ t0 {5 C7 N
count' J# m8 x i9 o3 s7 A7 N# w
. o! a( p/ g+ q' i6 ]
if r(N)>2 {
3 w& z( A6 z* I; ]0 A. w
, Z( o8 X/ t5 ^% N% ]2 R5 V% p4 ^ pkexamine dx240 ddy240# C$ P& Y. m7 ^9 z. a! o
2 j& q( i9 v7 q% i
local tempmaxphddy240=r(tomc)
' H* k" v! ?7 i
( ^; e- D) s; s1 | restore) z: C; g! J9 c: d; q
}5 r# j7 S" j7 g5 y
8 F; K$ i e8 a1 |
else {- |$ |# V# n. g2 V: \3 R* b5 A
: u# q4 N! `- m) T" l |
di "cannot find pmaxphddy240"/ B, @* ^4 W& I; `5 [6 \
restore# B: N; R8 x# t5 J, }; L8 q
: ?; c' P* M7 h+ T
sum dx240! C& I0 h- Z) w8 o
local tempmaxphddy240=r(mean)
' K3 X% j, `( [ V4 [" s0 X
! H( p# f5 d: D0 g! G& o
/ d( e+ S8 D% z6 [% m }1 H* o$ i7 \/ S: o% {
$ O( z: g% ~6 z( Z0 E & A2 B+ g7 f4 V) @* A. Y) e
2 ?( r% o/ {( S( i) m$ {. r/ b4 h
, q1 ]7 ]0 q* }' j% b1 m6 _. z5 ]
* Q- I3 U; [5 r+ v8 [, |- W7 @ g) ~* _" w: V' H/ r
gen pmaxphddy240=`tempmaxphddy240' in 1) B; q9 X# H7 w
% H: C ?6 G+ E K 9 A5 Q2 M5 v7 I, D% J! i# b
*-------------ddy240pmaxp右侧低峰值 -------------------
! B" ~" ^1 Q9 D % v* t; J2 [* z7 L
preserve
4 `$ n, o: l4 `( U% j7 U7 z
3 B% g. q. S! l5 O9 k% T keep if dx240>`tempmaxp'
* \8 ]$ T* l1 l" {. |5 y 8 T \% j* R! `( T# [+ S, o
gen temddy240=-ddy240
' g1 n' k, v' J% @* A) z
: {' I3 [- \( ^$ s# B keep if temddy240>0
' G b0 ^# N8 v3 G
8 t( Z% n- n) p3 J& ^1 N2 K count
8 r( t& b3 f! R( ^& I% U
( g j" w4 E+ R if r(N)>2 {& v! D- t( w- V, P# E, C
# y2 s R) S7 w$ }7 @- K5 z6 p7 g, T pkexamine dx240 temddy240' ?( f2 S! a+ b8 r2 q6 b
" R* O6 i! ~9 U- d! N
local tempmaxplddy240=r(tomc) ) K' P7 N. k8 r5 r1 U" ]5 b- \/ `! k
restore
7 P! p* G# i( D: b }
& x( F; T# f( A1 Y* _; [
6 p, d1 `! r# Z* T2 W3 O else {" B$ T9 y8 g/ L0 \9 U3 \& o
restore' c4 r/ y S& u6 }! C
di "cannot find pmaxlhddy240"
) p8 X: w8 w9 d7 H
% a" K- z; n: J' B ! S9 n2 s6 y7 p: }2 S' ^! s, H
sum dx240
* w6 t2 k+ D; ^& I8 M- b local tempmaxplddy240=r(mean) in 1
. O3 X4 I6 P3 d9 `
" ~4 G& n f3 W I4 D" i7 X
& l; t3 s/ \. Z" v7 e }$ R; M. D `& a: H2 j0 G5 w9 h
; X: r; D$ ~% h4 l% U
6 \5 ~3 H1 K3 _& y. A( i
& H! d, O" L. C+ I
- C9 d/ u% k, o
# L7 }% @; G1 i$ X5 r; F. @ u
+ _1 x5 A, q% q/ B f d4 ^. o gen pmaxplddy240=`tempmaxphddy240' in 1
# X) j; C0 ]' @2 G+ i
2 x* o/ p, {6 m& b3 Y/ t+ V% x *-------------------------------------% Y4 F$ {) ?3 p( f% j2 N8 Q5 ]
$ k. f) ~7 O) `; p gen price5d=v5 in 1/209 w; d- [. _7 B/ w5 v( D) D
7 `$ a! b* X( T7 T9 b& ? C. c/ N gen price5yy=_n in 1/208 ]: h) G. L6 b1 z5 d" V
' Z& e8 v2 |8 r6 H4 }
gen price5y=price5yy*(dy240max-dy240min)/206 l$ u8 Y, p3 C* M/ x( R
m0 x" x. [" K- g" \4 } d* t, \
*price5y &price5d
4 @2 G! A# M+ Z& H 0 B6 e9 v% Y5 A3 n' B
gen priceny=price5y in 1
& k. b. n6 }7 s: P) ? . w' x i3 ?5 ]% S1 X7 I
gen pricen=v5 in 1) e7 y& U8 h7 X$ j7 l. g6 F& D
( W6 l4 W8 p, u ! O. A) f, p! }1 Y! `, X
*priceny &pricen) K$ E% R8 y9 q* t9 [5 d
. _) p+ @7 z7 a' [2 e W
! O$ U/ H' @9 o6 s' M5 |( v *-------------------------graph------------------* A. e% p& I7 q0 o0 M
9 N9 p6 I' e+ z 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)6 ?, I* U* Z, M- `
@% d+ `" Y& j' `/ T* U) v4 ^ H
* ---------可选项目----------------------, Z6 I" @" J5 o2 c# c5 i
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
& T5 R, \9 U6 v- b5 p/ ^* n- G}
" d0 ?' O$ k% l8 [; Hend
5 ^ X T- c8 w! Q K" @& W* G, j |
|