|
|
maodeng 发表于 2013-1-28 13:13 3 K; R% ^) F! F3 j: U
. hello 3002367 z2 X! T9 M; P; y
statement out of context
9 r+ g7 G8 _) w6 j, A: a: j) nr(119);
5 w5 k: h( w/ H7 s( p) K# g- j" _* R抱歉,最近太忙了
: J3 O$ v% I* \$ K- j! n1 ]" V" V8 t/ I) t5 b$ N2 I8 i5 Z
300236 我用下面的程序试过,没问题6 U: p" J/ _! c
4 D9 p8 k: w2 O: a6 s4 U4 C
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试: X) v3 J8 \8 _ c
+ @+ c% j! ~* ?: _. m" {capture program drop hello
1 j1 P; h( p7 F* o+ D) v- a
: u" R4 L0 b% O& Q* m& @0 G4 xprogram hello
: u& t* x# w% _' L9 G9 v, y7 d6 d" L
quietly {
; w: ], P7 q! v+ R2 h/ |6 W
+ Y8 \, M8 W9 B H3 `4 w6 v, zclear
) ]) T1 j. B8 J5 g0 s- f/ h' D& R# e& g/ r0 P+ G
cd D:\stock\test\source
2 v* `% u6 M- q9 |' B) [2 i; T
+ g- E6 }* h* H& n& M: S9 Einsheet using `1'.txt6 n( ~( ~" d4 N* M: }1 E
; p% z. q% U% a
keep if v5>0( B! s) [' w6 m& T, p1 r! l
. q" P4 D7 g/ O* y5 X gen vt=_n+ I2 M! D2 s d; ?
3 s3 F$ r: P8 V
tsset vt1 e! G4 g2 p" \
9 J d9 Z, O; T3 W: D7 _ gen zf=D1.v5% W6 |1 {0 W& G. Q9 i
. F. z9 q1 R, T" f8 O* o gsort -v1
" S. s% _' O$ Q! ?3 \9 }9 m% ?& M! P5 B9 D
gen avol=v7/v5
! J1 m% d5 S- M. ~/ ]/ a* j3 Q7 R
0 e4 O! s4 k$ n" C$ ~2 v* L keep if avol>06 t% I2 i8 K: c7 a5 b# ^% N
1 [4 n$ C. x! M- n* M6 S drop vt
8 s* [) A) A6 X& T# o1 { 8 e) b; ?9 p! E3 D2 ?
gen vt=_n
: \9 w- H, Z& r
0 {' r+ E2 a3 X. l! m6 D tsset vt
/ W' z* Z* `! B1 o$ c; G/ B
& s! w! [7 d+ k& m% ? sum v5 [aw =avol]
& p1 m- C3 g. D- u
4 M2 P% f' ~- ^! O" L" }. N. Z gen amean=r(mean) in 1- |: S4 N7 E3 ~0 {$ Q" b* c# ~4 J
9 \/ h- b" W$ l$ D# N" d * 总加权平均值 amean: f g: B4 U6 R7 e ^. O8 Q5 R p
. B5 \. \( Z1 u1 [$ b
6 Z2 u$ c6 \' B keep in 1/240' x$ v* F- V" N% H% ?, }* ~
3 b; W+ t/ T9 X% v* @ sum v5 [aw =avol]
$ l4 b/ U% S) o- f8 X6 ^0 J& d: ^& X2 q B" h$ Z Y
gen mean240=r(mean) in 1
: W$ R# L$ u$ G
V6 V7 Z, |! H. r *240加权平均值 mean240
5 L# G( K6 t# V, o
" z) U! Z; T: y5 A set obs 500
5 D! r5 q' x* M5 }- C+ ]) K
3 v4 E7 l1 O5 `1 r4 @ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph0 b$ N6 t/ }$ K- J
( ?3 V6 F, B' O1 W3 A0 e *240 kdensity(dx240 dy240)
: w1 u6 G2 H/ e% z: q
" p0 M; E% F) u$ d2 \" ~ sum dy240
3 h* I2 M4 M% \- { 2 m2 W' R8 |, b8 `
gen yxis=r(max) in 11 t' B& b Z! W. ~$ w2 x1 k
1 n7 Q" j) } I* n( F
gen yxis2=yxis/2
' h: X4 F" X; Q j1 g: a* \
, j( z: c$ y7 s- c s *yxis
! h) j. G! c, f4 M , j) s6 ]$ [# [
gen dy240max=r(max)+ r" K4 G2 ]. W! T8 b4 U
+ ?' f: _% T+ o! Z2 R3 W/ n gen dy240minp=r(min)
0 H, F" _+ p- g1 v0 E+ `- ^ ! r" J6 a2 Y# d
gen vtt=_n! R) M+ @7 a7 x( T# B! t- R( ?
4 U5 t% M2 N/ X tsset vtt6 d8 B8 _# p0 }2 B. }4 W
# C- q( |* Z2 P! V
gen ddy240=D1.dy240/D1.dx2401 D" P. A: b, e* t8 x
2 _1 f( Q9 f G+ h( q! S6 U sum ddy240+ f8 s3 @5 ~3 i0 E& }* k' a
, E/ d3 {' y0 F1 c" q
gen ddy240max=r(max)' K& R) A5 w0 h% K
2 M% q& \+ P0 _: j: p' I- w gen ddy240min=r(min). N& u+ [) s: K. t+ P
+ d) E) }9 v* b
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
5 z: E3 B6 q* p3 x4 O/ `
+ m! w& s, H1 S sum ddy240g
% c$ H" i7 [! }# |' w& k; D0 f
, ?, d; U4 h, Q gen yxis3=r(min) in 1
) k2 i' u# z# e8 ~ 3 v& Y- a/ g) |* }
gen yxis4=0 in 1
' A# [' s' i; Z! r
, v6 ]* m/ D' i7 L: S; y *ddy240g
2 y5 ~7 v1 o8 p& ^0 d E, \) d+ ^, {
2 D; _/ y2 I4 U+ b( ^. g; _ preserve & L/ h. ^ x$ u9 a) B1 l% @) b' w, t% ?
* B9 Y. R6 `0 t9 y, Y sum v5 [aw =avol]
3 \+ G7 `- n1 C
' ]+ N& p$ G4 k6 R, V0 j' f2 E keep if dx240<r(mean)
9 X0 w/ i; |) L( w. A/ [, D% z
* T9 q& G. F) Y$ @- w: C sum ddy240
5 R- `3 z2 H8 D9 \' p* u
, l7 i! T- z. {6 j9 o+ X if r(min)<0 {( z9 i2 [- j, G O2 K, h7 a4 H
W1 y2 V7 J c. U+ H keep if ddy240<=0, s# x1 q' N& f# ~! y8 L! G
4 s- w( U$ j3 b9 W
count
4 \- M n* ?1 F, m `* a0 B % K$ l1 l4 X; M5 S8 b; r" G
if r(N)>2 {
& f& F4 j' z% }
! u1 n. d" W: v6 B e; \ pkexamine dx240 dy240
6 Z: Z3 b/ ?; S6 M % S& t; a" G: R) r, S, o, h2 X
local tempminp=r(tomc)" X3 I H4 V6 i- ]) U+ k: P8 L6 X
restore
8 j/ ]6 L2 i( Y' }& t3 d) A! g }
- b a2 m" y; \+ d v 8 |2 k9 v8 d# j+ I1 Y& s
else {9 G$ H& B* X1 o; S
" g8 a/ k6 R# [( ^2 p9 w* {
di "cannot find minp"* x- ^$ j1 [+ ~
( e% Z" M; h/ w y restore
4 X! W3 y {: h0 D5 ?- G! a sum dx240% _4 V: N& ?1 B
local tempminp=r(mean)- A! d0 b% L4 q
7 ?! a5 G* K2 [0 X; Y6 F }0 W- H5 Z* J1 u/ H5 k( G* x
}! v# z T# @6 S# Z& A* [
else {
+ G5 ], o' _# C! U" T! X1 x , u- m& e4 v# @; u+ J3 r
keep if ddy240<=r(min)+ M8 q' B1 k, D/ K" b! Y
9 X x7 _+ @/ H
sum dx240
9 o* B1 y3 V% }
( p6 o; |0 K0 @6 T m local tempminp=r(min)
+ F g5 l0 \8 c# V2 r- J) G6 Z restore
- I& I( F7 i9 Q) z }4 Z' S' j7 m% N$ @
) t" }7 h5 C/ F- W7 @( M+ S% Q" `
& G* i3 o. L$ a1 H5 E# I1 t
" K# b3 w& I8 V% T" s3 a
gen minp=`tempminp' in 1
4 f/ l2 f4 Y: H3 `' Y6 l4 S *240 minp: r$ z; }+ y9 K4 P
. y) U8 F6 y& u) `/ q+ {; e& E- O: j; N2 y$ L
) @" Q! K# {* x8 Z8 m6 ~ preserve
$ P) e3 Y# H& e% S; a& _3 K2 \
: L8 b! B: X2 J' U; w sum v5 [aw =avol]- ~) \. `' J# ~6 l" M" D o6 y
: P5 H( R5 N, }0 s6 S/ X% ?
keep if dx240>r(mean)
- z1 l u. E6 c r" _4 |6 [
/ ~# H, O+ Y5 B% k, \, Y+ q sum ddy240
; k5 U: j" L6 M8 {: ~, s7 Y
+ ^% r5 |+ K) j2 ~" q i$ }; C [. b if r(max)>0 {) z* q, B' W4 a | X
& ~* y x% H7 T$ L+ u: b; S
keep if ddy240>=0
! `1 A, ?* Q6 q. N% w0 n
* ^7 ~9 [" k: { count
: v% l7 r! ?5 H& I- ?7 f" K
; f- D0 b/ K4 ~- d% w2 O$ l if r(N)>2 {
" Y1 X; u3 L" w, r. \' p$ j
& y% E: \) a4 R" Z6 R: q pkexamine dx240 dy240
6 q! ~, Y. E2 N3 z 3 z6 Z( T0 [7 ~) ~0 T: y; K- o K
local tempmaxp=r(tomc)
; L- ~% Y: F- P a restore
; y* a+ {5 I1 l }( H* m8 @3 h7 p
: P; G; L# P2 E0 L0 w
/ V3 R! H9 l7 ?( ~" k
else {
) v8 x2 V9 D, s- v4 Z* g; _ restore
l1 [/ C. y; i# u6 Q$ J di "cannot find maxp"
- e* {' N: R1 p: H. G% w- H . g1 e. ?- W: h# H* e/ A ^
, L% `' |$ S8 Y0 S sum dx240& e5 r. H% V! X' Z
local tempmaxp=r(mean)
; F0 Z4 W# a, o# v / u7 X* K# x0 b i8 `0 w
}
' q, j6 a$ M+ s! K, j2 t
/ h; f c" c& A# G' I. p }
* z# }1 v% I( i / C3 z' F. w- i
else {6 J1 ]9 u. x% ]* Y! A3 I
* X# p8 e9 i( v* c, ^
keep if ddy240>=r(max)
* q7 x# r5 O, X. d6 K: C2 @$ o ; Y3 W; _+ C* d/ ]$ p+ M
sum dx240
) T1 U# i7 {- `( F5 |& P
& y7 V! c9 v( t. j6 x1 X local tempmaxp=r(max) 5 e; f. g* C- S4 H
restore
" ?+ b8 t Q% S( ~" j9 f! Q# f$ q }
' w" o! x9 W4 G& w6 j- V , e3 M1 }# i1 }* J
. V+ ~" \) `/ p: T" J% J# i# t/ c- T- j3 o
7 `# v6 M$ Z( |2 H' ], \( F+ B# W" [3 z
gen maxp=`tempmaxp' in 1
! ^ u1 z9 ^* w4 o
, w: H, s- t2 ~ *240maxp
2 y& r7 f" h$ e! Y3 N& \$ ]& c & W# v6 f9 C! Z, T0 Z
: D3 C" f' }! S/ b *-------------ddy240pminp左侧高峰值-----+ R: b: o" s1 v2 \- b O; `3 J
8 D' Z5 o# g9 r" o3 J
preserve
7 w# x+ v0 U% F4 ^
; n s& A- `" c/ R F" n, Z keep if dx240<`tempminp'
- ~1 v3 H) F/ T7 {
+ M* I# p( k& w D keep if ddy240>0
3 d' M6 n9 [/ d. R; u ( @, Q0 p" p6 Y9 U i: m
count
% t& Q; D/ v9 }" g. W/ k* o " M: J; F, q9 O0 H& S8 E) ^
if r(N)>2 {
1 Y! n5 T: {0 D+ E
+ I5 S, D c, q$ N ^, V! h, k pkexamine dx240 ddy2408 m! A( G7 u/ E6 @
7 Y2 Q+ W8 P" Z) S K6 X local tempminphddy240=r(tomc)
; p3 l# j% u4 y% e+ T% ] restore
: h% B7 H) z7 h! s& R/ z }8 q8 {/ R/ |+ i0 @) T( O7 }% ?
6 |# C- b# c: p8 ]; i% w$ s6 D
else {, l5 z( @, x3 X1 V, e+ X' G
restore 7 d6 \1 x/ `0 @) s9 ?8 _
di "cannot find pminphddy240"/ q6 X& z! i9 e/ _" m
6 A O9 @4 r T* |+ a
3 x1 c4 Y. K& c8 ]0 o3 B% t3 b- R sum dx240! N9 \- a$ q& X
local tempminphddy240=r(mean)
* u5 ^# I/ i- a# `5 A9 r4 O 4 n u: C* z8 e* i% K
& N8 _' C$ I! |. |9 U/ ] }8 B0 S" E7 f) y9 ^8 B4 \8 c
3 i$ `; y! I$ I; ]/ ?8 q: q
# z; [- I0 n) p. Q# N
: D$ Z+ i) M: k W
; a# |! K% g9 B* _3 R! |
( i$ O$ r2 C& z2 D' w/ D1 ~ ( j4 C }$ b! B! t9 Y3 @
gen pminphddy240=`tempminphddy240' in 18 C2 u) F W* j H
' h1 R! @9 v1 S) \( |
2 N/ e% H+ W4 l; t1 C3 t0 N+ P( o
*-------------ddy240pminp右侧低峰值 -----------------
1 ]9 o; c$ e; {; z preserve , p* x% W( O+ Y9 j- \
# X9 j7 p6 j; d8 c: U. g
keep if dx240>`tempminp'
1 O$ o' R' u& i4 ~) @. a4 s
1 ~; @7 j" p; u keep if dx240<`tempmaxp'
) v( }4 k- B% E9 ?( f" r! u. A D! Y# f3 G) f2 m* j" M# u
keep if ddy240<0( q4 h1 w2 k$ i1 s8 f% n" Y, ]
9 t) }1 x/ d* T, i! R& X1 p
gen temddy240=-ddy240% r) J9 e+ Q% C" [
( } g T3 [3 L) r count; e4 K* T* p# ^/ e8 f2 S) ^
8 y+ Z( U, C0 \- M6 i* Q) H
if r(N)>2 {
2 @' @2 J+ w4 }: c/ q " k! S- H" o9 C# p# N, t
pkexamine dx240 temddy240
. |1 L% [2 h6 v" E2 S
I- W% f# N, h% E8 \ local tempminplddy240=r(tomc)6 @% ]% M0 n% p e
restore
8 }3 ?+ d; h/ L. }/ \% _+ D }
- e' q3 G; n S' y Q+ }5 t% V( C% x5 N1 e$ H
else {4 P, u4 T. y. |+ y; C- q0 m
2 l) u1 Z* H! C8 O ? di "cannot find pminplddy240"
# {7 C7 Q. u, ]5 ^' _# H) G/ ^ restore- M2 x5 `- o0 Q" K" O
# k: O! g: Q$ O& `6 s) X sum dx2403 R( J3 ]- ?! o# z
local tempminplddy240=r(mean)$ F# R1 J. x& j* \1 @2 ?
1 h" B* I) M( x& s. E7 x7 X
$ Y9 [. U& y& m. x& o# A, O( c
}
0 A \2 ^: U5 k$ F0 e- O O
0 l1 u Y; \/ I- u; H2 b3 K
3 ^7 S) Y0 y2 j
% r3 Q6 d* e/ c' g8 j8 V7 N ! @7 l$ ?8 K7 X! Q& E
! o! Q. H. M" g2 t* ]1 Y gen pminplddy240=`tempminplddy240' in 1
' b* B- V. P5 b9 n3 k) \
# t2 v& t. r* D *-------------ddy240pmaxp左侧高峰值 -------------------
" v3 i& R+ _* f6 ]# e
3 e4 {6 @1 U5 P1 U' R) J7 E preserve 8 C3 g9 G* E4 y k- ^% ]8 K' J
$ I8 g$ H$ s. Z& S keep if dx240>`tempminp'
J/ E, d, ^9 b L/ _* y
4 t8 h4 @9 a) L# ] keep if dx240<`tempmaxp'
. H6 L% p8 `6 l ; u6 s% N+ ]1 J. A U6 x3 K
keep if ddy240>0
4 }+ S* c% u) e' } count
3 r" Z+ ^/ S0 m7 _0 X9 h4 a
& W% A! l$ e% P! c& z! w" o if r(N)>2 {
( d! A% \* ~' I( a9 P 7 D9 z t, Q, T- N
pkexamine dx240 ddy240
- s8 D) }; v/ d6 V& |
. g( a9 c2 o+ K" A local tempmaxphddy240=r(tomc)
( R+ F; E& ^. j3 C' Y# R1 h, l+ M
! D- {& G% A! z3 Z& k5 |2 E7 h8 g restore) l" j* W6 z7 G) z" b5 f( Y! }
}
0 ]2 k0 _6 U& a X' q. k ?! c0 p& L
else {' d" M/ w: d- w, b" t: Q
. q* l* z! e* g1 d& b A
di "cannot find pmaxphddy240" h4 R' {2 o1 l6 j. J' `; n% h
restore8 {" W4 p4 P# H$ k: X
/ ~( ]# @ |- l sum dx240
& e7 {/ ~+ t* k; ~" F6 K: B% K! A local tempmaxphddy240=r(mean)
% B6 O4 q: b3 |" W) @/ ~7 Z7 f 8 ^ u% K! o7 r2 l
& a* M7 l3 ?/ c! V1 h* O0 z
}0 Y! Y* | i" R# E. l/ Y" j/ {% A
3 ^& Z# _: Q9 K7 P
3 N; K2 e& Y1 v0 J; B! l" ~3 a 5 {! N, q* o8 h- r" W% o- m+ j% ~
; W3 J6 V. s+ O/ _3 s, u( B $ G4 }; z) g, _8 w% _( S
+ S5 H" e9 H/ H( r; E, P
gen pmaxphddy240=`tempmaxphddy240' in 18 _' F3 b7 P7 h. F; ~
. f; g( C% z$ M. }3 U: Q
6 Q, L0 H/ r1 Y *-------------ddy240pmaxp右侧低峰值 -------------------' L4 v: x# k8 z* N0 O/ U: O/ U
0 C) [& ]# U' `- ^
preserve
9 p: K! ]7 g: [: u9 o/ h: Z# x * S# a' b) k; E5 b3 X | e1 `
keep if dx240>`tempmaxp'
5 a4 M) |& u5 `6 n L; J1 V7 }$ r- g * L$ x# ]% m6 s! w
gen temddy240=-ddy2407 S/ L1 f4 Q* w7 K
5 N9 V1 O! u* f& N keep if temddy240>0
/ g, A8 n: O' n- U+ T 3 h9 v* j+ t4 I
count5 w: G4 W+ m# T7 m2 m: s; W2 D
& v3 n% B: S! F: i2 j* Z if r(N)>2 {! t' K# h" w: p0 y8 a; [
& I5 ?' l6 w# j% Y. ^ pkexamine dx240 temddy2402 @+ A# J$ |$ v3 \) F
$ c- S- f8 h+ B local tempmaxplddy240=r(tomc)
* G0 ]3 }+ H1 A6 O$ J restore
# g2 ~0 m; N$ j! a0 b( Q! y }! O$ \' V, P# M/ k
0 R2 R* g4 M9 A+ k( W1 p else {# b% @' }" n/ r* J% }4 m
restore
/ N# t! g4 O$ W) ^& ~ di "cannot find pmaxlhddy240"
: M$ v5 L& ?" U( u" T 1 F+ r5 k2 Q9 r% ? C2 c
8 A9 ~/ \5 g, e' G( P1 T3 i/ r
sum dx240
" l3 p8 z6 i0 E3 x8 `, G& B local tempmaxplddy240=r(mean) in 1
) g: ~+ M# }) v8 |
% @% I) j( I$ W% e& `3 N( D
& Z1 R& W' g7 {2 n( o& p }
' U: U+ [ E5 f% |5 p5 a+ U& S/ b9 f
$ t4 a% O9 I5 E3 C* y 5 y2 _/ y- D _" m" k6 O
N( N1 v4 j: _
4 @: o6 \0 D3 V1 \) k0 v
2 Z* d' z' n( W7 R6 t; a5 R" v
: T- [7 @0 @2 Z8 Z) {! f6 h/ {
gen pmaxplddy240=`tempmaxphddy240' in 1
6 L9 M! T4 \: ? ( O0 Y. H* [ V b) N. P5 H$ ]
*-------------------------------------
1 e+ u" d) O4 S
& c& w( y( R L% u/ @ gen price5d=v5 in 1/20
9 R& }; I# A( b7 I3 R- a9 \
- x+ l, ]+ U* `( C9 D gen price5yy=_n in 1/20
$ L% n- L& A) B( _ ! Z6 t9 ]1 O# _* x
gen price5y=price5yy*(dy240max-dy240min)/20- }0 w. _7 y3 Z5 Z' M
6 O/ N j1 _* B, i9 ^: m" B
*price5y &price5d
9 P- D$ n: b1 r+ b4 y$ t
# I( @6 [! Z% X7 Q8 l9 T gen priceny=price5y in 1' l5 y* `- u4 q, L) @" Q
, X) W! T1 t+ c* C: S
gen pricen=v5 in 1
3 `% n" [7 G7 u+ M; D* \1 m4 ~) @" S1 Q
% q. q3 |4 [4 X- I
*priceny &pricen
/ S" [9 p, ^3 |7 ~( U' ~
# U8 z+ N H/ p2 v1 X% q 2 K' _$ c) b) @$ r" `9 T, _: h9 I% Q
*-------------------------graph------------------
* i4 w% t" e7 O% U6 D
! J& ?- ?: ]5 }2 U 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)
) G$ [# O/ ]8 D
& u% E3 I- o) `2 }' C4 Y* ---------可选项目----------------------
$ s4 k8 x: `) e* _1 m+ l6 E" k1 ^*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
8 ]+ S5 A4 \, s/ k3 ^}- S4 m) k$ A9 q( D7 O8 h
end* F" O* U9 D7 d) H3 t
|
|