|
|
maodeng 发表于 2013-1-28 13:13 ; o- H" Y# G/ s, h
. hello 300236: R# E, e* [) }8 y: i
statement out of context: j( K7 l r0 F# {& n
r(119);
: ~: }3 U; s5 h( `6 b抱歉,最近太忙了2 S+ i! A* I- K
" \5 ?/ R) R. s
300236 我用下面的程序试过,没问题# h& W7 q+ ~/ j
* Q4 o( G. J1 I, m你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
( |4 F3 l2 U4 c# s0 y0 q' m
# l2 }' C/ c- l0 Mcapture program drop hello
8 e# l0 u! v/ I, e2 `9 G/ I8 i
2 Q! N C$ I% S! p+ G. t7 Nprogram hello$ R# Y9 h4 b; c/ i, v
+ q- a5 b* \. Q+ v4 m# B$ W quietly {% r& [) M% o4 A9 ?. Y
9 i0 N8 ?2 E2 T
clear
- U4 w: o7 l* Y
5 R3 A4 N, l2 @. D8 O. _9 Tcd D:\stock\test\source
7 j: b+ o" O! h1 V7 c& H1 M0 \2 e' Y* T4 [5 I! C* F5 P" B
insheet using `1'.txt+ f* N# N% k! O# c7 {
+ o! p6 H7 Q- k3 m* X" v( w' m' _0 x keep if v5>0
2 K7 W3 k; ~% \& e, n" i $ r6 M' B0 j! e7 d
gen vt=_n
m' e6 I$ j7 W( i1 d+ r' Y( f* Y J$ ~9 }+ t, u
tsset vt9 B+ G1 H1 C3 y* f
2 ~/ H+ R- \5 W: K gen zf=D1.v5, a* ^9 Z( u0 D* z6 n# S
# m G) P0 I& k" Q$ T3 } gsort -v1
' T* G4 q9 G/ R' y, n5 |
! n7 R& S$ K! E$ o gen avol=v7/v5) G! p, p* a L. A4 K
+ ?' ]- w7 K) g& c% v- y; }3 {/ k keep if avol>0% u' |4 c) [. J9 c i
. W, n& n( T3 Z% V5 @. [ drop vt9 z' P: r% d! d# c
& t7 C" \1 {5 O6 N7 g" T
gen vt=_n
, D$ ~8 B' }# k/ H8 ~1 l
. q3 t' M6 C, X8 P tsset vt# L2 H s( C+ t. ?5 `, M
: B9 j0 m! x+ q
sum v5 [aw =avol]
0 R9 ]* G$ G& p# ]* ]* |/ B d, F. o" f# K
gen amean=r(mean) in 1+ V5 x, [# I6 P% U- T4 e! h8 D1 m
- Q: t1 Z) m6 D; Q7 U9 L2 I * 总加权平均值 amean
3 X' @: ~' B* Z6 _ 7 d9 i3 I; E7 U6 ^6 t) C1 M
1 V" `, @" B; T6 z4 H keep in 1/240' X* X% R8 k5 A
8 k3 w& o: P8 z+ ]1 e& v( V
sum v5 [aw =avol]0 s+ Q$ X7 d# M
% l6 h. R1 D! j3 ~
gen mean240=r(mean) in 1
1 ?) E7 i9 C4 Q* |2 d
, h* l* E& o5 ~ *240加权平均值 mean240: T4 P; r0 F! F8 E0 R
; L; {1 c0 t5 {6 q" n, ^) E set obs 500
3 @# U# D$ Q5 l! L % d% _5 ]! ?/ Q6 q
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 `+ a8 L7 O1 {* \% C
3 _$ B0 q2 Z5 o. @9 Q7 C *240 kdensity(dx240 dy240)0 H/ Y, s/ `: g/ T# N" s" H; t
5 t. b# W4 \3 M0 B. E" q sum dy240% y5 ^ Y8 G; J# }2 L
# l3 P% A/ |0 I. n gen yxis=r(max) in 1' `- }! P9 R! {/ K5 M
3 p% r0 d) l9 J3 U8 R; f( }9 ]( u gen yxis2=yxis/2: [2 f _5 m) d, M
) o1 x$ l6 Y# N *yxis
+ s6 A' m6 N9 t1 [8 b1 l 7 f6 n0 l) a c
gen dy240max=r(max): H+ J8 D- A" w/ `
9 @- U6 i' G( ~0 M9 d, ?+ M7 J7 P6 r3 M gen dy240minp=r(min)
p/ f! l1 j+ N$ O* ~4 h* z
- l4 g6 G; y5 G gen vtt=_n' N, q. M6 h$ P9 O
. P4 F% y3 p* _/ Z; ~* V tsset vtt
% C; w. v3 D4 r5 a& p# C+ J
2 g- @4 B2 t# t; J9 d: H( I! Y, y gen ddy240=D1.dy240/D1.dx240( N/ U5 m. g5 n9 N/ W/ z
5 K0 ]4 L X1 h9 G3 w1 H
sum ddy240
& T" l7 w0 G* ~' q2 x- R( Q
, k8 N0 H: C+ @; Z2 K gen ddy240max=r(max)+ u7 s7 C8 V. ?6 d. E- q! D
$ S n8 A4 C) W+ h6 l' c6 `% Q gen ddy240min=r(min)
8 ~) |( V* V# A* `# w/ Y 1 @# c; c- p8 u( \* v
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)* n& z1 B2 u2 ?+ ^
0 ]8 M: l5 ~8 _& W7 G4 S. Y& _
sum ddy240g
9 V t+ ^) }9 E; t1 b7 B7 L1 V
3 m% x; h& j h" u% U gen yxis3=r(min) in 1
8 U" w$ |0 {! N8 o% K ( N8 u2 X2 w% ?, L6 u
gen yxis4=0 in 1
) p9 w9 h) a+ b2 t
+ J- A* a' I0 ?, Y6 k *ddy240g
7 f. K6 T! z0 c. y6 G
N" s$ g- f. p) a" B( l/ }* E( n7 i 9 X6 y( x' I) y" x2 b
preserve . n3 Z$ |. ~$ i# F5 x; ]! }7 m/ L6 n! J
2 L. g3 J7 v# M" q' ^; U) k
sum v5 [aw =avol]
Y8 j; M7 h5 ~. v" K2 K , w7 |" G, ~9 ?$ O1 J( |, `: w& [8 ~
keep if dx240<r(mean)- J, G& z7 ]# b
7 A0 i; i1 M7 [ O5 i/ ]& `6 \4 e
sum ddy240. E$ j' k, r2 B( a6 q: h
1 f+ H: ^% s; ]% _& j( W
if r(min)<0 {% }: o0 E. F) m, y* r
8 K+ D8 f' S, u/ }3 `/ k keep if ddy240<=0
~9 ]$ \* ~) i4 K1 r! s
' ~/ i7 r/ V0 s0 L6 _ count4 G1 }$ Y+ m1 @+ \/ J, }
$ l0 x& k/ K/ H$ A. C& ~ if r(N)>2 {' W2 f' y% t7 R5 ^$ U
! y0 X B: ]/ y% J/ O" B8 p7 s pkexamine dx240 dy2407 R& X7 d7 a: j3 |2 L
+ t; D) x( F6 W5 R
local tempminp=r(tomc)
. z5 n; h: _0 a2 X restore
* w6 M3 A' x! C! A" P' u: S' P }
7 h" E6 y8 Q# n3 D! j5 ~+ i
% E2 q8 r! p m6 k1 @% g. [. q else {
5 M; c- I# X4 P0 ?7 Y, J 7 `) C- w) J: k2 v3 H
di "cannot find minp"
/ u2 j+ U) @* z: T+ u6 N 6 {8 j+ @9 k: n0 Y& Y
restore / [& f5 Y$ l( I; }5 G' }
sum dx2402 a, Q4 t* u2 ?. r: H: t4 E/ }& X; o
local tempminp=r(mean)% |$ S. b1 Z$ W' C- \
2 C6 I d5 r& W- t/ P
}
' Z1 G8 F& e# J }% Z. s- l" G9 c8 }6 Y& ?% ]5 E
else {
/ r, K$ K" @( x# b8 r4 x* x ' y' ~9 Z0 R' _9 ^8 I
keep if ddy240<=r(min)
: s0 W: g' j1 Z8 [/ R* g, C6 _
5 C: l# F5 U" C. a+ f7 E sum dx240
" e2 v- E! K1 X% W0 J$ d: |$ i8 R
7 v2 L4 @0 h* u& j# G ? local tempminp=r(min); |2 u' y6 I; S
restore ( F. O- Q+ J+ w3 P3 l' O1 P
}( G0 D5 p; f8 F; \! `2 U
+ w) @# y/ s- S3 A
8 s, Z+ s0 R: X% X
1 h& n: I+ B* M6 D' _ gen minp=`tempminp' in 1
+ E1 v0 a' C; A *240 minp; @8 n+ N: I/ e. N
' {# W$ K( ?8 w1 [' b- t O+ G8 H" i8 x
6 S" c8 e/ n- E3 i, x: Q; k preserve 7 _/ W6 K: m% m1 v' b! i& [
! k4 I' q5 Q C0 v9 m6 s$ X
sum v5 [aw =avol]
7 z8 }% H+ C2 O( i+ S+ ?
8 j# j z1 r5 m* p" F$ `2 ]3 ` keep if dx240>r(mean)
4 ?) A8 Z- c$ w ) m+ X! r$ R+ l$ A4 z4 ?! \
sum ddy240
0 K# s3 K" Y& I7 H- X. G
9 Z3 r! L, x2 U' A/ _$ s! e if r(max)>0 {
! |! I* M( x5 w1 i3 ]3 \; w3 t
4 g4 _, X, O5 @3 A" t keep if ddy240>=0
5 P! G5 K+ j! Z$ Z ' K/ G' J; H- d: Y/ P
count
- h) ^ S0 c5 i% g( E5 [
$ H" [. \/ z/ X! \2 o if r(N)>2 {" `7 I: t5 T% k+ j+ G
& u0 Z3 m$ c' E! f! L
pkexamine dx240 dy240( X" ~! V' f$ h
8 L) ]# D- b* D* L7 n8 V$ @4 Z& A
local tempmaxp=r(tomc)
$ m0 ^% J% X1 ?: u" x restore / h) m- ?: A: D! T. o7 x7 `
}
1 f! j) `" R u' I7 u# r3 P
$ L3 g3 K) \* f
0 h4 J A4 x8 H& l/ \( M else {$ P! X* C8 ^+ v
restore 3 u- c; l: ~* w
di "cannot find maxp"
3 l* p+ O! o3 V ' V% `( B# |% G6 ]/ i
f C/ G3 {5 U4 _
sum dx2407 c8 A% q) g. e6 S K' S
local tempmaxp=r(mean)( q2 c% E. l% ]$ F5 K/ M! O
- ^! V* x# K8 H+ e! M' G
}
0 X& R1 p8 }. z& z/ \9 n! E
h2 b& z$ [% v, O }
+ L% d6 `( t1 y$ v% X 6 ?2 O# Q* f- X8 H) b
else {
' ?' c J9 e4 v 0 F6 D: i( d* Q6 C5 v
keep if ddy240>=r(max)9 e# k1 _; Z( w
4 v5 [) L% E" x, c1 | sum dx2407 l" h' N" D+ K U/ ~7 K
7 ~8 j% }" [1 e local tempmaxp=r(max) ' ~" O% R" X8 g
restore
& ~. Q: B0 d0 E; W4 l0 Y* R; a7 y% |# S' e }( c y4 m( A& {7 g Z
6 C; k7 N2 o! p# ]2 {+ O
1 A" z6 R1 @+ E- C7 E
8 w. ~) H+ X7 A$ Y8 T- R& k- f
0 M+ M: t. M2 D9 o3 p8 K5 J0 H4 t gen maxp=`tempmaxp' in 14 u' p5 \& s. h5 C9 B3 y
; l# N( g/ l. S5 \ *240maxp( a& G/ T3 t& [! h- U# I' e
+ |; z3 _) U& Z
& A: ~3 M+ s' M/ t2 R. n
*-------------ddy240pminp左侧高峰值-----% Z' L0 ]* [, ]3 Q! s
% {; h9 R5 |* d. x9 D! m$ j1 _. j: \
preserve " L [: d+ V- T2 a
! `) q: h. _- j* P+ s
keep if dx240<`tempminp'& U8 h$ H3 n! A9 {6 c/ r. S4 }
+ j8 P& F, r7 v
keep if ddy240>0! q" g6 i0 M* @5 i. H' i1 g
& [4 a4 b# s! i% C- K% {: ?' l# s
count* B6 u7 {) v0 o3 B" ~
4 ^ ]( j( D2 i- }
if r(N)>2 {% U' o% h3 ?: Z+ E0 v
5 _3 Y" B2 | j' @7 _ pkexamine dx240 ddy240
6 W$ M/ i% s) J/ N( o& N
0 o2 ~5 v: H% N6 F0 H' X1 k local tempminphddy240=r(tomc) ( l y/ o) F0 {% @
restore
j! L' z: M, p/ y }# L: O) o0 O7 ]3 S8 z7 Q5 Z9 D b- g
f8 f4 g6 S3 k6 ~/ s" u( N: h
else {
5 O* l) s, H) p5 |, ] restore 2 V' [5 P% j# `5 P9 k! ^* ^4 a
di "cannot find pminphddy240"0 M( p7 I) z% j) F& V+ R
# ]+ A2 t ?5 l/ R 6 p# \* u; f9 L/ x9 `
sum dx2400 T$ D* @# K/ Z9 E; G3 U
local tempminphddy240=r(mean) 2 J# f( V# p5 s- c" N9 g
2 {- c% B/ v, U j1 f& @
' [$ s; v \2 I" C$ a2 B! v }
- k/ S5 |/ @( A @: A }
3 C( d1 p# O5 t6 d4 ?( f( s
2 E2 i1 U* ~* r0 f9 g
- t z5 h% _ T
1 v6 c0 B, n/ q" a* l 1 p- i3 F% H+ ]& p& r
# Z! w; `' o1 d) o p R+ {
gen pminphddy240=`tempminphddy240' in 1
* Y7 D: q9 d6 G ! z! o' C4 X. `; U4 ]( h1 g
/ m( {) ]) _& o *-------------ddy240pminp右侧低峰值 -----------------
. W% a, S5 r% l3 i* M; v" c preserve : L* ?& y) t* c6 M- D
5 b5 A! y6 S9 J& ^ Y. P1 K
keep if dx240>`tempminp'( _9 I4 |/ q* q+ z
/ t/ Y" N1 w" F4 o6 e
keep if dx240<`tempmaxp'
: k& `/ v( i7 d; P
& J: ]6 u! f! N; E) h" P# f keep if ddy240<04 [4 d3 E% s1 h4 \- x# z4 D
1 z: D' s7 y6 R1 E+ L
gen temddy240=-ddy240
. F' [) U1 ?, k) h
2 F# J% l: _( [; j2 g8 s count
: R2 H B, o5 W, c
1 _( L8 D3 D3 f9 ?% `# k% A if r(N)>2 {+ T; V* K" }1 E3 T* `5 ~
8 l& N* U4 t( }3 q2 M9 r! N2 P pkexamine dx240 temddy240
9 U9 S" `9 W" u( i A4 q6 z 3 |/ i% g" ?2 E, y# u
local tempminplddy240=r(tomc)& D6 {# Q& j% `3 r
restore/ X' c" Y2 s+ L7 ?! B7 r
}
6 K U$ j- g5 \
0 \9 H+ b4 \8 H1 q else {
8 Z8 d2 B% r1 c+ H , u# n6 H# N: d9 b& z
di "cannot find pminplddy240"% }% C. O& Q0 i6 l# t/ r" I2 p, B0 @
restore( J3 U0 P; s0 z# L; Z
2 w1 U$ |% @( j" P: }* a" @# _- y sum dx240
6 r2 U Q5 \- T local tempminplddy240=r(mean)# S# U/ S2 _$ S# s4 m
5 c4 F& c( u/ u, `9 \
9 G1 S M I8 z% Q1 Y4 R
}
/ W' X' R2 l a7 d& B ! B* ?, I9 x5 T1 }- G& h n
8 P w+ t! @+ ?8 H. r
# n$ L6 D7 G1 Z1 L( E" Z5 } G7 {7 M. p% t8 P8 @6 g
" y% F; a0 |+ o% X( ^, f1 w& W# j
gen pminplddy240=`tempminplddy240' in 13 W+ W. R" ~# A# I
5 M0 f0 F& X$ r. Z" e/ t3 P( C
*-------------ddy240pmaxp左侧高峰值 -------------------
2 z& N0 [8 a0 a \) P6 H
& u% o- H9 A) D9 U preserve + R" \& S; x# r
3 X& I7 b" _9 N8 H3 j- r keep if dx240>`tempminp'2 ?4 r# b8 U% Z O$ ?
5 z" Q E7 B# i3 j" j! y
keep if dx240<`tempmaxp'0 B/ a* n0 Q# B. ~$ _8 C2 z
\! U" i, g* ~2 f6 F. e keep if ddy240>0
7 i5 W4 Z9 i) u% W6 k$ i! z3 Z count
+ R6 Q( R% j8 b2 Q% j1 t+ a
! E5 h; N7 b# e$ V, {8 } if r(N)>2 {4 R! H8 }8 T# L' r5 e: j
, r: b' S* h F" D pkexamine dx240 ddy240
6 x8 F. N+ h! n7 {5 V- y5 o % _9 |/ J" _: }& Y# s. ?* ]
local tempmaxphddy240=r(tomc) - S2 H0 i- Z" q; o( ~3 W; P- p
/ q- g, j9 O! E; b4 ~5 Z
restore
0 M9 h! h8 Z2 b4 Q) B* _( m, P }
+ [% X# N% v* U& g7 I, u7 J4 K ; N: V% O' [" n. o9 v
else {
: h" h5 A/ b) c$ Z5 L& \% ?) j# ] 3 ~) m! [, U, [) v# ?; M0 z
di "cannot find pmaxphddy240"4 s6 }- P- ~: |* D
restore' h# _, |/ a5 ^3 F
0 P; c. Q3 i! i- e
sum dx240% V% I4 }* E8 e% L0 K* L) S' F( z
local tempmaxphddy240=r(mean)
$ M1 Q9 n' l2 A) h* e
& y7 ~1 j; a* A3 {9 J( q $ Y1 H K U% T/ @3 u# U# h
}; t5 e- u0 ^* `3 [( v5 O
1 |( r! c6 c7 W4 r( H# l 2 j' n3 N0 m; R
0 O" K' h4 O' t" |2 J
7 d" h' o; @& ~ x( n! g ' g. h1 W J; [. h$ p
, I0 U( j6 D# Z( G% o. D gen pmaxphddy240=`tempmaxphddy240' in 1
- L# n' }" o- s* E, @
! F: a4 v8 m9 K, j8 q b( @6 T+ n , O9 B w! r/ y9 b2 X" P
*-------------ddy240pmaxp右侧低峰值 -------------------" [# `2 @0 m1 Q4 l" g
9 {+ W: u5 u8 R* r
preserve
. V9 ^8 W- z. y( O ; a8 ^4 e; e. v$ ^
keep if dx240>`tempmaxp'# y# |* I# v0 B1 N
" P7 @$ M/ O, B" } gen temddy240=-ddy240
! ?8 x- y2 V9 K2 A. I$ H: O# j1 L# X
, l: A' g0 J5 x+ x7 E4 z. t keep if temddy240>07 h" Z+ W5 w0 s
0 r9 E0 F* t4 H+ Y4 D1 g4 b, N& ` count7 P9 W" k/ c* L. h+ d
0 L$ N, y+ y' \, U; d' I1 T if r(N)>2 {- G9 {6 Y/ M% T. Z4 C1 t8 N
. b+ E; d: J, V& x
pkexamine dx240 temddy240
0 j) ^! X1 l3 N* g7 W/ b+ b' n S( C: `" x4 [) \. i$ b1 b3 B
local tempmaxplddy240=r(tomc) % p# D3 h* {) f* H6 _# x+ _
restore5 c+ S* y. ~; }* U
}2 p: w6 N& G0 b9 v+ i
; Y; V+ W! E6 l: v3 x2 ]
else {/ l! y" ]4 _) v; ?4 @" b; @) C
restore
6 ~9 V# ^* I6 P* V di "cannot find pmaxlhddy240"
" h# Y) ?0 s7 I4 W8 g V } ! x$ ?; j4 C& ]+ R6 S# O. |
- Y: d, @& h4 A! j: E u5 Z sum dx2402 i* F# t- F: k) k3 m, d
local tempmaxplddy240=r(mean) in 1. X% h" H) `* y+ K
6 D% ?( q/ {6 M, y" H
; H! p' D, ?: t* R } v H* J, ?, [
4 ^* H! y7 A4 ^& @& m* n
6 g r" T. n- T, A$ h/ Y
, O4 Q! Q& M) s2 s D: l E6 }$ V- b- b9 U: F# G1 ^
' G' A4 U" a6 @4 A9 R ) [" N* A! z! z( G
gen pmaxplddy240=`tempmaxphddy240' in 1: q7 x& X {% }: E7 V
: T: {! K |/ t
*-------------------------------------% y8 W& H, M# s C2 b
: g* k* P$ Q- u7 t1 V% S gen price5d=v5 in 1/20
+ x. ^1 w+ D( ?+ i5 c w, Q, _2 f
D3 a, N8 ]9 m& ~ gen price5yy=_n in 1/20
2 `0 A* l9 k+ n( u( i4 [6 T o$ }
0 U( Y' K2 f2 I8 {: m5 g gen price5y=price5yy*(dy240max-dy240min)/20% W! }* G2 V4 W! u: I
3 e+ k' k( ?# i( N$ L *price5y &price5d1 _" V7 t2 d: i. F$ E% ]
+ J+ O, K8 b' q+ @ s! P gen priceny=price5y in 1
1 u' r# n/ e$ j. L$ v A1 K
3 a I7 x) \1 |6 _7 N gen pricen=v5 in 1/ Z( w1 k% w* I- g; @& A# \7 e+ I; C
@9 \2 ~% N- w2 n* O/ B& Y ( t: {( p( P A) }1 r6 ]
*priceny &pricen
1 O. P2 B1 u; K
) s9 a6 q0 G. Z$ R/ D" p B' P2 h( V4 v i" \8 e) |) _" r
*-------------------------graph------------------
: Q u0 z7 Q& Z6 N/ A5 {/ y! e' ^6 M 0 d% ]/ T- b3 s1 h- b& p# d8 z
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 b6 M/ g& s- [2 S0 \" A# G; Q Z: i' I4 e+ M; H
* ---------可选项目----------------------
. |1 K( |- H; F- A+ `*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))7 a+ s( S( u- Z. f
}
' }/ r- K" M6 \; Zend
n! b7 }! |4 _" V% N |
|