|
|
maodeng 发表于 2013-1-28 13:13 % I+ o1 z- A) b+ C3 e; s" R
. hello 300236- y8 c4 o) \' c1 C3 l: g
statement out of context
# B4 e$ C m; i' }. |r(119); , |$ u9 A. ~2 S) M
抱歉,最近太忙了2 N n( D% ?- Q& V6 n
) I+ d. g5 B% q0 J4 s8 F
300236 我用下面的程序试过,没问题) n+ S# L/ d; b2 j7 k
^3 N- O ]/ P6 f/ v
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试' A/ u6 ]) v. r, ~
0 }( ? t% H9 V2 e+ Scapture program drop hello
8 i, i0 x5 e/ I p9 h7 M2 W4 b
program hello- f; v- T) n+ c- ~, w
8 E+ j Y1 {: @. e
quietly {
( B! n" d, p' d0 D2 \9 V4 Y
! Q' P9 ` r' m1 s/ P: {+ {: Eclear
! ~; [3 S- C* q7 J! s5 a
9 N6 s+ \" _5 s5 R* T6 H5 Jcd D:\stock\test\source/ a# H. n3 p$ T5 ]3 C7 d
0 w, q9 W' R3 G. x3 p+ Winsheet using `1'.txt
Y. S$ d) }1 q! m, P( R4 y4 S5 n! N* g- A" q* }/ `& |
keep if v5>0
, t3 `8 w! r+ g; D& I 4 O1 H& n7 {, z' i1 z/ q1 Z3 A$ W' A
gen vt=_n7 k) d, I) J0 ^" P
8 O, u6 L7 ]5 o1 J" T" Z
tsset vt
1 c" B/ [* m* f/ O3 T: Y7 B+ ?4 |0 Q3 [( i6 X
gen zf=D1.v54 x/ m. o& u% h: x
) A, w; A @2 g4 u; S
gsort -v1
, \, ]7 X8 s/ R/ G) J7 h* q" x) u/ {9 l2 k q0 Z+ |
gen avol=v7/v5
( X; w% J3 X3 h % t% |) @6 g" z- m" \$ I! j0 ^
keep if avol>0$ U N) n3 c! b
: O. C, S" v2 W, @! h( ]/ L
drop vt
: t* C) A" T* G. n 8 V; s, i+ \4 @4 U
gen vt=_n O4 h; C% c, ]1 k
5 f7 @9 t) k7 |' y# W! l
tsset vt
/ u' l' @9 R4 @: g # u6 v4 b, w* m& }3 ^
sum v5 [aw =avol], _ h) ?5 i: m/ h9 N* v2 z
. J+ Z: w M# }. u
gen amean=r(mean) in 11 H( j, \7 E9 u! N- {' S
6 r7 I) g2 `* ~4 a+ X7 t7 v * 总加权平均值 amean
" H3 W% [7 D6 S1 o# I7 c $ |, ?) `+ o6 ^) S/ Z: s' D* c
* p: K! V7 ?. T keep in 1/240- U+ p9 W5 s/ X) ]7 J% p
( \3 ^- Y& @$ B- g sum v5 [aw =avol]+ _) N1 z: d" ~5 I' I
0 r$ T9 S! o# G; C; i j
gen mean240=r(mean) in 1
. h# Q" F9 R: F. ]( f& ]" z9 U" N
i O3 ?: ]- Q8 F* T: ?' k: X *240加权平均值 mean240/ F8 b9 d0 z4 @' g* ~$ E
9 @: L Z4 P6 h- q* } set obs 500 & r- H) l1 d5 ^7 S
* u8 V5 I4 z( A! R; C8 b kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
& N* R( `5 r; z) `6 j+ @ h. F 6 N3 C5 b! E4 o2 V* f0 }7 p4 \+ A
*240 kdensity(dx240 dy240)- }7 i( T+ h. e' }& M! x
' w5 X+ a' t; Z; d) u+ p3 f
sum dy240" K [5 O0 \; T
2 v9 Y4 t$ a6 P# D% w
gen yxis=r(max) in 12 }% H! g2 |5 f4 J- @3 e4 J0 i# K
3 R: ]- m% e+ k e- Q
gen yxis2=yxis/2
X. |% A/ {: H% G$ a8 }& k/ k. C- X ' P$ e9 a" t9 n2 c
*yxis
/ Z* U, W5 n, |/ v2 \/ d1 { 4 |3 ~% d2 f Y8 k2 k" d
gen dy240max=r(max)
6 C: n" c: J% q+ X+ q
) @2 H( X$ S! g8 W gen dy240minp=r(min)
/ u3 r5 A2 ^ W4 ]1 H% X
+ ^# D: u! y5 Q" Y0 q, J gen vtt=_n, o) P! P9 g, `( Z( o4 N( f. _( H( f
$ {4 j$ W5 v7 j$ o
tsset vtt1 Q0 ~ f9 {* X: N+ d
% @4 k6 q# o; A' ~0 _% c8 v' i
gen ddy240=D1.dy240/D1.dx240
K$ Z, z0 C6 F: z
: U4 h; N5 Z' j f6 B+ T sum ddy240# O2 y, c; q8 C5 _0 j- T' M
/ }; u$ g: X6 J gen ddy240max=r(max)
& A5 F% F: {9 @) m
& K0 A) c( r F6 A! s: l gen ddy240min=r(min)
3 O; Q7 r" f) L# t: [/ B7 b7 ?
4 K+ c! @# E: u1 s) ?: R gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( }5 G6 c3 Y/ @# V" G8 g' d
/ ~2 q1 }: Q9 |! g sum ddy240g, H! i. Q9 a3 E6 j
* a6 k2 p8 g1 W2 Y gen yxis3=r(min) in 1% k" L; }6 F, X+ E0 k
* R6 T' G; T( N. z4 W
gen yxis4=0 in 13 P: y! t& R5 M @( N
. A* `5 l+ L7 V9 J *ddy240g ( y: f. S: ]- A/ h
/ h- G1 ~$ Y1 P6 u( h" g3 J0 Z' _8 I2 l
' F. J6 t7 h; M5 I, a preserve
- u" V) \3 Y- y) R- }; \ - L) P$ x: d- s- ]
sum v5 [aw =avol]
" h/ r7 B5 m& E8 h! V/ [( A
7 [ P* I6 P: j* i. y7 [8 R keep if dx240<r(mean)
4 B2 s; J5 I5 u- }
4 {# ~8 |- }- O) @( H# J8 n$ ?* t sum ddy240- v4 Z. h. |. c' ]6 S1 m
# X, ], A5 w% R6 \2 m' O" q
if r(min)<0 {- ~* s. v1 b" `( H3 Y# ~. A; K: `
! @+ y N4 f1 C2 m keep if ddy240<=0* T; C! J0 n; n
" ^ M) J' N( ^; z
count+ |) B( o% h3 p* {7 v: D
7 s2 O/ R+ s2 L) ]9 m* Y3 L# a
if r(N)>2 {1 L8 J$ |. q7 b- D* |: Y: f
' T) V5 \, f2 h- C pkexamine dx240 dy2406 W. p4 @0 e/ l7 @8 f5 P) k. `) D
) N# s/ E4 i! |+ I7 K$ u
local tempminp=r(tomc)- w; D+ \3 w. i/ C8 V* X4 y
restore
" m' Y& T) k. j2 j) _ }7 [8 i* B; x) H
: b, i% E0 N+ Z! n! ^ else {# }$ o- i: r- W" f+ o
9 b1 s( t' {2 N0 L
di "cannot find minp", q' u8 J1 d- _# ]4 m; B2 O
7 q2 U8 e) w7 Q$ i1 S
restore 6 v- B3 b9 C9 b+ T+ h9 B0 w
sum dx240
% e& X6 ]8 x4 j0 }) } y local tempminp=r(mean) F9 f" v) N: s. W$ Y! s( U: e
- m! }! _8 S! `2 v- C7 a' i }" T9 t) f4 B# c( w
}
, x a0 {- B/ `* J, X6 d0 ` else {
( E" o$ w9 K' r- y8 L( ^; O( c + @4 w# B9 F- c. c0 y- \% P
keep if ddy240<=r(min)2 g1 }; l1 J7 L, y3 v3 | f- Q2 @
& U: e! ], P/ ]' x) @
sum dx240
j4 l) j" Z% g+ y; `# i ! Z: H. I9 f8 P$ k W3 }7 f# f8 ^9 K
local tempminp=r(min)7 L! p/ b4 N7 ]0 k
restore
" r1 K4 K* F$ l- l) @8 x }
% N" A( y; J) Z w# G2 H; n5 P$ j% m6 {) C
+ R" H% g: }. o" p
6 _! G: p* R8 ^) J3 j% K gen minp=`tempminp' in 1
' b+ Y" }% O8 a" M8 n3 I- @% q( s *240 minp% \6 t ?' \& q% I6 T1 D
0 \2 y5 x# @, G1 A. j7 a$ N; J* o9 C% @6 F) M
- g8 V3 d$ N1 _/ s
preserve
% C. M4 J8 ? T, x9 H7 F: ^9 g4 Y' D j
/ A# H# T; s( }+ x% Q- J. ?& P sum v5 [aw =avol]; t7 q. \* C* T8 Y% B
& C4 F* [+ n9 P1 ~: ?6 F% G keep if dx240>r(mean); u# p& n# D- a2 H/ Q1 c4 s
) g! E- X9 a& g9 I# g9 Z9 U sum ddy240
" [9 T8 O/ {0 K( q% Y0 J' V
1 }2 t0 @: K- V" x6 l2 ^5 ^ if r(max)>0 {
. z+ K0 W6 O$ |
& A- R. c( M" B; N' O$ Q3 ~ keep if ddy240>=0
) E6 L6 S: q* e/ P7 m% F 2 Y$ r) S) h7 [+ W& z8 n3 V/ m0 P
count
6 E# X( n* N6 L- Y4 C' e , o7 P5 b0 W; h" y+ [9 a) x! W3 N/ F: C
if r(N)>2 {
7 ^! \5 l% c2 P4 X
0 Z9 z1 O2 S0 C$ |0 ^) a/ Y pkexamine dx240 dy240 j! ^/ S, T3 N9 M
4 `9 M) X# t: c) c9 y
local tempmaxp=r(tomc)
0 }* \/ |2 g, ~' v G5 P1 w restore
6 u" F8 O" D+ ?: v3 g2 l6 L }- P7 M7 J1 s- l8 P) [! D
1 L2 W, p3 {- V6 d
1 y% M' Z& D& S else {: ^& p3 o; H8 M0 C) r
restore
" x# g' U5 d% p/ O+ a# l di "cannot find maxp") w, M) j! B) \6 [9 [7 O
]$ I, z$ L$ i
( r1 C! Y! A# F6 h; e' l sum dx240
* a9 f0 I3 ~5 ]1 }7 X" }7 K local tempmaxp=r(mean)
1 H: k( \: y( H" \" G" ?) D 8 r7 Y% F, k) N2 F' \% t
}
; s+ K" ~3 c' z" X8 k: S
7 n. T- s7 z" V( {! x }
( ~3 l* t+ v3 G % h2 d( S3 R2 C3 @9 Y: w# y5 e
else {
, |) V6 K; s( e' X5 ]; B* J/ w % F9 r1 m& I# l z4 U3 r ^
keep if ddy240>=r(max)( Y& t! {! j! D5 l
8 ? H- g4 u% p
sum dx240$ B$ C6 ^. g6 I. ?
. h3 Z, R% R; d) R% K local tempmaxp=r(max) % H# ]7 T+ \+ ^$ M6 O4 t
restore
' Z) u8 R" W3 Q. K2 r9 s }
: _2 _. f. O2 a& u J 8 T; V# K0 g; f; J: ?0 j7 t S
; q5 q% @# s' l- z- I2 J; E 9 p) K, E" F8 @* T/ Q3 V
`) Q, t/ ^) d% u0 v3 w
gen maxp=`tempmaxp' in 1
6 g, H: {* @ y% b q" i5 a
# T, R1 d" r& _# ]! B& @1 m; ]8 Q *240maxp# M7 T T( c& c% j* m
! _5 x# I% E$ C4 Q5 _# A 1 E1 q& v0 T( I. O. L( e
*-------------ddy240pminp左侧高峰值-----, B( j+ V @5 x* R# e' B& I m v
+ f) s# {, i1 ?$ g% O
preserve
! y9 F. C. B: _5 _- ~7 V 5 f! d, K) m6 r8 Y' R! a8 L: V
keep if dx240<`tempminp'+ ?# R6 u: V0 y
, P* k/ J& E8 |
keep if ddy240>0
6 ]* |6 Q/ b ]5 W; H; r# x w 4 v! n* ?- t3 y
count
; ]/ q! f* z: M' v8 j; i
7 z5 y& R0 g; S4 a& [% |0 U' | if r(N)>2 {
4 V9 P3 ]$ i# l% o: |
" P* D0 |0 {5 ]- Z+ x pkexamine dx240 ddy240
* R& `: ^3 a' X/ v4 l" J- R0 t
" ^6 L$ N0 T, d% a* _5 U* V5 z& w: Y local tempminphddy240=r(tomc)
2 W' }+ b8 l8 |1 R6 r restore: D+ L! r' `0 T3 o7 t
}
- L7 @* b [- ~
. d% E$ A8 U ]4 O" [9 C- u else {
1 }; G8 W# @, A, U$ d8 j( } restore 8 c- @! w) u5 L7 a
di "cannot find pminphddy240"
, ? G5 F8 b! z 2 h$ f- r9 e1 j& W2 [* p6 b
9 P( p! {: x4 Q
sum dx240
; Q$ [1 R1 ^; Q+ T- w6 j5 q7 Y* O: E local tempminphddy240=r(mean)
4 d; D* h5 O: A
; P. |: `! Z5 s d , C# F# `0 u* o9 g }
}5 ?0 p, E& P3 E: R% Y( M
! A, d, G/ c$ d$ S
+ K6 V3 o$ x8 Q1 Q2 }8 X' U. Z, n# ^ 5 ?. i; s/ j6 o
3 k$ j* h) x; [ g; c2 q, q! Q : f' u( i0 C0 s
, |4 { n5 h2 z. d! \1 T; x
gen pminphddy240=`tempminphddy240' in 1- F" r, u6 \7 J7 f" _2 T% O: S x
( i( ^) j4 P6 I; H' ~ W$ _* g
2 W! h6 O: f0 v. B *-------------ddy240pminp右侧低峰值 -----------------
( ?7 t5 t' b1 Z' S/ ^ preserve 5 k: n! _% l$ N: {' ~
9 V1 N j; ~5 S) g. `, O% w
keep if dx240>`tempminp'
+ x4 o& A3 i9 N; D. ` . f8 g' l. c) V. S5 A
keep if dx240<`tempmaxp'
9 O( a; t m. F# j. L* B/ S) ~ $ d6 g9 E$ h) I F
keep if ddy240<0
4 m6 v' p x* W
; _/ c7 M8 m( P. K0 L gen temddy240=-ddy240
+ P2 Z& n6 @, Z- N
, p; I9 C! p/ s count
g. d+ p- U) b) a. f. p B 0 y( D" P5 \4 {
if r(N)>2 {
2 j4 z% P. Z" U9 ~. K
+ A2 f& r: U8 J9 i' m: ^/ S# o pkexamine dx240 temddy240' q8 z* M( F4 |* K+ t$ z1 d: a
* m, q& {( J5 ?8 x; w: M% {; v
local tempminplddy240=r(tomc)
( M1 W* k1 @1 k: H# P1 ~ V restore; u2 s, z4 n/ t/ [
}& a1 ]9 D5 X9 W! g8 I# @2 `. c
2 a" U% X) H7 _; u: u5 G J
else {9 ] j: s [! _
6 e& q& {. r: N
di "cannot find pminplddy240"9 Y% q! Z, T9 U" r
restore
: p$ Z8 \# y7 {3 V! m: v7 o8 |6 Q
! F" l% U$ F/ C, y9 J sum dx240; R5 ^/ m2 S8 O8 M6 C
local tempminplddy240=r(mean)
- U8 s4 Q9 `, T- ~ $ f( z) X, T7 T: e
$ Z7 U6 r) `) K" s }
3 P& b Y, ^6 D/ a8 l# p. G
8 R& B1 t: z+ P
7 h/ B; A9 W a1 b $ q3 g: Z0 }+ n3 j; I
4 v2 L* \; @- V: t
" ]( B5 V- y( w, W( \ gen pminplddy240=`tempminplddy240' in 1
( p6 [7 J# W2 M7 f) a
$ e1 e0 v ]+ g0 t/ M- [$ l *-------------ddy240pmaxp左侧高峰值 -------------------
/ ^* Z2 f; q. T+ x$ `8 _( c . f" n, A8 n; c* Q& L6 T
preserve
1 ^, @" F7 Z- s/ R X: Q
# ~ y' w# `' u1 a- k! c. e+ ` keep if dx240>`tempminp'
7 B" [$ u9 Y( y2 U7 j9 p
" m* H; z7 _; ]8 G keep if dx240<`tempmaxp'7 C0 r0 Y# J0 D9 D G
1 f- p1 A3 u9 k. C# v$ C) { keep if ddy240>0
" Y, N1 j0 ^4 f' P- }8 c count
: T: I. {+ e* }+ q6 f
6 `) j# z, j4 ^. W6 j( u0 i! h& j if r(N)>2 {
7 e& z2 }- P7 m7 f' I - y5 b: q# l% |/ c9 \) G, i' L, R( L
pkexamine dx240 ddy240
8 w, t! I, X: J) e% J + p# W/ X2 l6 v( O
local tempmaxphddy240=r(tomc)
) W6 j* I2 ]$ P/ }8 a
4 n% X" B: g* H& W restore+ ]6 E; s% U" i2 Q) I% ?: `
}9 y4 _+ Q, t4 @+ @
8 X; ~4 E! H6 M8 F# H else {9 p* g( C* Q4 ]
4 E" h& `7 J' I- B/ q9 g di "cannot find pmaxphddy240"
: f. Z3 i1 z+ b: V restore' L w' n% L7 ?, R
# D' {* i' ]/ _* R
sum dx240
2 w% [9 U# A7 h' Q local tempmaxphddy240=r(mean)
$ ?) v1 Q& v, A D
- T5 `* n- A2 u$ I# D7 F3 _ 6 P- D0 u+ Q4 P% D6 l' M& m
}
! a% m/ a( _3 \+ W& X, v3 O; S: A* E 7 B4 y8 v* C e5 M3 L# `
* c E# A8 L+ }1 A7 `& e
; P0 \: G- k2 w# q) ~ R/ A9 w
, H% o$ s) _+ T; D3 c
4 e; @, }& |( \2 v! t4 K
' d6 ?6 g( Z* ? gen pmaxphddy240=`tempmaxphddy240' in 1
1 e, i. ^! v) u1 P. Z1 z
' y' Z" N$ d7 R# q ' ]9 ]" V; H- W' M
*-------------ddy240pmaxp右侧低峰值 -------------------8 ?7 |* O3 w {) b {& U8 [4 s
4 O+ P, f' R9 r
preserve
/ f+ M/ M; A( k* O9 c( p* t. c- H / F1 `/ l# Y* E E8 w4 d1 Q, E3 B
keep if dx240>`tempmaxp'
7 U. U7 ~. z/ B- l2 O* p
- w# K9 a$ Q8 i2 J% Z7 Y gen temddy240=-ddy240
0 L" Q$ c- p& @& S 7 L: E! Q* |2 C) o+ j/ t7 b
keep if temddy240>01 o: z+ H/ h" ~) p
- N0 d' n1 g7 \" P$ [9 P" A
count/ W( b/ I/ r7 v9 R
* X* i8 S# `- e3 j6 |: p! ^ if r(N)>2 {
) Q# G1 i* l4 X 4 y; n; C( f& S# K/ B
pkexamine dx240 temddy240( a* u+ C/ H- W4 b' v* Y
* M e2 |: e# [8 N% j
local tempmaxplddy240=r(tomc)
6 ~) C: j8 }$ i restore
2 U; {0 H& s/ W& g8 Q" R }' _1 T2 b2 F( K5 D( C: C
' A, G( p/ x+ f else {3 \2 p+ V$ ]! I+ W* i
restore3 Q6 P. f# K1 U1 ^, ~5 u# S
di "cannot find pmaxlhddy240"
$ g# l) j$ b6 I# a; _0 t
; x8 m% d# j2 i) d7 N$ ?; c
; z# N' c; x. K6 [ sum dx2408 ]9 s- a0 ^1 C/ H; i" y
local tempmaxplddy240=r(mean) in 1$ P& i4 q4 z' }( l
& Q8 J9 g7 v$ N* `) W
( U1 V$ U% t$ ~% v
}
; C- P" _ |, n
% m& K8 T" }4 G' a0 I4 `: i
) ]( B5 `$ I+ Y / y4 `, y2 w! f5 q' O2 a
5 z3 u, ]: C8 ~# T6 k' u0 @5 d ! Q3 e! }/ z6 C. o( s5 _( F
" w1 ~1 D# _7 k. g gen pmaxplddy240=`tempmaxphddy240' in 1
5 y5 Q$ T+ d1 R; L. g9 O) X5 e % {, U% u' A2 i3 S3 m; |1 \" E
*-------------------------------------( b. r; a" H& f' d8 i
4 y' H3 ~5 u9 L9 R; m) u9 B gen price5d=v5 in 1/207 n% ]" v7 K( _/ P1 d) e% N
( B* P J0 k2 ]& [! ?% a- k* C
gen price5yy=_n in 1/203 I5 T- C- J3 s4 {" P
* f# O) e. @0 ^& N gen price5y=price5yy*(dy240max-dy240min)/20; }9 T b8 B* l
" w( d* \/ N8 J8 C7 ?' k" c *price5y &price5d
- T9 }3 d$ b" U7 B* T, U/ C7 ` 8 c% L ^/ E3 c' d8 x: f# z
gen priceny=price5y in 1; M W* \6 S& X
0 l) }2 u6 b1 q: H gen pricen=v5 in 1
! G m1 y& h7 k
) \4 ] e9 y9 a7 K ' \! m. Q. a( `: ]; Y6 R( F4 R
*priceny &pricen+ v6 |! d$ H2 d! q
* Z* T! M* G2 |; y0 ?
* ^7 o6 e0 R0 z% B
*-------------------------graph------------------ V3 d7 G: J/ Q3 z. U- O! b7 s3 Z) q
0 d5 ]; u2 ?8 [8 H H' q7 X8 q- 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)
: z9 [' A# s% e* j: g f5 b
) b) Y- w2 K% ~8 p& n2 s8 p+ [* ---------可选项目----------------------; N3 [( ~3 h2 @9 k* K5 `
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
! F5 a( o. s5 n" g6 C; x$ A}
% O& e3 R" \) K6 |2 e- t9 {$ d0 kend Y( @" I4 I* |- E. W
|
|