|
|
maodeng 发表于 2013-1-28 13:13 ![]()
5 z7 J" z* |0 G+ t. hello 300236) p- k3 }% J: O0 j1 }
statement out of context
% T1 w4 |: C2 |0 a! ?r(119);
. T: ?) r, ^" P% L" c9 W( c抱歉,最近太忙了
. H) C e3 j7 U% }0 d% m( }- {/ ^' h E. j
+ a: G; V+ @8 |" A& H300236 我用下面的程序试过,没问题
d0 [2 Z* k% H: ^# T1 X( w9 ^: V0 j, p3 P# g
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
* t: D. [2 c8 Q6 a" n' j4 ?
" ?2 K' v3 T7 L2 \capture program drop hello
. W- s: C( g8 o+ J
2 k0 E q. J" c( V4 }program hello3 c& ]1 [9 C2 V( H
4 L7 r% Y \5 z3 P) N quietly {' g8 H0 ~& {. P0 I" `
/ Y9 U- u: i" Kclear
T- Q- K9 _. m' U+ b5 W$ \
( b4 K5 G1 C3 s0 {$ scd D:\stock\test\source8 H1 u6 r" Q% d* ^! Z, K" i' Q
% x% N* H' A. Q% Q, Minsheet using `1'.txt8 ]2 s# f* u' M3 P0 q$ i) f
/ D* Y3 ~' R: W% h0 c0 O
keep if v5>0
9 I/ ]$ c3 x" `& V- ^ : b D- K8 r& p" }, B% s$ d
gen vt=_n
# Z' |* U& |0 o. g% w3 @# x 2 i6 v7 T' ?1 ` i& s/ J% F: G/ }5 [
tsset vt$ ^$ _( m$ C1 S) M) x, A: l x
" [7 \& H) @7 A1 T
gen zf=D1.v5
7 A- E; b$ N+ }" M# i9 k$ E% t/ g( G" m5 |+ h: V
gsort -v1, Z4 f# t) H2 ~# f$ Q
& a5 a+ R, n' [" H2 Y
gen avol=v7/v5
. k( X. z( x& V W* Y+ y9 H
/ S* \% H* ^' C2 p* q4 z keep if avol>0
8 d: l# t5 p8 y: Y/ ]( C6 @; D
+ V' X1 {6 R. K Y' Q drop vt
. t) w7 v! y, e5 \
9 c; Z b, B2 Q) ?$ C gen vt=_n; k$ G9 L/ f6 `' u& R* e$ t
; I% g" i* a2 ^) n/ f: o
tsset vt
! S/ T |- V) W4 A0 A, E- x% }& f% W $ C4 B8 H T; a7 f- O* b. s8 _% X
sum v5 [aw =avol]$ Q/ }- d% J" C, ^7 j
5 _& J) D. `& t* } gen amean=r(mean) in 1
2 L+ J1 r3 p, f. l- d" O3 r6 N" M % ^! o C4 P# t
* 总加权平均值 amean
0 c' s7 t3 P% o7 v1 @ % ~6 k3 p8 H& c/ R& c
# L: Y) k7 ~4 t# s
keep in 1/2401 E3 ~4 W" K0 H7 h5 C$ ~
& t; [; y% k4 `& D7 f1 E sum v5 [aw =avol]
9 g9 b3 P8 _ g! L
: S. @1 u. h4 P gen mean240=r(mean) in 1
: R" h, ?2 u1 ^4 T; d U! @" F
# |8 n/ Y& ?8 |! ^ *240加权平均值 mean240
& z5 B6 ]" W& z ) [% d6 ]3 M. U$ \& S
set obs 500 - j& \/ @# e; _
& J' Z- Y8 s, u6 y4 S* M# d
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
7 n! `! B s% ] + p# n& Q$ G3 X. @/ W& J4 m
*240 kdensity(dx240 dy240)
. b0 w+ q' b# a! K+ L* i7 m 4 h2 @2 a! D: L3 W S( D
sum dy240
% u" ?5 I! O. B2 s0 M5 S ; Q1 g- g/ }. e% a. Q
gen yxis=r(max) in 1" W+ w5 b5 d( C# N8 I6 p
+ a9 L! q3 c0 O9 ~
gen yxis2=yxis/2% v7 y, Q9 y5 \1 A6 g& U2 O G
|: E u; ^: ^. V% q
*yxis0 J5 a/ g1 l3 I1 K6 a- S% [- `
5 T0 y5 S1 \; z. O gen dy240max=r(max)
% P- b6 p& ]* U! T$ Y/ R 2 K/ y: Q6 z7 p8 c
gen dy240minp=r(min)
) g; ?/ o$ @; h. F4 ] # z, B7 B& H+ q/ f* ^8 h
gen vtt=_n4 I! u4 j u- w: m0 ?
Y: `2 c# i& g' t" C tsset vtt
2 ~: v5 _7 r* z" f& @! U
; O1 }) d& ]7 a/ c4 \ gen ddy240=D1.dy240/D1.dx240( n7 {5 @% S E z/ V, e* a' v7 a
, ]9 f. ?5 v+ {
sum ddy240 N4 k2 w' ?# y
8 N3 b/ A) X# M5 C* i2 \
gen ddy240max=r(max)( \! y0 m4 s1 ]8 K
1 W: \$ w. O T. D' h, `3 K$ k gen ddy240min=r(min)
6 Q; L9 V* k) m- M : v0 L: ]$ o( t7 A0 o! Q7 T$ R: F: X
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
$ c( Z, a4 P" R6 S- s+ e* N : w t8 d$ h; R+ U) b7 L' D
sum ddy240g2 F7 L: I8 Z7 Y# |! y6 Y
4 z s2 M* l5 R' C3 I# B0 M gen yxis3=r(min) in 1
, z0 s8 n; n9 J/ U& ~6 s7 O
: ~2 V8 q" Q7 q3 z" \ gen yxis4=0 in 1
% f0 d8 I& g3 {, ^9 _ 5 Z1 h2 u" y3 q
*ddy240g " P6 m/ j" y+ o& k* H p7 k
; `' U8 v! u" }) U4 l% b7 I4 f3 j
/ u9 S$ i+ _ J2 [; l preserve
! N: q# ]6 E5 W, f0 A$ w
& @: J4 Z9 n* U5 S sum v5 [aw =avol]" ?% z) G/ Y8 J" t
, ^6 N8 u5 F( s$ d6 l
keep if dx240<r(mean)
( H+ C: C1 F$ }5 Z0 Y( {/ @8 Y) U8 w ) I- ^8 \% ?! w+ B' H' ]
sum ddy240
/ n' G8 }3 E6 P6 o
- d* I1 U4 ]4 k if r(min)<0 {% E/ {1 A% X, c2 t6 g1 r3 W# a
9 S: D$ C! i4 d. L keep if ddy240<=0
7 ^5 m- m. @! Q
- N- D/ d# I4 _. C; ~% \" k) w count/ n9 t8 t9 l$ ^8 A9 {
4 Y6 i6 [& k1 j if r(N)>2 {
- b+ [. P2 o* W$ q, f) ]3 h 9 S$ v! d1 e2 [# }
pkexamine dx240 dy240
' `/ s$ f% `8 w8 M+ H 5 ~4 |! o! A; N; q* p( k
local tempminp=r(tomc)
7 T% K% ^9 S/ z9 [+ u$ ^; p! w restore
$ @5 K6 r( i- ?( B }" k' ` r7 R/ K$ I2 u
& Y! o3 J' L+ V5 B2 F5 X& u3 _# `
else {" @/ |/ u$ n9 ~4 E; M
6 m8 T: ^+ T5 T y( Q2 R
di "cannot find minp"
' E* `9 ~" o6 V; t
) @4 a: t% M. H3 ~7 ^. t restore 9 B/ C9 s. n8 m/ g
sum dx2405 C: r- n( T4 j# {( _7 _1 d
local tempminp=r(mean)
7 S8 @6 v: D- L( ^ 2 Y8 ?) N' q. L R& e& R2 s
} V5 u' F h6 j# ]6 q$ l, [
}5 H# G2 p) v$ b* `+ z
else {
" ^% d! v( H, W% D! z9 I% C
6 y; [5 r% _ ^0 d: f% Z0 A keep if ddy240<=r(min)
* e' l. P0 p3 o& A" X
- q: S8 v. V9 d6 p4 H' M sum dx240! k* h% r6 ?- L$ R% [/ G9 w$ [) Y! X
+ [# K1 g2 r8 z8 d4 q3 G local tempminp=r(min)2 ?, Q. I6 c- J. t. R
restore 0 ^& x& c0 K% k
}7 ?5 m" ]& }7 E2 ^! E0 \
2 a! s# m2 ]) P, C
- w t0 h/ X, K( ^* S- i
. X% z4 j3 e/ u6 ?
gen minp=`tempminp' in 1
3 W4 ?# ^8 ~. I% B! J R9 k c; D *240 minp
" ?. G2 W9 [1 p! L: E6 |4 z$ K0 U1 O+ [6 Z4 g& H
# f% N8 J$ ? v0 z* a/ O
; f9 W5 A9 r6 Z+ _ preserve
6 n, G" Y% I3 D6 i i c2 F
% _0 d8 M5 y N; T sum v5 [aw =avol]4 p4 z" S( A7 o) I/ B2 a
% x) L, T& |0 i, O. R* @
keep if dx240>r(mean)
. f; l; a6 N0 V# k- y
2 m( G' h* ]2 ^$ z) d4 e, o sum ddy240
8 X: v9 }" l. |% y1 k1 r ! v- ?+ {2 A& I1 F
if r(max)>0 {
; c. ~: a/ W s% B+ a X4 e , f, @+ D5 ~& c2 x4 |
keep if ddy240>=0
2 Q' R7 B# e; n: [$ n3 _7 D* R/ x " @# s$ z" l. T4 H1 v
count
5 d! M& B- G) d+ k % d; n1 K" W% \
if r(N)>2 {6 [2 F+ ]. Z U+ e2 o5 S
5 e2 Z4 }$ P; z
pkexamine dx240 dy240
. O6 J& Q& {6 T2 K2 `/ N1 q: x( M
: B7 v [9 j4 m g& f- O5 B3 y local tempmaxp=r(tomc)
4 b' |" {! ?5 b5 Y restore
/ I6 z- o8 L* Y$ n% z }
l, W* R0 j6 K# F3 s
+ f& O) d7 s4 M. ^5 E* b ) x( ?4 y7 k; i7 r' `' V
else {. P- h+ _+ ]4 q/ T' U- |
restore 9 M! b V0 z2 T+ C
di "cannot find maxp"
" |3 y! u" c& B1 @5 F" d9 V
6 ?2 \' X) `+ l* N' Y
$ W6 G( R( E3 R0 f+ c! I, U( d. V sum dx240
' c& ?( w& c, H# n' O local tempmaxp=r(mean)
, c! A2 L2 i# ^ r3 O+ z# F! G$ N4 f3 j
}
9 S5 f2 h' d" y( E6 h4 R 4 w. V& I* ] ~: x9 M+ l: v- U7 z, Q
}
( b+ S h+ D! m9 `- G: V5 g" L3 i ) U, c3 a/ B7 ]5 E' s
else {
m# ^3 z+ V( E$ }( g: n
* a$ c0 J+ w+ U$ K. F; ^5 N keep if ddy240>=r(max)
- I6 {: F6 e4 N. D5 d 3 F O/ \9 a( Y# O
sum dx2409 v) j( O$ |; c: ^6 k {
- l9 [& s& @8 a d" \: _4 { local tempmaxp=r(max) 5 T) Q% y3 O1 E3 V& }' R0 |! W+ A
restore
" h! F" F/ B8 u* n/ V" m }; D( P+ Y& ?! t& Y, H% ^
; S# \+ u, J- _; J* v; r
]' o. K; z9 @* Y+ W 0 z% @$ J: u ?6 |4 Y4 R* R! I, [
) K. A, O# L# a
gen maxp=`tempmaxp' in 1
9 f3 i: R* I) m% T4 z S
% C! Z# b& ]8 B9 p: W! ]) i2 _ *240maxp& }+ x7 L2 q+ f$ ?7 R) S& r
" v/ e) R- a; n$ J/ D a) x
* O. V3 [' |; H- T4 A8 d* E *-------------ddy240pminp左侧高峰值-----
7 a( I9 s6 A( m; u# r5 O& n
7 E. |3 m$ ~. C; |2 @: n3 A preserve
1 K/ H2 S: F: r# }
2 H7 p/ k$ f% v9 o$ R keep if dx240<`tempminp'/ Q8 ~, g$ E) w, h; o- }7 X
' L8 \2 B! t- s" U( V- k% \ keep if ddy240>0
7 X5 G+ p! M) |& S9 d 9 z8 j; n( J% d+ C% e8 `
count
0 j% f7 U, c4 f5 h* c
6 l( x- J/ }( n0 I if r(N)>2 {7 P6 r$ ?9 c3 @/ Z; t+ q
7 F! Z5 x: Y4 V. o& w pkexamine dx240 ddy240
: `7 ? K' I! y v# @
; u9 M' q- \2 V+ I j local tempminphddy240=r(tomc)
/ _ Z5 G$ _" g& l( i5 n restore
# O7 \" k# d1 Z* a; p3 h- c }
! t! s/ x0 h6 n
$ H# Q' a- v/ c6 p7 ~3 V! J else {
# i' q) |7 v; f7 L. J) L# ?. K restore . u3 s3 P- k5 ]: d9 Y; L9 I. G) ^& N4 g
di "cannot find pminphddy240"
9 E+ A$ v: X( v6 o: N" ? 9 H, r( {1 I: r+ X1 `0 u6 u
+ g9 f9 u: x0 j) S) e& d
sum dx240
+ U3 W; O- s+ y! R1 U: z) | local tempminphddy240=r(mean) 9 o. U! l+ p; U3 ]) N% F
- L1 o1 N# a3 R- ?5 ^/ P
2 l: N1 ^- B0 t( N, E }
" S5 ?7 U% c3 x8 Z" f! e( c " B4 s( Y6 t" \0 }# g8 p9 v+ Z/ s
k9 i' F% {# I8 V5 ^( m9 { . e+ n( U0 |0 G. o( n
$ l2 G3 O, s5 U8 }7 H8 a/ A - `' h! V7 c0 d. s
8 _+ A' m" u' d- S# F; q
gen pminphddy240=`tempminphddy240' in 1
/ s' f1 u% s7 B* V2 _7 [1 d2 Y7 ?
- i, a/ I: I4 t. J5 J |! d7 o8 u8 _3 r, f% G& S
*-------------ddy240pminp右侧低峰值 -----------------, B9 n5 s: o/ Y- l
preserve
. j$ P8 R! Y3 k+ p9 P0 ^
* D5 H3 I# t, A* T5 q% v/ r* d w keep if dx240>`tempminp'
* j- w$ ^ D6 [9 l+ W& B
h( T v0 p+ P; t+ w0 K/ b, q& Q keep if dx240<`tempmaxp'/ k/ [) T$ l6 G, x. h
( t' U# s5 D5 L8 N+ ? keep if ddy240<0+ k" y8 M3 }% f' O& L
- I2 S$ x- R7 r" \ `: X& P* |
gen temddy240=-ddy2405 x5 X7 L' j4 L) z0 Y
* f2 P+ I6 d. |8 c count ^& v2 M. x8 x$ I3 Z5 d5 Q5 b
% m: Q& ^- R4 L2 y) x( `- n
if r(N)>2 {: j2 I& d$ T% e
6 `! L# n3 U/ ?% l7 }: v
pkexamine dx240 temddy2408 Z0 i5 `2 b/ A. [, V& T' p: _( m
4 j2 @) V5 |' d/ B
local tempminplddy240=r(tomc)7 ]: u; e8 o2 e N; I
restore
* ^2 |0 d: d, _+ q# Y' j% v }" n" f* }! h. z2 e
) e- S# x1 o6 `) p& F9 k) x0 F else {; z- e0 U# ? |0 H* k5 O& R
. w$ c6 h; `" D
di "cannot find pminplddy240"# B/ s1 }2 Z- W- k2 Q
restore V5 ~. _$ T! m" I( r2 ]
8 E7 b5 j: B+ P) @ sum dx240
2 v) g5 ^' r# X7 t3 [7 C- M local tempminplddy240=r(mean), y* F+ v1 ?' C& d- f0 R* V
- c1 Q' q2 o) [# f
* U3 k- O5 c t" ]( t }
4 y: K' Z( i) H, Q6 B5 p' e ! n `; d% }6 F3 ?
- P" [( B6 x# l8 B) t6 @! Q1 k
1 R2 j4 }2 T T
: T% C X' |* d. Q3 ? * U1 t. K5 F2 v
gen pminplddy240=`tempminplddy240' in 15 i: n% y: m: l
[! ], C9 B) z) @* L: N# ` *-------------ddy240pmaxp左侧高峰值 -------------------7 U! q9 k7 u( J$ l3 r- j# j
4 l. F$ c$ V! d4 W5 e1 f8 w- A7 U. B preserve 0 d3 [3 I) H# K' k: s
) _, [6 x: o. d- Q9 \( y" }% L keep if dx240>`tempminp'6 y' }* f# p- n% T/ \. |3 ]
2 ^/ _$ j0 i' |# L! I, m keep if dx240<`tempmaxp'
Y% Z0 l r% g* W# i7 z
- Z6 o: D- K2 z keep if ddy240>05 F1 k3 z7 N* b6 c7 F; Q
count
/ q- m0 G2 g7 Q. S# s$ G) b : V7 @# ?8 G7 K( K7 `
if r(N)>2 {
7 C8 B) z: s3 A. y: M
7 o+ K. R4 g$ n# D pkexamine dx240 ddy240 F" `) @$ s' b
) P, _ `* @% W4 T Y+ f
local tempmaxphddy240=r(tomc)
- C* C) Q5 p/ I+ Q/ X( ?" ] ) X0 T: `; Z% j O5 ^
restore
( R8 d6 E, ] I1 Y" G, p2 j }
# i5 Y$ [$ T) E+ Y
. O7 S" N0 X) `6 I8 L$ X) ^: A else {# N; ?" k" u9 ?$ m, Y
+ Q9 A$ E$ ?# j9 H1 ?+ | di "cannot find pmaxphddy240"
/ Y7 t# k, o" m4 F6 c N" j K2 L restore
: I" n4 R4 T- C% d) E8 A
+ X ^ x8 c9 E4 j- l sum dx2409 l0 d+ a; c! L' I& u) C
local tempmaxphddy240=r(mean) 6 _7 K0 `4 V1 c) L5 w4 k
- o6 s3 M1 x d# V1 d
. x8 b, n/ X9 u2 B4 v1 ~ }
" _7 u) _6 c+ Q4 S' B / S+ ~+ g( z" j! E2 D7 ^
% _/ c8 N1 \. ~2 b. ^) F) z: j: a
. @( L5 A7 ~/ E + ]6 v! u8 ?( U, R2 m5 m
) [. I# f8 |1 i) D5 t
$ w: D* a% }0 g, G1 t gen pmaxphddy240=`tempmaxphddy240' in 10 E9 E1 v9 Y: d3 O# _
' _+ M; N. h8 K ) x6 |# e3 Y# N/ V
*-------------ddy240pmaxp右侧低峰值 -------------------
7 v9 h; X0 ? j% L& | : l; i* j% `6 z3 B! O/ T
preserve " G$ ?$ y- @7 }* B# X6 u
1 k' V, k0 K7 K! {/ d2 A
keep if dx240>`tempmaxp'7 M% P) c9 R7 G: {9 U
3 E. }0 | q- y
gen temddy240=-ddy240
; j! i2 z, V1 f7 w3 L# k/ Z2 k" s. _ 0 }- Q& E8 O l" L) u
keep if temddy240>0' b# ^: ], a! G) g' Q+ G5 p
z; i: N# F, ?; Z. t! c# F# r
count; w' l. x/ _3 n4 y% U
4 @& A" P+ i6 j% B
if r(N)>2 {
5 g; Q2 l' r7 {0 F8 _0 \( I+ I * j6 D$ d2 @/ m1 r* C3 r, e/ T
pkexamine dx240 temddy240
7 z2 {3 @9 G n. m
2 G2 A6 Q+ Q3 U" a2 ]* W6 i local tempmaxplddy240=r(tomc) 3 ?% E' T6 K7 h. n
restore
5 f- c1 I5 m, a4 @" P# ~& a }
* K, {9 O0 M7 y# Q2 S. t 3 ~- r- j3 d0 }
else {( l; x5 B o- K! R# C( O( a8 p \2 s' Q
restore. {1 b* |! Y6 N$ p
di "cannot find pmaxlhddy240"6 d& t- G$ }& x+ y' ?
0 H) Q. ?, b8 R& S$ g . K, J3 G0 _0 e3 y1 f* C
sum dx240
3 z. P3 i' ^9 J) P/ k) y- r local tempmaxplddy240=r(mean) in 16 S/ F0 r* Y8 {& ]) ]% Q4 |( r
M+ [7 k; L' y2 x9 s- Z . K& O# i% n# h: r( ^
}
. T4 G6 j" P( B; g/ j+ ? h% n; P! J: s
6 J& I5 X _2 l) q : r' M) P7 V c4 F0 S1 ~4 c6 ?
' d! R m& S$ Y3 l! \ 2 z0 o7 H( b# M. k7 q% X8 b+ f
2 g$ X% [5 g5 y9 Y1 R4 q6 v 4 m. W9 ]: y P: s7 I! T1 X H3 _
gen pmaxplddy240=`tempmaxphddy240' in 16 V, `! \2 G0 f, E
3 H1 W; L. U( {0 I7 E
*-------------------------------------
, A0 M# E4 W& R4 B & W% J" J% v K5 ]
gen price5d=v5 in 1/20) L' [! ^2 t' y* i8 ?4 N7 F# O' m
8 ~7 C5 c& b& w, p/ z gen price5yy=_n in 1/20
' g5 O4 B6 T g3 N
' `3 F+ ^' ?! z3 P gen price5y=price5yy*(dy240max-dy240min)/20
, G: J9 R2 [' M6 Z; l " T& ~6 D1 ?. Z
*price5y &price5d' G/ y8 ~: r, l2 L' v6 k
( O, U$ ^3 V) q6 k1 I! G0 Y gen priceny=price5y in 1
( l8 M- J/ W' f" B6 \( l: \+ L
8 v9 w! f7 |2 u* m gen pricen=v5 in 1% {+ B- M5 `* Q% F) }7 z
& o; n% C" V4 t. c- M2 M
/ ?' G8 [: h! F, T4 ?6 q *priceny &pricen
% w0 m% J6 _# d- s 0 o8 [, C. x2 g( z
% C+ ?. t' h) s1 G- O
*-------------------------graph------------------' o4 F# k3 B' }' `$ h' R }' m/ S
) f. T0 i( S2 r4 X: j 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# o2 Y/ P& i: m" o/ J; n$ x6 O' ?) q9 u# L. m0 U
* ---------可选项目----------------------% x& f2 ?& g. G ?+ ~" j
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))& s+ p5 X& i& f# `2 x! H4 w* I. q
}
. W- r3 k- ?/ C4 L: Bend
h+ z+ U( Y& X |
|