|
maodeng 发表于 2013-1-28 13:13 ![]()
# p; ?) |) H0 {1 X9 x- j: B( D( R, J. hello 300236# |! ~5 I( L2 q
statement out of context
" O' ~, o' M2 f! b7 g- f+ Kr(119); 9 m# p7 `, ?2 U- g
抱歉,最近太忙了
" g- D1 A* _1 w1 E9 ~2 d4 A- u* r
6 m4 B+ J& }; m( D" ]300236 我用下面的程序试过,没问题3 k7 D% X# r. [
0 j4 \! Q# M9 E P, B, J
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
/ `/ A# J- a0 d2 E
; ]% ^7 U% T, v) n1 ~: Gcapture program drop hello
5 Z- A+ b) Y) Q' Z$ d7 K7 c. |0 ]* G8 r( L
program hello; ]7 r5 Z2 i7 x
- e5 ?' L# Z; O' D, Z* l- D3 p
quietly {
2 R, w# A4 Y/ O
% J+ E$ ?/ n1 X2 B! n9 Q- f" ]8 |clear) i3 R2 f$ ^* n! L! L7 ]
+ C- a: C) `3 N% ]5 P+ u1 Z9 j
cd D:\stock\test\source! T; o: i5 K* f8 I" L
2 j7 O; o# s6 X g3 _- d6 P1 C7 V
insheet using `1'.txt& n) s* p3 `9 P& \! n3 ?0 p
8 { ?* T' G# U# z, J
keep if v5>0( B9 @4 ]# H& a6 ?
7 o2 f2 X) e. I! ]. n$ I0 e) }
gen vt=_n
% o% \$ Q, c3 @9 l4 W 4 ]6 w3 R# ]- B: t3 _7 M
tsset vt
0 h, ~6 S$ \, c! `& n1 m: a4 E# X
! Q9 Q( E& A* i gen zf=D1.v5
: H0 n: J. m9 U& ~8 J! }, F3 a! L8 C% v2 O. D
gsort -v15 Y) Q: ~9 f+ g+ z& {0 Q
3 ]" I) L, z) T9 c& q6 \) K
gen avol=v7/v5$ t% q( N/ X9 m0 r
% q$ o+ U n% w& K6 E! k
keep if avol>0
* G' h Z$ x! u: N5 Z" y/ T # T/ u, W% ?/ b7 j+ D
drop vt+ k4 u. S8 l5 ] L
" \8 v9 S! ]; y5 z+ U
gen vt=_n" x& s3 O) V6 y# S+ P4 e
, d% R% z9 U J/ _7 a* x
tsset vt
j; ?4 B8 }- x0 A7 y+ g: H+ ] , C" a+ ?, N" Y4 Z
sum v5 [aw =avol]
& G3 a* @$ a$ S8 ~, H* r
' U+ D, G( Y* `! Z gen amean=r(mean) in 1
$ D: w; e% ~+ o# o7 t5 O q( j1 [& P
6 F2 O5 G8 _8 C, Z * 总加权平均值 amean
1 K) ^- D3 q' }! a, x" h, ]4 Z ) w) P' k! x/ a) Q8 F
4 P1 U2 [8 A% ~5 X1 H, x keep in 1/240
1 E' `* }' `% H" ^6 @$ ?, k' `1 h! T8 E. p
sum v5 [aw =avol]+ s5 z7 f3 A/ m! } t' B2 h9 R6 Z
2 {4 r& W7 i! @( p: a! P
gen mean240=r(mean) in 1
5 `# W9 O: r8 [5 y 8 v8 X* G, j: s2 m* J. ]( I
*240加权平均值 mean240/ D5 ?/ c+ C& k. P0 K
# h, `: I4 i9 L$ L/ p8 l set obs 500 1 {0 ]8 L- i$ ] }% B
! P0 d# \- }0 E' n
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph! f0 m) q" a. |- e5 a+ |
3 \) I L. f! `# _) ]& d *240 kdensity(dx240 dy240)
1 p1 B( f' }# e; h. K3 s0 c/ M+ E ! E3 ? K3 w+ e# J5 Y% ]: |' t
sum dy2409 ~8 X$ b5 h: C5 T. {
3 Y% s# M8 p* Z G6 Y gen yxis=r(max) in 10 N# \) q; T$ m4 W
- F' t5 R2 r4 q8 U
gen yxis2=yxis/2
5 I g% h# z- A [( ?9 ~ ; o9 \. ?! j( A4 M
*yxis, f/ [2 X- P, R0 U6 w* {( X$ O5 R ?
# y0 s! Z7 R- f# {7 n+ g$ ^8 J0 ~ e gen dy240max=r(max)
5 R6 N$ c3 `2 w! U. m 5 V, y) j& @* Y, q& D
gen dy240minp=r(min)* k+ l* D; l9 @4 J8 Y8 Y2 S2 v6 }
$ H5 R( t6 I r4 C gen vtt=_n
$ b* F# ` D3 \$ y' D) o* [" n/ q( q5 v6 s; e
tsset vtt4 T; W) i) v8 G( Z* n6 z; f) a& ^1 v
7 ?$ i" `+ O1 {- L$ I/ ]3 A gen ddy240=D1.dy240/D1.dx240
! U5 c* A. R/ k * x8 O4 u% D) U2 N! F& ^
sum ddy240
8 X. I% |/ K' w% v9 y; f& b
3 E4 Z) M# U, `2 _# Z gen ddy240max=r(max)7 S% \' c2 H; f- R( D' S) W4 T
3 K. i+ |9 }% P5 L# h
gen ddy240min=r(min)$ o1 T1 j& R I- p) r g/ m5 U
+ L9 Y0 f8 V- o$ e
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)) L% M( {0 |5 }
8 ]8 s& H' e$ v. o
sum ddy240g9 N# e3 r6 H4 z% m, D
% U8 J% K/ @/ D+ D# e0 I1 M% o
gen yxis3=r(min) in 1; s3 [1 C- ~2 Y
$ m3 ~0 H# v0 r0 f' X8 U gen yxis4=0 in 1* z a1 b+ i+ K
8 Y: R: ]4 W( _9 ~: C *ddy240g
, l3 o7 d6 h9 j + r7 X. w( A/ v2 r) M
2 N* b! _& b6 Z+ Y% d% X3 d w preserve
' w5 r/ W2 c* p+ [7 R6 w * |) w% E, l' [, H
sum v5 [aw =avol]3 a# H- i+ g( p, E) j) j. i
7 E; }. K1 Q! y5 \; T$ c7 [' Q keep if dx240<r(mean)
% W% w5 I) {- b+ N: g % ~& g& l, W) [: o! a) m
sum ddy240( K6 \4 _: K) u) L5 M
1 s+ ~( e5 _. E/ s. _) j2 G$ U
if r(min)<0 {5 t7 S+ v! y% v! E9 Y" t
* n: n2 w& `8 C$ S$ P3 ` keep if ddy240<=03 @5 T* y3 F+ R. ]1 C
6 E6 E0 o" j4 i2 ~
count( O, W1 g. {3 @8 V+ p
' r+ L7 d6 I, G1 @( A. g3 g2 @ if r(N)>2 {
- Y6 k0 E6 v- w7 x ) d; w1 P8 S6 C; ^' T8 t; U) {
pkexamine dx240 dy2404 x n; _/ r6 S& H/ {% d4 F3 T
5 `$ V6 Q/ f. N- \
local tempminp=r(tomc)
( `0 k$ Z- _( G8 H& s: K8 t restore r0 }5 ?, p& T" [* x- j9 ]
}; G( o4 [0 g* L) g: c N
, m- l9 @8 [8 O: I- F+ B4 v
else {9 o" o2 W1 T$ G( A: I6 M$ U
, Z3 B3 P. [5 {& X+ }# Z- v& Q+ R di "cannot find minp"3 D# j( R8 o. @# s" s8 r& [
* Y/ ]( z5 w6 ?: [; A: q6 M restore # M, T' m$ \% _. @$ D6 f! a
sum dx2401 j( j- C& Z c. D: c
local tempminp=r(mean)/ _1 r- {( I( d# H9 N
! `3 l+ U7 U& N1 K8 @% w0 ^ }4 R5 @ n6 }( ^% ~, U8 }
}
% J# U. q# Z, I+ n else {
; d8 C, x3 q; |) V2 t
: Z! c6 r& I8 n; Y k keep if ddy240<=r(min)
% E. H( C3 M( E; K
* L) x0 k) [- w7 m sum dx240
3 L+ w2 j$ P8 Z3 |
7 G* G. F9 H2 W+ I9 X& M- T local tempminp=r(min)
# j: X$ J6 C @( {! \; a restore 5 k6 [) j# ~. v- k5 W ]
}
7 h; G2 ^6 G2 E) c$ ~' v6 g+ @1 R- ]' @4 U# N+ L
; N A% F7 b" u: m# j8 c
8 J8 E( M0 t0 l* c _6 D$ M) | gen minp=`tempminp' in 1
. w4 y$ ?( k* }4 E% c& [( } *240 minp
9 a9 D8 ~& k: I* Q+ _) _7 W4 G1 z1 h) Y
2 N% V% f8 ^" J9 j
9 i" y! Z+ @3 T5 \- d$ H preserve
( E- s7 d3 K/ W h( P ^7 I- \
* R8 q0 _% ~% M9 W, p& D9 }) D sum v5 [aw =avol]: V# g c- [4 `6 |% d6 z( h
0 O: D( Z9 j" s$ O! ]) W7 C
keep if dx240>r(mean)
; l& F" g3 } Q9 P 0 ^* ~. }: Q( }6 E. m
sum ddy240
$ M* O% M% H: ?3 {, l8 Y
( t3 A8 Q W$ \/ @% [( V if r(max)>0 {# Y6 e5 d3 z& Z& x! g
2 ~, j3 ] W, a" _1 Q& E+ d
keep if ddy240>=0
; c: F' k7 g. A5 L( H* g" R1 n& ?
( \+ W# k3 j5 w0 e7 E' j" F count. ^6 W$ a6 c+ Z* ~) J
9 A& U% f5 f; \4 m" N# k if r(N)>2 {% d: I4 I- ~0 Q0 J* x# L0 s! N2 |
* z: ^7 V/ B+ i1 `0 R
pkexamine dx240 dy2408 q$ }2 I& I, I3 s0 L( Z. Q- s
+ O0 F0 {4 v6 X6 z5 P5 l local tempmaxp=r(tomc) 9 V( g2 x, e H' s- J7 S
restore
# p- i; @6 H6 C* { }8 T$ A2 i+ v/ [: C0 q' K. q }
2 N7 H/ ?0 ^9 N - }5 ^% R: k, P% |# H$ O0 P
else {
( V4 G; K J7 @3 ~! ? restore
# I8 \5 Q# ]3 _8 {$ }8 Y9 { di "cannot find maxp"
( D) J+ }- A" u5 {$ c$ L
# T" S- K' o, Y1 X& _# } 0 e9 s- l# ^2 U9 r V2 f
sum dx2401 u1 W) ]! x. v' E8 b" ^2 k: J) y
local tempmaxp=r(mean)
# R1 @: o/ F7 e8 {( J' r* r
0 n# f, K1 A1 `" P" ^3 O* q }, D3 ~2 U9 m7 W( @. t
5 f1 E+ C4 i0 p, k }* n" a4 d# Z4 Y1 Y9 \
3 k# S- _+ |" j: \8 @ else {
0 \. r7 p+ V: R' B" T$ z + K% e. i+ x6 d8 T' }
keep if ddy240>=r(max)
8 q4 m( d2 {! u* z' T ) r2 M" f( y' H u/ A& a. r* |
sum dx240
0 q1 d4 R: D; L' p + t8 e- Y# c) r9 {9 s6 _
local tempmaxp=r(max)
0 o0 g; ~4 z) L1 R- E restore
* J8 J: _% J( z2 J: O }5 J; O# I: n0 J7 m
1 A+ o. l4 }( H Z6 d Z% p
: P" d: ?! S8 E & y( I1 }1 G* G# Q% E
# M3 h- v: L. X- ^, y& K' Q2 ^ gen maxp=`tempmaxp' in 1
9 E2 y$ i3 `7 z: q3 W
& i; y$ A) D/ \: r *240maxp# F5 h, A0 u7 N8 u4 S# L
' X; [! C0 U6 ?8 W+ X- z9 V: P- Z
; W) x. l7 {# \, S3 U7 y1 f. ]
*-------------ddy240pminp左侧高峰值-----# {# ]/ k' @0 b7 ~& {
5 C* L5 d* L1 y7 ?! Z, L! J5 D preserve ! c' @8 H1 Z! j. S* [
9 Y% n, |) g, U+ Z keep if dx240<`tempminp'' Y# i/ E, V+ {. [5 w
+ s7 `7 K7 \4 Q" B4 w, X. k2 h" i
keep if ddy240>0# u% j8 [8 G2 w; t
4 d6 P& `4 S) a1 N0 A
count7 O, d8 ` J {6 N1 y1 i
( ^& p# U: t1 A$ a if r(N)>2 {/ v6 w: |; q# o+ ?7 E& p
* f% I% c" j, K; `6 L
pkexamine dx240 ddy240
' y. o; q( i6 W( E
( m7 \9 Y/ l V local tempminphddy240=r(tomc) ) B8 P/ s. A5 f* K; g
restore
, ?% c, n0 j1 S }
5 x L, A: y' e2 l
" u, \, X4 u+ q# D else {
( W4 o- U/ m5 j' [& F6 [" C, c; E restore
( B4 P# Y. Y- L di "cannot find pminphddy240"
0 C+ X7 L# d2 [% y& s& c5 E
( l7 O# x- N, U( k3 D0 ?0 g # _# k& R2 B3 P7 i2 h$ e
sum dx240
0 r- H& n' ^9 a7 m# K) a& f4 g local tempminphddy240=r(mean) 2 p- p8 @) E# ~2 ]' v
* K7 M7 X$ r0 M" e4 `
) n% N# b1 h- } E- m" Y! T
}
O% b0 z/ D: ?
# m. v: N4 c9 h- V$ k7 r' |& f0 i ! j9 j" y4 [; }2 p& i) z. m! |$ x
% P8 h' r, m, T6 v * d$ S, `* Z/ Z
& e4 ]" N: G- f+ O
2 ?* ?3 n6 h8 m! H6 d# } gen pminphddy240=`tempminphddy240' in 14 ~ M( K' Y8 S+ a9 G' j
5 d t. f) a. _! g) d2 O2 a5 b " w' v( N+ S" ^8 K' z
*-------------ddy240pminp右侧低峰值 -----------------
/ i6 i3 E' T" z4 {. d+ y preserve / ]9 |# }) Q; U4 f) V! @
% T) {: |, \% W2 r) M& B- x# h keep if dx240>`tempminp'
+ _% R. Q* Y. z# c1 F1 p 1 I0 w2 i. a. Y2 z% d) u
keep if dx240<`tempmaxp'1 i$ F# d; Y. S# y+ I
( B# | B& \- y7 w6 W9 I v/ N keep if ddy240<0
! C4 X$ v1 K- |5 U( v : G# b0 U$ `/ r5 V
gen temddy240=-ddy240
( {+ m) e1 F. ]% t! W; [ ) `1 F$ f8 n# E9 h8 d \- f
count
" a1 l. \- h! o& V& P" l ! Q7 c. V' T# ?. X6 @
if r(N)>2 {' f0 r( N1 ?: w9 x* u; G
# c+ e4 z* X9 h' m8 O6 M
pkexamine dx240 temddy240
' g |* v$ Q% I7 ?' K3 k
) ~2 S2 ?& A% @' k* E1 w% T local tempminplddy240=r(tomc)
9 P; G- U' e! N* K1 n) u restore
+ ~( B, F! {+ {7 X F& z% C% c }
) P4 G* W+ Q' d, |" n
) { u9 D5 d t: E8 O else {
* ^; c, `$ D0 U, v& }, j
) V' B Q M4 c' c di "cannot find pminplddy240"+ q) A( ^# Q# t
restore* F- G/ i7 q! G/ _, |9 q+ F
) L; w& h3 }6 D+ Y& g& c sum dx240
i9 B5 a# m( C( F2 Y& P local tempminplddy240=r(mean)
0 S- b6 [& t6 H6 a* Q3 V$ [ ( Q2 i# {2 O0 }% p* Y2 r$ r `) N
3 ?; S$ [7 N2 ]/ H+ E
}7 O5 C: @+ B9 ?' l8 P. E7 j6 b
- P5 a+ h* f c% x, E9 y" g7 q8 u% ^
Q5 W0 c' B7 s! ]+ b 8 ^ g5 \+ O0 X- W' r* o
$ V7 o2 |# I. g" V+ _; y
# F# d j a: g1 x' D" _' i1 S5 O' P gen pminplddy240=`tempminplddy240' in 1
9 s. I: j- V5 q) r0 X, d- u 3 T- G; m7 i' q, r% [
*-------------ddy240pmaxp左侧高峰值 -------------------
4 a* I5 _& ^. x! m 9 p* P) u& y6 I0 M9 S
preserve ) D4 h- `$ F% E- a9 r
6 \4 w! @# B. Z V( v
keep if dx240>`tempminp'
" @/ j! E. C8 C3 w7 W) ~ 0 F8 D: y6 X) M. r$ r B
keep if dx240<`tempmaxp'
( d& r9 ~' k* ~2 d9 o$ z( u * I- ]) c9 o7 o+ Y# }. ~; u
keep if ddy240>0
+ [& [4 a* ]$ D: q) G2 r count- v% `. Z% [6 @8 U% I! r8 }/ Q
- }- s$ |( S: O- O0 R if r(N)>2 {
& P; \. D( R0 v2 [3 B: B
$ K% T; t7 C3 N7 U% _ pkexamine dx240 ddy240) O0 m% j3 |& B; }3 J- R
- Z1 Z/ Z2 y9 J3 t local tempmaxphddy240=r(tomc) 9 j' x/ V% S4 d+ V$ U
" G/ f, }, q" t restore
* w- h& E' D* G R7 o }9 v. a3 \9 l" J( l9 p
9 v1 e8 m: ?3 ?0 L1 Q
else {
/ s4 n+ V) X* u( f4 ^& m
0 q3 {$ H( f" y/ ^& c di "cannot find pmaxphddy240"
3 j2 d, }& i/ [0 [4 o4 N restore+ L8 D( e1 C. N5 A8 v: W% {
# w# q1 \. p% v. k0 F; h sum dx240
; l7 @$ p1 O% W5 j% L local tempmaxphddy240=r(mean) - Z: E: N' v/ m; k( X1 B8 Y
( e3 E4 k7 `) V+ ^, J* S
7 {/ G- Y K4 Q6 ]& k
}
9 z# i. ^2 z t4 {7 h/ r9 G; g ! W7 g$ i+ n* @# d5 W2 A
, F" s5 I4 d8 }3 X# ^
3 \) s, i0 [$ F7 j* d3 H# m1 U
, p, }! h8 t+ y
6 H- P) | K& w- U8 L, Q* Z& H
7 {- ]# @$ ?% X# ^: ~ gen pmaxphddy240=`tempmaxphddy240' in 1% a! Z) a# R8 l6 e' F5 ?
+ x( w* n& d: C5 ?/ ?; O' ^# q4 u n+ j5 `) D( L, v+ S
*-------------ddy240pmaxp右侧低峰值 -------------------' \. K* e w' _2 j
! e! a5 h5 W5 N0 n+ m% z0 N# b
preserve
; \+ W7 c& Y$ Z9 ?4 Q; T8 `9 w4 b8 t 9 s. t+ \: `% d, n6 q3 o
keep if dx240>`tempmaxp'8 t' C& r- v9 T$ u2 { A6 W
4 b* @, q/ m* c) y* c# ^& Y; [ gen temddy240=-ddy240
. P+ x% u- f8 k0 k6 Q
$ o% S, o* R! M0 ] \4 ]4 E/ ?5 C6 O' p keep if temddy240>0
: x d. [8 v/ `3 A) ^2 o, V
+ I4 y! i2 N" Y; ^ count* y! K2 \; L! w' f; c
! K, q! }8 A# e$ X% }# R
if r(N)>2 {
$ j3 q( b+ R8 U0 w. Y+ d
* A& y7 \$ n2 z T2 i pkexamine dx240 temddy240
/ ]+ V8 D' M6 A$ N J8 f# x+ l& t+ X
x# A4 Y3 s O% z% L& w& \, x local tempmaxplddy240=r(tomc)
9 q( a# t2 D9 A restore
7 w5 m4 e% L8 F }
1 y# I6 k& Y( I' a; {9 v 9 i. T4 z& F( O" W" i; H
else {
; t$ M4 u. G ]% Q restore- B- y) d3 A( ?: A
di "cannot find pmaxlhddy240"
: F( d7 v( {' v; P5 L, a
- T- Q/ L' Z/ v& H% z2 r
2 z, L1 q1 w* P/ p sum dx2402 |& {* Q5 {" \( P {
local tempmaxplddy240=r(mean) in 1
$ x" \- W4 l P) {# _1 {0 k 6 N7 f$ O, `8 h. r' q
9 ^* u5 T8 ?. y& Q' e }
: h* M/ j0 N' }8 U3 @* X
& ~: g4 s; k7 U+ i! q g% T9 ]4 h( s9 s) n' c
# y6 L1 d5 F7 Y0 H$ o6 _
3 g4 P' @9 \, V$ @6 B
* H3 X& R4 K2 J8 g/ K
% l* j; g; S% Q1 |6 b
gen pmaxplddy240=`tempmaxphddy240' in 1
* z1 i( }$ A0 u. I9 o2 R
) r: b* o& t5 {6 N3 ~ *-------------------------------------% i. Q2 z( k& c7 K' i4 H
$ X {$ E- f' C2 v" H; I+ N, f
gen price5d=v5 in 1/20
$ W) {, ]) M) n4 ` G% U
. x. x8 g) m# o# q, J6 E' x6 `2 x- z gen price5yy=_n in 1/20
2 D0 D8 Y, O% j4 t3 n 2 I+ P' L' Y6 t1 X
gen price5y=price5yy*(dy240max-dy240min)/20
9 d) B" U9 g) D4 X: K+ a, r
" u% L$ V6 S0 A$ _) P *price5y &price5d
. x! `2 o3 Y7 w( C, F* u2 u+ t6 n 3 P' G) z+ Z l3 E3 z: i0 c# i
gen priceny=price5y in 1* e* V( I7 I. `) z4 [; B/ ?6 c
. Z0 c2 d1 |( _/ v gen pricen=v5 in 1% R. g3 V. W7 \# l; y
3 t# t( a- A# u; {9 k# |0 g
% J" z8 w8 y; [% m9 P O* A& y
*priceny &pricen
% Z% y0 M' f3 X5 H& p
2 [- Y7 z9 Y& {' _- z6 v: h; I
6 b# y& }1 r: ~5 Y2 h *-------------------------graph------------------4 L- m3 \7 e# p, ~/ B d
: ^( O! X) B# T+ p9 c) t" [- { 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)1 x4 ]4 U3 @# }7 }( k9 O
# i5 ]* \/ B! C' M+ f( A* ---------可选项目----------------------
( T2 M+ A$ i! |* _*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
3 e& T3 J# i, F' A# Q# z}
' X3 l* U Z4 `& m( c) Hend
" T: a" I- Q/ f |
|