|
maodeng 发表于 2013-1-28 13:13 ![]()
6 {' H; ]0 g& |$ Q. hello 300236" W7 N& H0 N) `* S ~( S
statement out of context+ l. y! |8 E1 | M
r(119);
% d4 C# T* V8 [# A3 Y2 h$ @: e抱歉,最近太忙了
# @) Y! V+ [0 n
, f" D5 ] N# X2 w300236 我用下面的程序试过,没问题2 V; p0 A- M+ Y
. e) h( }3 P" C- e$ P6 G你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试4 }+ I* E& m3 i6 A
" [! B) p S9 M9 ~& tcapture program drop hello7 C& x5 l- A, O- S8 @& n, U" r
* x) w& } W! r% q$ C! q
program hello
; F6 g; D$ n7 h% e
7 x) B( _; ?1 @) _9 m5 D! W quietly {5 f. i; u6 _- ]) O9 b' h8 W. E
" I4 S% |/ z, a5 @. [ yclear
N1 d5 G, x# H3 B" ?, H4 | z* k ^" _/ A6 G
cd D:\stock\test\source
' _1 y0 M1 C2 }! P2 U0 m; Y0 M/ N
; I$ M' e! W- x& [, ^insheet using `1'.txt
I9 U% a7 @% s1 u% n& S
9 R1 [; V, c3 F5 V' q keep if v5>07 @1 J9 C* C& X% D' s1 ^
( a6 J4 @# o6 x3 [) o+ Z2 G
gen vt=_n
! A! k; n8 [, g9 _$ z# a 8 b9 f3 X+ o7 y% t" }
tsset vt1 ?- u1 R# l' H; ]2 K( p0 Y5 x+ @
* w( d3 w( s" {7 U6 X! w gen zf=D1.v5. l4 I, H( h" ^$ a! u3 M2 V
8 {; U' M" h1 b! l, T
gsort -v1
0 ^" j+ P/ F2 K
! `3 e+ `! G2 j( Z$ p" r* T0 f gen avol=v7/v5
1 h& |" a+ i& a. ~* L% o + o ?% A) c' j7 W
keep if avol>0! z7 d' {# t y; }7 i& K z# K
; _2 v6 D/ ~; h2 {
drop vt+ D5 T7 e- b* o8 L* S5 T x9 ?( x0 s
9 B$ \: C p: a D o9 ?; z1 d gen vt=_n
# M4 i. C w6 X4 Y, C5 W4 [9 O 9 D; B3 Z3 O) v. J* X8 ?
tsset vt8 M0 C e8 r' E5 @
% f6 `. u+ ?+ Z% W+ F
sum v5 [aw =avol]; d/ h7 g' F" O" s
. S3 j" z# W- i" X0 F1 ` gen amean=r(mean) in 1
& {/ Y9 ?/ R t3 N: p+ r. ]+ \9 C 8 k, e6 Q+ r% o1 P0 w
* 总加权平均值 amean0 t' q) h8 `6 \. X
6 o. ?. @! h" r. _$ x
4 }$ l# K3 {5 J! `" t" \ keep in 1/240" v4 U$ J2 W8 T4 M/ I6 A2 Q
+ j5 X- ]2 h- V* t4 x- k
sum v5 [aw =avol]
) q e5 l- H7 [6 q" {; \( K# [4 E' F- r* V& V& o! ?4 p6 J) ^* F
gen mean240=r(mean) in 1
2 T* [* j2 s! ~3 @( r 5 V/ Y! p- v8 ]6 ~( j
*240加权平均值 mean240
+ `$ x* h, E) L3 ?# ^ + I" t. u0 q' A0 ]: M5 E- d
set obs 500
1 A$ p" C2 m) g3 ^2 P) w
@$ m# |; {2 S1 b kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph( e! b+ l L$ [) ~5 A
8 o) n7 T2 b6 V- [; V8 j, @
*240 kdensity(dx240 dy240)( \1 X) K9 F z& V* H& Z# `9 q' X |" }
6 v) q5 Z3 ~8 q. `
sum dy240
6 B. F. R" T( B+ y* z3 S
. o# ?- a% c7 v/ A gen yxis=r(max) in 1- y/ R( y$ d! \3 N0 e
/ y% a" y0 @3 G& `! k gen yxis2=yxis/20 X$ ]6 }9 G. h% I/ k
, [5 K' [ H+ @6 S
*yxis1 F" O: L2 ~: i& e
: \: Y7 [; e7 m. n0 |/ A
gen dy240max=r(max)
/ H2 \' F" g4 S! k" ]1 ^5 E( z$ ] , p: Y- @( U* i- H- K' Q
gen dy240minp=r(min)- L# z" {/ ]% _2 ^6 C3 F( k
) T( M$ R8 P* w6 v0 v8 d0 P
gen vtt=_n
# q$ w" U) _; Y* `% X
2 z4 b& u0 J) i" P- A4 [# m* | tsset vtt
% m9 z" d" \2 _5 s5 e. d9 m
2 G$ H* z0 i" B/ E- ? gen ddy240=D1.dy240/D1.dx240% V& Z4 u/ e9 o. O& p( ]' z
* I3 T G4 d2 Y( [' P. S/ u* x
sum ddy240/ @9 g( W3 n( E9 f, p* }+ e0 S' @
6 R5 {/ W6 {3 ~1 g6 M
gen ddy240max=r(max)
% H4 [) v, } u! t, ]/ @ " c+ ^; e0 b0 J) z4 y
gen ddy240min=r(min)
! ~; u) [9 W- q7 j 1 T7 X$ r% ]3 E
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
" a* F( B1 ` e, R: Q/ u9 l
. L3 C* D) {+ t7 a sum ddy240g
- |0 d( m; C& {( |: L+ ?3 r
" I; ?$ d* s* K* ] gen yxis3=r(min) in 1) {! ?9 m& X: F& B
8 f( v% S8 Y* X* r' ^
gen yxis4=0 in 1& z! U; R) V& j2 p5 B9 s) Y7 O
3 k3 s: o6 F0 J1 B *ddy240g
: w+ z; I. u% \& B/ ^7 m
3 P3 Y+ l" z2 L+ Y& e/ i- u , s/ a# \* r" p' o
preserve ( B, X" e5 m3 a+ R' [2 U# x. B6 e/ I H
/ F" u5 l" Y. n
sum v5 [aw =avol]0 t5 U/ ]2 ^* ]/ F Q, _( ?
6 @" H/ K, z2 n ]( [0 H! k1 `
keep if dx240<r(mean)
7 a$ }' p- `1 q# W6 K' W9 | : p ?, _& W0 @3 Z, T* U
sum ddy2403 z y/ f8 f4 C6 j: [" j. l" L( C
2 t( e& \% S. J/ k3 X8 h
if r(min)<0 {
/ Q6 y0 m3 ~1 S- `' _8 g
# c6 D h: S+ l$ J) z0 J' ^ keep if ddy240<=00 W5 Q3 `$ j, E) i
9 W, u/ j6 I5 {8 `* N3 R8 P+ d count$ }5 ]& K. z8 z; y- p
! a% F/ B2 C# ~, ~
if r(N)>2 {0 Y$ X7 a1 p2 D/ @
& h! J* X# n, a( F8 M
pkexamine dx240 dy240
) p+ C$ C4 y, Y0 N# B 9 z! f9 [ Y6 ]' K
local tempminp=r(tomc)0 W, }, D# A& u4 @& R2 [
restore / }, q- Y$ s8 q; o0 i$ ?% b
}% [. A+ X! t0 d5 N# X" ~0 X
2 q. z! c% D9 g2 y; z
else {
) H; Y7 p. _, {! p* _. m / ^- E m& y' k6 p
di "cannot find minp"
# J! ~. |! ~5 J: ?% r6 W0 k/ F0 I" ~ ; h2 g. z- S. P
restore 1 H3 Z, c6 O% y, n* _4 u6 }
sum dx2408 E# g5 M/ y2 r5 L0 l
local tempminp=r(mean)5 Y& L4 w0 v8 ^6 _: e
D$ \3 k; M, |1 c U7 O9 K
}9 n/ T+ B/ }0 C. g7 C1 k5 Q9 F( P; b/ J
}
0 U' J3 G$ M6 C else {) W+ I9 H5 J8 r
6 f( |1 V/ |# K; a( K P/ d keep if ddy240<=r(min)
% [: ~7 B5 J( T2 X
) A4 G+ A/ E% S1 ^7 A# b$ t sum dx2400 ~" q6 d! H5 m
+ N6 L& m, w4 i/ ^( z1 `
local tempminp=r(min)
3 @! C. e: R6 i1 w( K' d4 J' f restore
: l- [( [+ ]) m: W2 Q3 U! c$ r }+ T. h# J8 d3 l# E/ _
% u0 b& N- M$ T- P* A* b4 ]
! h* f: q q P+ U& |8 w! G
7 Y6 J, ~4 o& L
gen minp=`tempminp' in 17 m* p& k% j0 P& Y( u
*240 minp8 p+ Y! A7 G% l6 ~' r. v: c* P! }
5 w; ]3 [2 `: A- { H) P- e
! W9 l; }0 D) `1 W' i
3 y. V [0 C3 X" |0 |
preserve 8 q+ \: P6 O- N
/ r) _# I& a# y; r
sum v5 [aw =avol]
: G- N; z, c! B5 Q: t 8 n# h. S; X( [! a
keep if dx240>r(mean)
4 t! ~; i9 k! U3 ?
& W/ a4 x K* f! R8 w sum ddy240
& S H& N+ A" k& }) j2 y / I( u+ a5 F Y+ F
if r(max)>0 {: O& B& y8 p9 j9 y: V* ]
8 ? t& |# b7 y" w keep if ddy240>=0# `- S* ~) I9 j: ]
% J7 O' X }! C0 V; C count
) b2 w; [- V* |. }) p& }9 h3 | 3 b/ r: a, U9 f7 m4 h6 n- Z
if r(N)>2 {
1 M' F: v' Z2 p, k " ^# k0 g0 ]% B- p; k+ w) A1 G
pkexamine dx240 dy240
8 X" x+ Q& j" y( q7 u2 S" Z
/ l3 k5 O# ?9 N1 S local tempmaxp=r(tomc)
9 z" Y! o6 x, Z) _ restore " E. G& ~: H& N Y- e
}7 s8 \6 h( Y4 x3 ~4 ^( `
* h4 K6 D6 b6 F+ z+ W& M/ E 1 M& Q0 ~! {2 S3 M
else {4 K$ P" S' x& u- z! U/ L/ G8 U7 M
restore 3 H0 y7 f" [1 Y
di "cannot find maxp"
, Q1 J2 X- E5 ~4 F: G2 d C. z! j& @! g. U
* Z* g" Q9 @7 h+ ]7 o sum dx240
( S: |' p$ ^/ J2 f local tempmaxp=r(mean)
6 V. m6 u }3 f0 Q; s2 v
1 u2 l8 Z% y/ t3 N }% z( b) h1 I! \$ M+ [
! e" S' Z* }5 V9 T- Z& H }
4 j4 j L0 ^2 Y9 f: N% G- o
9 D2 b9 k5 ]1 V! V' R else {" f5 `4 @+ Z' v1 S! K' `( E; I6 |
4 f3 g; M5 B: T% @ keep if ddy240>=r(max)
1 L1 ~$ L# ^1 O3 |0 t 7 Z0 a( K7 h, P- i3 D
sum dx240
1 E: W% U* d2 s6 ` 7 E) S* _# d$ {& Q& z
local tempmaxp=r(max) 6 ~. }5 v W( B8 o0 x
restore
/ ^, W" [& u( } }; [1 \% k' i4 \1 i
# H: Q& ]9 J9 N* n3 s0 ]- H' p
* D8 @' r) }4 N [) m
* W4 ~. T8 n' Z" }6 Z3 c4 P" Y
. u% Z4 t/ O, ^' U3 k gen maxp=`tempmaxp' in 1
, f8 }" m- q+ R 6 N; c0 p" H+ d! w8 E; Y6 \- C
*240maxp
0 X9 L3 y z/ {" K; G
1 q8 F* q! Q* y( H5 ] # U/ d( ^& U4 M9 `3 V1 l$ i
*-------------ddy240pminp左侧高峰值-----+ M& I- A& K0 t) _; i6 R
9 ?; K+ P7 {( q1 ~/ N J
preserve
1 T: p/ k; m% l! X/ S; W, } ' w3 Y2 ?- Y9 v
keep if dx240<`tempminp'
9 g2 |4 G: R/ B* V
. I4 k0 J8 l4 y keep if ddy240>0
8 e% t0 g2 w1 w' t$ q+ \
4 f% x; z0 H8 I/ ? T. A" R count" |$ r. Q5 s J- b' ~' M ~) A
0 u/ S( u7 u) M4 y- K1 i. e$ P3 L
if r(N)>2 {2 e/ ~& U* b* `. }
2 C7 r) C- m7 ?) v pkexamine dx240 ddy240
! D& f% [# @& H# L% S2 M) N
1 U' b8 l+ s9 P5 y8 a9 C local tempminphddy240=r(tomc)
. r, h6 Q8 f1 O' a8 T0 }; U restore
, P. a5 v) y: q1 L W& |5 o5 `( q }
/ n0 l9 T% I5 p5 n, A4 e* R) ]& T
$ \' Q& u A- Y1 a; @; V5 N else {
2 F( @7 l2 A& b, q/ g" O( Z restore
4 C* N/ U. h* P$ `" ` di "cannot find pminphddy240"
1 G) Q! c, f9 i7 I$ h- z4 e
& x0 _( N! {) z1 |/ ~ 5 B7 U$ E% g8 I# [" j% r$ }$ S
sum dx240' ^' O* ?$ l2 _- @" E
local tempminphddy240=r(mean)
- O6 u! R4 K$ c# R# O3 w* x
& D. g- k# B6 E4 i7 Y0 y( E. g
: _1 I% `! b9 e$ r. Y% D" F }% g) T# S- x+ m" N, N% Z
, z9 i9 d# C" V1 t4 G7 o7 |; T
, G U5 F9 c$ k: g4 G % K$ u/ s5 g' N, w. j% H
: [2 `0 N) t0 t; {
3 n4 n: A- d( x: Q 4 j# E1 a% s" [7 `2 b+ J3 ]- E* f9 s
gen pminphddy240=`tempminphddy240' in 1
0 g( {, s# p! q9 z8 g' s9 f
3 n1 W. ?: s7 v3 p# ~, _9 I 4 D8 ~- B8 X9 _( J |
*-------------ddy240pminp右侧低峰值 -----------------
: N3 d/ U; \8 t) f# f8 m. Y8 q8 F preserve ( T5 M+ R, |7 j
+ W2 N6 k4 n* N! ?$ s. n. N9 g8 l2 g
keep if dx240>`tempminp'
: V: q& L9 {% H; x$ ~3 }
3 Q9 ~/ R# [* h% |5 \! N keep if dx240<`tempmaxp'
( R+ n' J+ d. {% U
; u) h5 r# X6 x- R9 V% g' x keep if ddy240<0$ g1 b k; t& [# L7 B F
$ O2 V) m) ~ ?, k2 `
gen temddy240=-ddy240
! [3 B- h: n7 k* @1 m0 | * _8 e* P* w# s6 t% M7 G$ g) d
count2 {! r. Z2 p- V: `# E- x; m
0 H6 X9 \4 r6 m+ W/ X' T: d; l; k if r(N)>2 {/ O/ W) F m3 }3 D" W! ^
/ a2 z' r! q* a) `
pkexamine dx240 temddy240
: n7 i9 _5 A) C
+ Y7 B. ]# ]6 [; m" e( N local tempminplddy240=r(tomc)% r" V7 G: b/ v8 Q% Z3 n& i
restore
) w6 T6 T2 }/ M$ \) x }
) J+ i+ j B2 g! e( h! l a 5 a! x7 W7 v, P' R s( O7 D
else {
7 _9 B# J! \5 X2 E/ ?; p
5 s9 ~% o- W' x di "cannot find pminplddy240"1 ?# H# R$ Q* J
restore( G. ?7 J# {. m7 o6 t1 l
& v1 z% Y& A+ u: T6 ]8 b- l
sum dx240: F2 t' J4 v' O7 `. P# E5 }. {
local tempminplddy240=r(mean)
; O: ]/ J% Q& H; l 9 B. j, b* d6 ^+ ^2 R# |& [
) R+ h* E: X% f# m: E }' B2 G+ B( P1 X1 j% x
+ m, z" s! G& Z; i, E! ]5 P( N0 ^ 3 I$ w! w' I5 U* E* _, {7 {# P
3 `+ g( O6 G* ?9 G( p& a' G0 @
# ]9 O( y/ R7 f# S& m5 G
" P# E1 d c( U. f3 u gen pminplddy240=`tempminplddy240' in 1
' s* a- C7 K: o) I' h J " l3 R, E6 C+ y) j# |
*-------------ddy240pmaxp左侧高峰值 -------------------4 U9 I0 g& ?! t- a- c5 C; n
+ _0 Z" v! w" _, T preserve
$ C1 ^. P: P' `2 w2 M' h
$ |/ K. h# d3 J( U3 K \! Y keep if dx240>`tempminp'6 ~4 h% W! z. E; R: f1 {2 w8 `7 f: J
% i' @) G% E/ A) q, [+ x, m keep if dx240<`tempmaxp'
; A" E2 ^- x% ? ; }1 R) G0 {4 X# s/ h
keep if ddy240>07 ], U+ ]6 w5 B5 D; q; O; ]9 e
count
% N/ l0 k7 K0 Q# ?- w
8 G/ M( N1 o; Y3 X. ]% K& Z1 v) @ if r(N)>2 {" J2 _6 Y; |/ w* M
# x1 U% w# c7 w" C" e pkexamine dx240 ddy240
& j) W1 ^* u5 S0 ] 4 M t9 O- f" q4 w& X: @! m
local tempmaxphddy240=r(tomc)
) v0 c5 F$ F0 D
7 |: [7 p7 F2 P, T/ ]/ u3 M! s restore
[4 g- f" q- ?5 v6 n- K }8 \0 U' O- r/ t1 e
* G+ u- j, x( p8 p# [ else {
% b; I5 ~: S: ~: x( X% h0 y' N $ M5 P& c( i# v; d* U
di "cannot find pmaxphddy240"
4 h% a- j8 K5 X6 v0 a' N restore
- F `: W4 s9 |5 H3 i K" O, i & B8 @3 i% ^7 f$ q
sum dx240
+ z5 U# `1 X/ o& y local tempmaxphddy240=r(mean) 6 v, S3 p5 p5 e' [! a# V2 h# Q
2 y" k+ w2 g6 D1 { * i4 X4 \. U% ~# {# o" c
}
5 ^1 n: F6 W; Y0 t F9 x ! I4 n) Q6 W) z
, t4 J+ ~9 \! m1 l' v. E5 S3 j% q7 I
' i+ W& X* Y" g2 ~3 n' e; x) @8 a- b; w , V) R7 B; m( q* N' m$ F
# U# [; p) O3 J 9 H9 Z% _/ N1 S. [- h! Z/ g
gen pmaxphddy240=`tempmaxphddy240' in 1
/ X% M) m( E3 n% o# t / g# L: e+ Y. y; S2 q* `
' O7 q/ U) y S* Y2 b( g/ {. _) ] *-------------ddy240pmaxp右侧低峰值 -------------------/ M# _( A# n# O, ~/ ?& h
: g, Y+ c( Z, s% c preserve
$ L6 W* J( m9 Q! c- o 4 {" C9 `8 y* k# s% j3 A& E
keep if dx240>`tempmaxp'
1 S8 T3 {. C; L& H7 e
/ K% ]4 B& u! ^7 ]4 g gen temddy240=-ddy240
" L5 ~- M$ b/ Z5 ]' |3 | " x! G" [+ g( @/ A3 r
keep if temddy240>0
# m& a* E5 k! u: D+ f4 B / u8 @# \1 p5 _" M# a
count
9 Y9 Y M$ R/ k( S
6 |# @+ U8 I, K% C" J if r(N)>2 {
' C8 ^. b8 ?1 s$ d& r+ W* I* x 4 {8 g( j0 |) g6 V4 S* _
pkexamine dx240 temddy240
" [7 e! i& @3 ^* ~
, T% F1 H* R |9 Y local tempmaxplddy240=r(tomc) + Y% x5 W+ ` L: O% X( O
restore
/ `) n$ p% _: g1 s }, q _' n" L0 R9 r6 m% J
- D8 Z; z2 D! F/ ~* C
else {
% M) n4 @) ^$ y! C* l- ^' |/ w restore# U9 D$ g- l+ Y
di "cannot find pmaxlhddy240"# U* m- F0 `7 l: i6 P$ {# a
2 S9 s. n+ U) p+ p) Q; p
7 Q0 G( Y+ q; w sum dx240
' o% O- y" S0 s* i5 m local tempmaxplddy240=r(mean) in 1. h! c+ R" H9 ~8 R
% u9 t7 T4 @7 T) k1 N0 ~
* W }5 R0 E1 i! B
}
: c$ Q3 K( O& m6 w9 P3 m& b
, ?9 `( ^8 K! v4 Q
; ?0 Z' F8 [/ s8 s * a, K& \9 Z9 T
. {$ ?# D+ `9 g4 v % N# T4 x2 \6 p6 @! J4 h |
$ `8 h: k5 O5 B+ H; d: K" V- j
gen pmaxplddy240=`tempmaxphddy240' in 10 W [& J) `/ k3 j1 G- ] j
9 ^' ~$ R1 _3 X* L! y
*-------------------------------------
# u& `% b& q$ U7 C, h0 |. v' D 2 k- s/ K$ _' s' d* V% [4 t
gen price5d=v5 in 1/20
c- |2 j6 W* F ~, \' p+ ?* I' v
& s$ r" n; |1 B1 W2 [ gen price5yy=_n in 1/20
3 P1 q& s: n+ U x6 Y
& N, g0 O" s* i- P" f gen price5y=price5yy*(dy240max-dy240min)/20, U/ |, {* G0 N. Y
$ w/ j, |8 O# C1 K+ M
*price5y &price5d' U$ t: h" P- K
) y2 K4 N* x1 {! c+ I gen priceny=price5y in 1- |. N5 Q m, |: g2 I+ q3 |: {+ u/ a
: k) s& M; y W! b$ v) s
gen pricen=v5 in 19 F- ]8 A; S, M: O- h6 b
* f$ |5 u# r* b _" r ! C1 P# m: u. u) }3 `9 O
*priceny &pricen0 @) [) i3 u+ J8 ~) [
; o! v! q" C" v" H! A
2 T. q: }5 |- Q9 f+ Y *-------------------------graph------------------
3 K g, b9 B" Y4 x $ Q4 {' D% u+ K8 g0 ~
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)
# |, S# y$ [6 O5 |5 u" w' Z! I
8 u2 i' H! u- G* ---------可选项目----------------------
8 `" e! I& C5 e*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
1 C s# A [; S1 b8 a+ ?; P}+ E9 k0 K1 V0 J2 f6 Y4 G
end) z7 w+ m, _8 s6 b0 X5 G: T
|
|