|
|
maodeng 发表于 2013-1-28 13:13 ![]()
1 ]& D/ |1 c( L5 Q/ _. hello 3002366 o: m& U: d' T* h
statement out of context: k4 u5 m% ]" Y; l2 ^( o
r(119); # {/ ?* v2 b, R
抱歉,最近太忙了% V/ X1 }; ?5 I0 h4 {
7 X: M9 b) b0 T M8 s& ]3 b300236 我用下面的程序试过,没问题* j4 R% X6 M" \- U
$ f. [1 m" @8 w& n你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试# X/ S- n2 u; @
1 B) C& L. B+ T: }6 m* r+ G3 a7 C' Ycapture program drop hello& a2 f3 e" |2 Z! r) e( u9 {- ~
' U7 g, D4 e$ L0 \% o. U
program hello
1 i; }! d4 ?0 i6 l' Q# y) i! s
( h5 `- ^: x* V6 Y; D1 y5 Z; C quietly {! p5 s; |9 Q5 b: v
4 p7 A* f3 ]8 y, X) O
clear; h9 e3 x( E% y; E+ h, h2 u
: B+ n& Y2 I+ D: J+ n# v3 }, M8 e' L
cd D:\stock\test\source
7 z) }7 E$ R4 u5 r/ f1 S, {9 o0 Y% p# }! L
insheet using `1'.txt4 r5 ~) d U5 C/ ~( W8 D5 |2 I
) c$ Y' T& I- B* X$ {+ F keep if v5>0+ y" |: p2 j- M
; } w8 [. p+ l! P gen vt=_n
8 S |+ ?; M- f / A$ _, {1 L" ?* z6 l7 C6 I7 i
tsset vt3 x4 a( ^1 T( |
7 J" i4 D z" ?8 Z! i* s7 u- z
gen zf=D1.v5
W, B/ \8 G$ {- u) K9 J& k$ B# D$ `: o: K
gsort -v1
# B ^ I6 E$ `3 r4 n0 C9 b+ g, X+ }
6 I- l! [5 A& [# r1 g; C. b' N gen avol=v7/v58 M4 }) a' Z* d) X N
6 N$ O. @$ T4 e$ @ t' {7 a6 p& j keep if avol>0/ y# e( I6 r0 \1 S/ H8 E7 Z( L7 m& U
) u$ @" J4 H: v# U
drop vt. W1 ]% z4 ]5 f( |1 o; m
. B* y! b0 p6 t- d
gen vt=_n
) K& P- v. m$ j ^8 ~3 m& X5 W + o6 ^+ s2 n4 U2 W
tsset vt
' ]0 Y& \9 N* {/ ~ ' n) v) x' v6 C; J* r
sum v5 [aw =avol]0 m* m9 `7 x8 b' Q. `2 Q8 T
6 X' I* f1 u$ G7 y. J$ p
gen amean=r(mean) in 10 b* E8 w" z. g* v4 _6 X
2 L' T) R- d/ W2 O# X2 Z3 q
* 总加权平均值 amean; q. a; P# K. N6 ?9 @' X
& \: G0 u2 M# I
& ~% h8 R: K+ j" m4 q; b
keep in 1/240; J, |( { l( \$ F5 O. ^
% _0 E9 G @; U- W; e
sum v5 [aw =avol]
, e: y& ]& G. p% ?, r, U/ [: x1 z
$ ?2 ]# i3 H/ v! u gen mean240=r(mean) in 1
- Z5 T, s. a9 {+ b3 K . t0 w: |) ?& Q) K( J4 Z& l* h, g
*240加权平均值 mean240$ {: j& }6 Y. p7 L6 @) O
- x s- s* v/ M' G2 L% C# U- y set obs 500
' E8 Y$ { z0 e( g8 m# O. Y# j . L" Q+ ~' |. a9 a. U8 V
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph; t$ C. W; W6 P5 z' a! ~2 r
" M+ f$ n+ [, S' H( R- n4 b *240 kdensity(dx240 dy240)9 V: ^& l1 a8 x: f6 I
w8 t0 m9 F# A! A& K
sum dy240* H6 S6 f8 a' v# K0 s* Y4 R& ^7 L/ a
9 f( [5 t& N/ {( k- |. @4 h* z0 d gen yxis=r(max) in 1; F- y9 \4 I6 S
& N- G1 G# j9 i$ n% v* v
gen yxis2=yxis/2
& }6 G+ b A" T/ x % g/ V, Z! P7 V
*yxis
, ]3 \! w/ ^& @4 d& k . i4 g1 R8 O8 s$ c
gen dy240max=r(max)1 d: \/ s1 ^4 P. ^
4 y$ @4 w& g. a! x& p. O
gen dy240minp=r(min)
9 |. H% D. H! { ' ^' }+ H& i2 C' M: L9 O8 [
gen vtt=_n7 y! x- E4 f) v. {- P
8 o! _7 q6 e! @ G4 H/ x0 ~" o
tsset vtt8 @# r* _8 e( i# g7 h8 g
7 B! c: k+ ^" R% m gen ddy240=D1.dy240/D1.dx240
. r( G9 m( r* m8 k' t Z
- w; h3 a, E) d: K5 L4 g sum ddy240* ^2 x6 h4 c* u
+ S4 h# D+ O0 I5 f; L0 q gen ddy240max=r(max)8 g- l) c+ Z3 ~# m0 D
4 x+ [2 x Z7 J! G gen ddy240min=r(min)
/ n3 y5 j8 P( Q4 S& H$ F: V
9 {0 J) ~0 D7 L$ C( N' O& ^; A gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
6 [! Y3 W1 Z7 h, a( L+ t
* w7 ]6 |) e8 ?3 ^' v sum ddy240g
1 n! g7 t# Y5 F: U& Y
- O% P/ Z) X7 K) x4 O gen yxis3=r(min) in 1
1 ?. _. a3 X, T& S% a3 u. N K( F) g4 R . m6 D% s& [0 O$ d) l$ `2 W- l
gen yxis4=0 in 1" o+ D. v! H( a3 \. H
" a" M4 }4 K! m
*ddy240g 0 D7 S" z1 X& Y+ E
7 V4 I) H# b* u& [: n5 S- ?7 j # q6 m: S, Q2 m% _1 w7 M7 `* D; D
preserve
% j% n0 A2 w# _) A( U* Y, e * U# t( g9 y9 T
sum v5 [aw =avol]
" ~: _" } |% M% H# j; Q& ?# b5 T
6 j0 M' ^3 `4 L keep if dx240<r(mean)
. B- L% v' D9 K) @8 K' l , L) P% z* X, O/ @
sum ddy240+ V3 [6 [9 [" ?% x. C) U; a/ O. F' q
' x; n( O5 B5 D, [: [' g2 L" ? if r(min)<0 {, @5 L2 I9 p- U- ]) T$ L; W& [
; j% W$ C# u9 S" v. ]% j' N
keep if ddy240<=0
7 W, U/ H( b0 X* n' z 3 M1 D1 h* O8 U( ~) f
count
( z% d' m! ^( _4 K 7 f& i& w. I; j. J
if r(N)>2 {
' \" p3 K- g* G 3 }2 z9 \% H; E" x* U$ n/ Y
pkexamine dx240 dy240
6 m0 o$ P, }: n
) W, R2 S% c+ Q/ G: |- D! w& t local tempminp=r(tomc)
, L# C s# S4 J# ^/ h; r9 } restore
1 J" L% Y" s0 ] }. k6 y. \& B6 D( B7 R
2 V9 F1 c8 G8 b0 W else {
9 p/ @( `# d ]- z6 J4 y8 }; [ ; B! V: ?& U, ?7 |5 j: O! m
di "cannot find minp"( r" ?* \5 A# y2 H) W
& L! I+ O4 A: g! W* Z" J) c restore
T f; z# w, E& a7 I6 t sum dx240
" H( N# s$ K8 q9 H. J% A9 l local tempminp=r(mean)" |1 ~) X- \- h. z; x
( f* [: \9 z7 J; x; ~, r* J" \2 J }3 B0 `! v: B# O: w
}
9 J' s# o9 w* G% W( l0 @6 R else {
% H/ z: Z+ h9 K! L$ u 6 t$ v) N+ S0 r# Y. s
keep if ddy240<=r(min)
" x; S- g6 H Y
6 g0 E2 O& J* s! x* y# K sum dx240
3 k& U6 t4 i6 Y) K/ z) A $ r' E# z, k6 |" O0 C- ~$ E; W
local tempminp=r(min): T0 k. V3 m2 [7 L, N* Q
restore 6 ?7 @8 Z, k. U! `, [: B* }* N
}
4 Y/ Y9 s5 r9 A# A A- j+ Q a0 {% j" D
7 Y) D4 |- e4 T b3 }- ^" n+ u! g3 N9 y
gen minp=`tempminp' in 14 C8 ?" K8 F" X2 c' d/ r! H
*240 minp
4 N0 H" Y, m: ^/ t2 V# E* p: F! m) G% s! O
) g Y" @/ |4 Q - t) A* \6 F4 R7 b& o
preserve
; I! }3 I1 ?, w& T0 D; _* t
/ f6 f7 @ H) `3 K sum v5 [aw =avol]
. k) S$ T8 }2 O/ t5 w, y : x& f' h- [& H. }( i' p/ e! O
keep if dx240>r(mean), |) d% o1 V# H0 e
* b' E. q; A0 J2 y( w sum ddy2400 j& o1 z p* B( d) [3 V
, u1 b" w0 ]+ P+ W if r(max)>0 {
! q; {1 z4 }0 `2 l4 H0 J$ Z# U, Y 5 I2 }# k4 C: y) Z8 x; R0 j
keep if ddy240>=0; q+ s: b- e; |0 c9 K2 j+ m1 T
6 B9 D1 r5 f* N6 o4 o count
( G a- G8 d0 v! S+ O
* L3 a4 F2 g, @ l2 I2 ? if r(N)>2 {
4 X, Z u' u# k & M' g% m' t+ k M. j
pkexamine dx240 dy2400 X6 O2 C" @/ E/ Q/ @, I
0 m6 i: z- A" G6 K9 p) @* C local tempmaxp=r(tomc) 7 n3 b) [) l4 \4 r+ `
restore
5 s6 A7 n( g0 r) n g }
# z7 d+ J- _! K/ J3 w
# }0 P- J! l ? * |( z7 u4 V g, ^& e
else {
7 ~4 q7 G" v1 p, q! n2 g' e! L restore $ e& ?0 H* L: {
di "cannot find maxp"
. y0 U! K7 g3 h( Z; B+ Y
# j5 a2 J: c% X3 L* v
5 [& ]9 O+ v W9 o sum dx240' {, ^. ?, l8 o$ [9 y
local tempmaxp=r(mean)
. I' l) C5 a* p4 k% N1 J* e2 ^
* K' m2 @2 `5 Q1 z4 y1 y9 `7 M }
4 m" T7 l+ O" [5 W/ I4 v
8 O0 {9 F3 `1 E# X2 S }
9 g4 h: o- l& T4 r( k6 e+ E , P" P7 }3 @1 X" ~
else {' E/ |9 u: s! d" k. n6 U
% Q7 l6 U3 z% }
keep if ddy240>=r(max)7 S2 u# a$ Q' u' o2 A) h
; X: B& O; ?) [- p' c6 k
sum dx240
y- R/ C- h4 m c7 L n y4 N $ ~9 H6 J% t7 y9 c R
local tempmaxp=r(max)
9 t9 ?1 E. `. K$ E# y3 i restore * e: ], k& A" ?4 z* t( L8 h
}
6 q. K) n8 `! L6 q w/ {* u ; ^- u) g& b$ G) l
8 r$ g6 R+ }) n' i6 H% j* s. ]
1 @4 e3 [' u+ z3 z* N+ M0 `5 ]0 {8 ^( i1 R
gen maxp=`tempmaxp' in 1) u2 R3 H6 S! R& J
, N8 ]5 r8 q/ z5 U6 Z$ x *240maxp
. U, c3 L1 z$ A% e! [' F: v2 H * J7 H `7 m! J7 V# Z1 X# p! \" k
9 m( b6 A0 O9 x \: O8 z *-------------ddy240pminp左侧高峰值-----
6 ]) v. G$ E/ { Z
% c8 M) ?6 |+ h+ C preserve
3 n" U/ J: v. r, {- p6 m6 t. _ . Z; J, j8 Z6 z+ T' D8 k1 A: K
keep if dx240<`tempminp'
+ T. W; k; H* Q4 Y3 D" E 0 s2 V4 t/ ^. D
keep if ddy240>0
) M& v( a/ N3 z4 f* H8 R
) B. X. v: H! B. q. [& Z9 F+ G count! p9 t; t" U0 ~% k
# h$ b/ h: w: ^& a! i( a if r(N)>2 { A: O; Q2 @7 R; m2 U8 ~& u
; b. J0 [: X4 j& k3 N
pkexamine dx240 ddy240
! a) G1 {) [* g" V3 S& f- f6 M0 @
6 @! ]4 v: N2 ^ M6 M8 ~- m local tempminphddy240=r(tomc)
, R- u+ j/ }, e! @: c; F restore' _2 u4 q2 v) K# K5 i; W- R
}
! O4 Q, Q0 P4 ~9 W" K* D
+ O& X+ E; L/ r! n, z else {
, }; |; v2 h' k* [. D restore $ ~' L0 L7 @0 r. r; J& Y5 q( t
di "cannot find pminphddy240"3 N# x8 u4 a5 [2 c
4 j/ a7 G) W: `6 @. w A
, M' p& d0 X1 a+ F3 |1 f& h3 @
sum dx240% D$ K9 s) M8 ^( ^! i4 Z; _
local tempminphddy240=r(mean) . Z) R, C" p8 Q% C* V5 D( G' ^" E" s
5 d% s7 |0 V: j4 Y, k. }& R4 c
$ q+ j# e$ t0 R2 a }
' ~; m2 C# q+ y2 ]! t, D
# c8 U* O1 D$ Z; P; a/ y& Q# g' b" { " c, R& b- Y5 x, g `5 p
% v2 K* g/ \6 o! w5 p
& @; K/ q/ y1 o- \
4 C# o: j8 m1 P) |4 Z6 f; r + Z: u( z1 K: P: J i; b2 n, O5 a
gen pminphddy240=`tempminphddy240' in 1
! x% l- b7 }1 t! q) F7 n4 J2 D
$ {+ b* {7 K0 i
% i5 C% h; u* z, \% L1 O *-------------ddy240pminp右侧低峰值 -----------------; W% b; m2 g& g0 Y, k
preserve ! g9 D: m( ?" d: n8 X, P
* q! S5 j0 d L- g- W
keep if dx240>`tempminp'
8 w0 D, I0 p, j6 e5 N$ F $ X% u) c) C- W
keep if dx240<`tempmaxp'
# g$ r4 ?/ {: D. }9 {" u3 V 2 J5 n5 I" Q7 A* y8 v, w" B
keep if ddy240<05 v% U9 z1 f1 }% B e
4 t% y, v. }. U' n5 f
gen temddy240=-ddy240
2 t' n q# Y1 j+ i8 D / l! W+ Y# \$ \) [; h; g
count; @' D& y( N; ~5 e
4 J# _0 }9 v% w7 R i
if r(N)>2 {
" a* v5 V# \3 l [6 q" b4 |% j" x) V
4 N7 k! ^0 f( q5 J pkexamine dx240 temddy2400 O0 @9 N+ g6 m9 ?$ [
( @# j+ b& d8 `0 V9 M
local tempminplddy240=r(tomc): E) j( e, j) Z. ?" s
restore9 s" k! j9 d! K* p/ P7 O, J
}
& ^7 M3 M" U$ X! b9 w
6 i6 x6 K5 O: _6 p6 y$ A r) m. K else {
7 P% H3 m' d6 G5 E" }+ P 8 |6 c, S4 t0 @; I1 {
di "cannot find pminplddy240"
% ~# x8 \( c5 D1 e restore0 s' x0 A3 V( u" I; b
1 s$ R8 _: }5 k' M, q6 S: O sum dx240
0 w# g. _3 }5 X q5 Z local tempminplddy240=r(mean)
% u! F4 b( s" c ; F4 z1 i: @: j
# Y% G7 w; a) ^+ g }) ?+ ~# V% ^" [5 O( h. R
* ~! f% I: _% G" I
1 D8 J- z; L9 j8 c O
; B+ b3 q6 _) C ' T$ Q6 A: _5 m1 B0 s3 i
5 U( `, S3 D7 U7 k% b
gen pminplddy240=`tempminplddy240' in 1
* m. \% z0 [( H' o4 a) h; k$ X ) _' w0 T1 W- O. ~ J8 _8 A: x
*-------------ddy240pmaxp左侧高峰值 -------------------
* B7 t7 a: X3 v- e+ c0 w
+ d3 e5 V) {/ m% {2 i, [5 l v( r preserve # m1 T' h( w8 b6 {, ~8 B" G( f7 P
5 ~, I+ E: a9 j keep if dx240>`tempminp'5 g0 ]6 m1 c, o1 U, V$ i) s7 d
- b0 E6 h$ S: d, ^% s4 N+ j keep if dx240<`tempmaxp'
# Q% y8 U" F4 m& v4 U
7 b) s1 y, g' G! e, d9 t( F keep if ddy240>00 ]* I5 W" x B4 i" |* I
count
# w. h- I3 V2 Q9 W, _" i8 c) G7 q & q3 c8 H1 g' E
if r(N)>2 {" q0 s: q l! x* p- {9 ]
: e4 u& b% s" `3 ~ m1 k pkexamine dx240 ddy240
' f0 ?; x3 E* H$ P1 _% N. @
4 s) w7 b6 Y0 O; O- | local tempmaxphddy240=r(tomc)
; w+ D8 ~" }! I5 c' g 8 \/ q- @ r/ q0 Z! f% V, ~
restore
7 @# W8 l" p( ~6 E2 x }! Q% k1 C _4 J6 w6 t( Y
6 a' J8 K# ~- r- B: h
else {
# p$ |' C! m) [! Q8 H* p
8 y. Y( `5 l& e0 E( s* s di "cannot find pmaxphddy240"
& v7 f: ~% o/ Z+ Z4 y/ w3 R restore5 f8 ]5 o w, y) q4 U; y' I- s
1 }) j* |6 a4 P" ]7 j( S. L7 m
sum dx2401 j K) I7 F: }) c, Z4 y0 J
local tempmaxphddy240=r(mean)
, S% n, ]9 i4 S4 L
# i# j+ P7 J3 \6 K" E( ?" i( ^ + ]; ?5 L5 Q/ U7 Y' X, f* V- t: D
} f( }+ z2 M& M1 Q3 H1 G
% B8 ~% P+ p& v+ T' C. }$ ]6 ^, t
( i8 a+ v8 H$ I, V( O6 T% n
8 `1 N5 _' K* @ N" Q3 E " I: u) o, k* \# t! e) y
8 _! f2 l6 l7 G) |0 w
( k( I* J! \9 }& j
gen pmaxphddy240=`tempmaxphddy240' in 1
{ `4 j( l" ]4 x7 z6 h
% n% @3 r- t( e9 ?* |$ n) W
- \0 M4 ]# H' V *-------------ddy240pmaxp右侧低峰值 -------------------
# |1 o# s& c4 R) l6 h3 E 6 Z" p7 x, ^, X
preserve / Y1 U& C/ X% C/ w/ T. G
" G- `% O1 c) _, Y6 U
keep if dx240>`tempmaxp'2 k, L0 z. o6 _. P, W5 e7 t+ L7 @, I
3 C( v; u& s- l, z0 R* [
gen temddy240=-ddy240
* f- _+ c ~( c$ X1 m1 p h1 r( O ) S( j: s: H6 h
keep if temddy240>0
% g( v% s3 s3 H: D I# l
' a6 ?6 e# _2 b" X* g count
# d. f* O2 u7 s$ ?, ]+ H' l1 g
- e; B" C5 T3 X% Y if r(N)>2 {( q) J, ^& A7 S$ ?- B! P& u6 |1 m# e
# Q5 s' ^+ n" q2 [+ J
pkexamine dx240 temddy240! R( j; C' b% c* R, {
( ~9 d! m5 j! ^, f* A7 R
local tempmaxplddy240=r(tomc) E8 K6 \) L0 j5 }4 H. |* a
restore
& X5 X% I- D& @% a2 |* { }# d2 x' Y( ] l% L& H
8 Q7 I2 ]$ j1 K, W else {
! t# S) \8 {9 G0 Q restore# o5 S+ e) v e5 u3 O* C4 ^
di "cannot find pmaxlhddy240"
6 c( P9 m* E, g0 U1 W 3 j( j2 V( l5 I' @0 \
$ ~4 b6 n* M: e; |# S
sum dx240
3 X$ O5 J) W6 H- C: {& |( { local tempmaxplddy240=r(mean) in 14 L' P1 @1 I7 G$ d6 r
" ]5 Y9 n7 V# @
* A' ]9 C1 @+ c5 P
}
1 a4 u4 ?% e7 H5 s
) V' {$ C: j1 u% P7 q7 d 4 W- F; N- R! Q# D
' h: k5 G( p* {6 p+ R, z" Z' r
% Q0 R a) h; ~* a( v% K& [
7 p) D! r/ o% Z/ e1 E, L
) Q _" \' s; w( _2 q
gen pmaxplddy240=`tempmaxphddy240' in 1
* O0 n0 k$ K8 [. u 5 U6 f8 k0 p0 U7 ]
*-------------------------------------" [7 L; f3 U0 d+ y/ @& R9 }
5 I0 d5 X+ S0 P& O t
gen price5d=v5 in 1/20
2 J0 ]4 N7 |! p e$ Z( U4 v
1 V) H+ h1 `$ U9 U gen price5yy=_n in 1/20* R6 x" H% \4 ~5 \$ u9 w
: J$ n8 d6 E. H7 v( M/ m4 R
gen price5y=price5yy*(dy240max-dy240min)/200 Y1 e5 ^4 p+ W$ _+ n8 z7 A
2 W; `6 r/ t7 I( m. a% ^$ v
*price5y &price5d
! X$ m4 O2 W' S
. s0 d# u7 K' p gen priceny=price5y in 1
+ W. }- H. `& n" c: b9 \ 7 c% R" U( ^+ D' U/ P% w
gen pricen=v5 in 1
/ K8 n5 R3 \: j3 [, K, J
; a2 Y/ h [9 K+ a! R7 y @2 K* n f" H7 {, u3 m
*priceny &pricen4 W7 R3 f( [+ k0 k2 T( v, b# V
, H5 V F; o! Z' ?" \
: x; }; n0 c* r6 J *-------------------------graph------------------3 K5 |3 X$ G8 \ |
9 t% _. k7 b* @4 Y+ I. {2 o2 [ 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)8 u9 m: F* y, q8 m% z5 u% i
5 b# c# a- k/ J6 [. D7 m! `
* ---------可选项目----------------------; w' F6 n+ ?' Q2 h6 Q
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
( ?! J; j" F# ~$ ?3 n* B}
( _, e) D. F9 aend
0 U' n' S R4 r# {6 b |
|