|
|
maodeng 发表于 2013-1-28 13:13 ![]()
. M# Y" e( U3 A. hello 300236; p$ c% m' q8 H, w# S
statement out of context
9 U' G+ B/ |: B1 j4 U! K9 ?r(119); : C$ h- U* Z* d n
抱歉,最近太忙了
9 y5 o5 _; `. _2 M5 P9 u/ e) n" \- T+ b Z, }
300236 我用下面的程序试过,没问题% ?, u8 P* X) a2 z/ W
0 D- ?5 A* g% V4 o& N. o. }
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试1 r: L+ w% k7 Y4 e- w
7 v% C2 i8 W% J! C. Z; H& G5 c6 J/ ucapture program drop hello. Z5 }% {+ z4 t8 t3 W m& d
4 x2 @; O; V4 J# G% ?program hello' ]9 n% w4 N2 g6 [
& R7 d3 ]9 i2 K' g; S
quietly {. C+ F, i& P& ?! e' j+ ^
+ B% K! b9 S) z$ q% S) B
clear
4 F# c' ^! }* d- z8 g& l, A1 W- E2 v3 o: @0 a+ a5 f" Q
cd D:\stock\test\source V* s& c8 Q. w- \4 G( _
( s( V3 [( |) F% w4 z5 @! Rinsheet using `1'.txt
6 h; O) e4 H, ]9 a' R4 F1 S/ u6 J m4 G. ` z2 s& U: B2 v+ Z
keep if v5>09 O7 H: |' ^' m( r9 G) x
; O, Y6 Q) D* R' D! p% R8 _
gen vt=_n8 M( V9 a' Z4 j; s
$ j+ W6 m" O7 G% F/ F L
tsset vt! G) Q0 O. T3 T+ E
* z& a& @+ X5 z, I
gen zf=D1.v50 ^0 q$ g/ w) x
7 o _3 P5 A' w4 f gsort -v1
, P( J9 U& E! I8 s/ F; M" h4 l6 U$ Q! }$ M$ N* w
gen avol=v7/v5
( P# Q( S( m) q) T1 q/ f$ ^ ) E& o& K! ` t, @# g: ^/ L
keep if avol>0
* [% |8 j" D7 U
0 J. S" E5 B! k$ G' d! q drop vt
( y/ _3 F& P1 M$ T8 [ e' Q( |5 E & `( z( p' d. b
gen vt=_n
5 n6 P4 b8 \$ j. k/ x
1 T, M* i! ]$ |. U6 ~! e: x$ r5 _ tsset vt% ?3 k9 V# V* ?; B+ s7 ~+ z, q
( ?' [/ h# r4 B! @& T0 @2 D9 m% @ sum v5 [aw =avol]) r) k; u: I9 l* E. S
7 P; X- t- b6 ^1 o* h4 T& w
gen amean=r(mean) in 1
, [+ ~# f2 {1 n
7 |) [) v) m" q * 总加权平均值 amean. x" `) L! {# T" I
8 E% d U& m, B) G$ b8 u
; @0 |# `2 f# V' W/ M* Q keep in 1/240* H& p5 k* a, @- G, r% C% U% H
% N8 A1 ~8 m/ \( A x8 L sum v5 [aw =avol]% [' ~: `' p0 b0 ~1 B% J0 j- C/ R+ o
3 \% n* y1 B, S, ? gen mean240=r(mean) in 1
5 N* v6 p& p; y0 V + G- d+ X' |% j" p6 `! m8 w7 O2 w
*240加权平均值 mean240
0 o8 d1 B! v1 n8 W$ [, y! u ] & F: [3 A j' W& q% M
set obs 500
+ b6 B! ~( a5 W9 l' _, g$ x) \
5 v) w1 Y, T/ o% u2 ` I8 W kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
: O! ]0 z o9 X" c2 R/ r4 ?1 R( v 9 d* ]; |$ E5 Q1 s8 @" }
*240 kdensity(dx240 dy240)) U( E3 v( g9 r7 v# T
( Y4 o. [5 q3 ]1 `1 V: D
sum dy240
: I1 }8 U% |4 G: d) @- | * F* h ]/ E: d) C% T* ^
gen yxis=r(max) in 1
8 S0 ~( ~2 U- W7 q6 Z" W
" z0 P. _! V* G7 ^, M/ { gen yxis2=yxis/2' c' F$ |! \% @6 k3 u# M
- v. @2 B L- s- y1 Z: [ *yxis5 y9 _. _, @0 ]
5 b" F1 i. z6 v- b
gen dy240max=r(max)
* j: B2 P& \+ { - N4 e o' \' u$ U
gen dy240minp=r(min)# X. G; X1 F! b$ T* g; b
. J4 i# `" q3 `9 A
gen vtt=_n) t' Q' ^8 M) j
) U1 {7 ]+ F: @# ^: |$ y! P) o9 M
tsset vtt4 Q1 T1 f, Z* l1 ]2 @
9 d, Y+ L- X& `" k) h1 n+ O2 X gen ddy240=D1.dy240/D1.dx240' m8 s5 a, A6 w/ `
" g* H+ m" e1 c" ^
sum ddy240
0 p U5 t9 ~5 l0 \; \
) d1 m* ^4 C% d; V* C* b gen ddy240max=r(max)0 Q9 y0 a! t: H( B9 I
: e/ G- v& @7 ?* j7 l
gen ddy240min=r(min)
' F% Z# n3 V, K7 n ' A: I1 Q: N8 U! f" G1 P
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)% `+ I5 o: r! {0 X1 \9 T* ? b
; u+ B, \7 D3 M: s; d8 U9 a( V: @
sum ddy240g
/ u- O; s6 p1 J& v& Z7 Q1 H5 _
8 i5 r5 A7 Z d gen yxis3=r(min) in 1
, r0 r; B& @; [! S, Y; O# ~ & z' x- W& T5 b' h
gen yxis4=0 in 1
) n/ p6 |/ A8 m
) c3 X& `* u7 b* n& d *ddy240g
* G/ q s! Z4 {) \, f a4 m. Y3 ? 5 p& z8 S' r- x s0 v6 M2 {
) O8 v/ V- z' T. d/ K$ [& [; T preserve
0 L8 e$ J, K2 T, J. n8 ?& A6 k, a
0 q5 u6 I o& G; {& y; U sum v5 [aw =avol]% D; y6 R! }" C4 Y; `2 C
. e# @ \$ w0 \. p4 p, S
keep if dx240<r(mean)
' r/ c x% _* L2 i% b# E% G0 {
1 o/ x. Z1 `) N- N& p# M sum ddy240
8 V0 l3 M) X- h9 ^
! A1 l, q# [1 l9 g8 b/ M) q8 z if r(min)<0 {
0 K8 {# k! X6 ]2 B7 K. e b3 O
3 X& B* N. L/ \( r keep if ddy240<=0
9 q: L) R& Q4 p' _5 @ / Y6 u5 s6 c& }2 h
count6 V/ W. U3 ?1 b( G
) L; {" a' t$ s7 @; w# R if r(N)>2 {
+ m# \/ t. K" y! P+ i
9 V/ ]' _: f, E1 B pkexamine dx240 dy240 i$ @( F- ^& V3 Z( d
6 h) o! y- Y: H local tempminp=r(tomc)4 T D& Y0 |3 [/ K
restore 3 A: i" U& [# _8 u; ]5 l+ A, B2 x
}7 m5 k/ ?8 F7 \, Q7 s! n2 F
, v- e) d+ D6 A/ t0 i else {2 M9 p& `5 b3 [, G y$ A$ j
. c3 \0 a# R0 J- Z0 b7 {# q di "cannot find minp"
* ^- j/ ~! W" F. Y8 }! E! y
9 W) Y* {; x4 b% a3 A, t, M restore ( e" k; s; H S/ ~: F+ Y( ^
sum dx240: y7 D5 T7 p9 W5 d, v
local tempminp=r(mean)5 Y% `: a9 B' h, ?
, o. q$ f3 s* a ~ Z: T
}
9 M* x) V9 j) z k+ r; y- I }
4 w8 R) S9 e' } else {% |5 J- r7 O+ I% U9 t( {# N
# d! P" V- M5 q% H1 E% V keep if ddy240<=r(min). v* ^0 }* A4 p; S+ z; y8 \" D. e
4 Z6 {9 N1 Y1 k* Y/ B4 S
sum dx240" _9 x2 K& Q$ v4 f; k
, U3 E4 a2 `# K3 x( e local tempminp=r(min)
7 \. R# K/ m6 H/ Z2 G. }0 m restore
) ]0 ` R. R# I$ v) z* u b* `" U4 { }
7 K2 z, Q+ K5 x
: p5 y0 A5 T- `2 |
* H0 D( \* T ?% M# l
. d% c: \. Q5 U1 O gen minp=`tempminp' in 1
, z6 O6 f5 U, v( W *240 minp
, ~3 e6 d: g" T( t; T" K' T* U5 }* r z2 S0 ]. [
' L4 X* f7 W/ I
g2 F! T4 j5 I6 J5 A
preserve , A% B, B! T% Q; @5 a1 J" c
8 B/ g6 e+ h3 r0 P, T1 j sum v5 [aw =avol]9 ~0 f) a9 B7 C' f' k
/ J7 ~1 ]" P# E @: b
keep if dx240>r(mean)
$ l' K" @- s d$ x6 G% k2 a. `8 I
/ ~( }# O; \: x sum ddy2404 u+ ~3 f4 W8 Z- N" b
) r. n! @. ~# o Q9 G, a1 z if r(max)>0 {
/ e. X1 ^: @ _3 |/ J j
, q: q/ m* k% u" V) q keep if ddy240>=0: B3 b' I1 ~# p/ b
2 F% ^: b- g% r2 Q& a9 W
count1 M6 \+ G9 H }) c
7 f) v M- L( r7 t/ q8 V3 @; N if r(N)>2 {
+ Z! ?& V5 l3 C& J/ c : U) Z- V6 E3 k+ u) |; O& m
pkexamine dx240 dy240
# e! P6 [2 {$ b: x a4 W
* o* W# q+ e4 N2 r local tempmaxp=r(tomc) # \# ~, ~6 @8 S6 I9 E5 R
restore
8 g1 ]: L7 k! j) \$ g! A3 H) ^ }1 I) p. g7 p/ L+ B7 e' D; n) e
$ j- i9 e4 h) U$ D g' P/ `
! M* B9 A9 {! l) q1 V6 t' \0 Z3 K
else {
q, h6 Y0 Z6 R" j% m; H restore
: _; M4 Y2 Q" h5 E# f; K di "cannot find maxp"
8 p- h! b, Z' b- D5 G+ V; n# r `, ?$ Z9 y$ k+ T8 N0 Z
- J; X7 w9 ^; s( c
sum dx240
% L: I9 p4 P* R. t local tempmaxp=r(mean)* r6 S* `! C' t! _$ ]! B. |4 C
9 E6 U0 F7 v- K5 S }3 a1 v$ s8 s0 B
0 L) j0 L: i( q# Z H6 n+ g0 v
}4 a" a0 A) X2 m2 [1 N
. | S4 T# D5 r$ l; Y# w4 C
else {
& [! \4 |( r( r8 j( t' X; Y / V+ A u( }+ m- q4 O7 @- l* o
keep if ddy240>=r(max)5 h7 Q* q j. i9 Y/ G; {
. x) n' L/ H7 b sum dx240! E, \+ k' P9 V
( P4 }- t& ^+ Y
local tempmaxp=r(max)
; G- A. z# }. ? k restore 9 d7 B0 M1 o. D& K( l
}- j l4 e$ a6 `% c8 k5 M
( V; ^- S1 _1 h6 U
A! }/ P- W$ C3 r , d0 Q* U5 ]% y# Q# {% E
& I# P' P! {3 X7 ]' s& Q gen maxp=`tempmaxp' in 11 Y) ]/ ~, U1 R4 N$ e! K' \
8 F5 B7 ?5 |) d O% F+ W) K *240maxp
& y% P- O& s* K/ G B
7 a4 q# H( d" q, a: z( B
, z+ @( J- `8 g Z/ [' J& t *-------------ddy240pminp左侧高峰值-----3 Q/ V( X5 q+ Z2 D; r9 E; b% O9 k* s) i
$ T+ {# u4 T4 H4 h& X2 A2 _& m% O
preserve $ s! T0 l" [' a* f
/ d! t' W4 U) X" B keep if dx240<`tempminp'
, n4 r, i- |2 D2 A. ?
" ~2 E6 j3 Y( M4 z! ? keep if ddy240>0
& j# }$ a! T0 P/ ?$ f
9 N( n# D p# k9 n9 A count8 S l4 v( u* D g
) {! c3 }& H% o* I, l
if r(N)>2 {0 Y4 w: X4 `8 g' M1 X3 ?$ v
0 D# Q# S: c, D% _ J# s% W( f1 q
pkexamine dx240 ddy240
: L. q, H9 [8 G* h5 |# h" n
$ K4 m( @5 {! k4 j( W" t# }- I8 c local tempminphddy240=r(tomc)
% P! u# h' j8 q1 p, J restore' T+ x& p% g" r4 V0 H; M
}2 b# c9 ~/ G# y8 O4 G) v9 j
' b5 g# d' V# n0 D
else {
+ d P3 a$ \: t+ x7 W restore * l7 J9 ~* g" z/ u
di "cannot find pminphddy240"7 P1 y2 D, C) [
8 F& J$ |: |0 [$ u" h
- y& T; n" v& T9 }
sum dx240# \! V) w# x$ |. N' O$ l" z6 E
local tempminphddy240=r(mean)
4 P, i. p8 s& }. O/ f) |3 V; _- ? ; _3 A9 M: U5 `& a ]
( s% N+ F4 j+ D, {$ Y }
0 e* a2 R& e2 |
+ s6 y; W7 y0 _; K( s9 w" t 1 M; ^6 l& ?/ ~* P5 n# t8 {% D
- v1 i' J2 N! j V) D* _! Y, ^
8 _ v2 y4 {! Q; P; q* F
9 w+ u% r3 }0 z
5 b( k! x- @- V4 j6 B0 ` gen pminphddy240=`tempminphddy240' in 10 P! x# G0 \8 }$ g; c
( H, |, m- g: ^& w& H' Z# T! Z, |
: k& N; @7 T/ ^# h9 ]; r *-------------ddy240pminp右侧低峰值 -----------------# l9 G' I1 a2 H R# J
preserve $ S M. t4 \. ~5 ?) V# a4 B
- B# F! g0 e$ B% b3 H+ r keep if dx240>`tempminp'1 i3 K8 J9 x5 O
6 ]6 d% d( p% C8 o! w keep if dx240<`tempmaxp'+ O) s+ m' E, n
Y s: M" Y! ?& @, `
keep if ddy240<0
3 j" D/ \3 N. g" p0 g# ]/ W" \6 {% E & r% p+ P5 U5 L/ a& }: E: c
gen temddy240=-ddy240
! d: U% V/ N! W ' G- W# j7 d3 R" w8 w9 k' ~
count
- Y8 G! j' S+ a- ` 0 o7 g Y1 [$ R) q; m
if r(N)>2 {4 s+ r& l! k. Z4 ^; l7 ~$ l9 ^
) `8 S9 W+ f, Y/ Q4 Y% A pkexamine dx240 temddy240
8 @7 U2 E' m% K$ ~) t 4 C0 Y J% y$ ~4 y0 X+ F7 Z9 z& `
local tempminplddy240=r(tomc)% ~: ]9 v2 J! w( T7 Z% j8 x) p- P
restore( k) M! S$ o* Z3 j2 Q; R
}: k% j" k+ u3 B, O9 Q
" m( y- q' W: j1 |" J
else {1 v0 y4 N( v5 Y/ p" o
& P! R" Z. M! W% i8 S- b di "cannot find pminplddy240"% R3 ]1 G, i5 c9 Q
restore
0 P7 D, s& {' z4 ~& |& F- T0 T
# Z) o" R1 {+ W/ e; ~: _ sum dx240
# F+ G/ s( [% N- e3 D% t% v7 x local tempminplddy240=r(mean)6 k. Y$ ^9 a8 E5 _2 _! ^% K
/ `$ f! Q6 ]+ @& V7 N. Y % Q7 l; n* k2 \ K
}
( g& z: P N* _+ G0 z" r/ H: q' T
4 ?0 \. _7 N: Q0 G! d0 v/ Z0 U( o
: C0 h' G, D& P: G: }
4 T. L1 X' ?6 x' S0 K+ g
]; w% b/ I% m; V2 p0 t9 r $ ?# r9 j! [8 @% v+ x. m
gen pminplddy240=`tempminplddy240' in 15 N1 ?& m' D. I. f6 d7 i
3 A8 V: o7 K- |" c; x1 k u6 M
*-------------ddy240pmaxp左侧高峰值 -------------------
. ]8 A9 s: F, K6 ] ' m+ A2 M4 g% B# |* M9 V
preserve
6 Q: _' ]2 z/ @" y * Z1 D5 x' r& x5 f) @: M
keep if dx240>`tempminp'; n9 B$ O' r/ _! d
4 z- Z$ K6 s! d keep if dx240<`tempmaxp'4 u) @& y3 D$ k! C, O' O7 D
: ?8 z8 h; Z, C8 O" U+ ?1 T' ?' W6 Z
keep if ddy240>0; A& X6 m7 b1 Q. j/ d& E
count
, u' O: G* Y8 X9 L8 @ % B+ ]- e w, W7 n; Z0 s
if r(N)>2 {0 }8 W- t- L* S# t
% D8 `7 ~+ p) }( Z7 L# p' M N
pkexamine dx240 ddy240; o) S; g8 Y4 d3 {8 I8 _: }
. C9 h r! \! Y( \/ ] local tempmaxphddy240=r(tomc)
% N2 f. w9 a/ X" r' N 6 m J L. f& i, e
restore
5 _. H6 s- \1 v' } u) t3 _ }. }' f0 R d( R- ^* a* p8 C
- F) @% V0 C# J$ ~ l2 @
else {
! a1 s; L# y' r( A
{2 @7 z" U% @ di "cannot find pmaxphddy240"/ l6 N+ w. }# I! z
restore
) P8 h$ W5 [1 F: d0 @* O, ?- N 2 S H! {4 c! _: w0 f: R
sum dx2409 P1 `$ n. I- R8 e
local tempmaxphddy240=r(mean) : A5 Q* c$ i9 \# f9 q6 |+ h- B
. @9 y5 A# z$ J" M3 V1 b! c& J" h
- ]: D2 x0 ]: ~+ t0 T
}
, g; x7 g4 }' F5 }/ ` : t3 q9 p$ r0 v' O
7 G2 J U' r5 Q9 V, {
3 L# k9 F! k$ i * f X+ f+ j( C: z% g
1 S* u4 F z8 Q9 D# _
4 s7 P$ K- d% @! ~7 E+ _ gen pmaxphddy240=`tempmaxphddy240' in 1
5 c* }& ^7 f% I 1 Z- E$ T/ v1 Q
/ {% H9 Z1 X) ^ *-------------ddy240pmaxp右侧低峰值 -------------------
" S4 U/ F; M& C7 l5 m
3 a5 w, C$ p4 u* l" W: b preserve
9 j2 w0 b8 v: q4 {# V3 p3 o# h6 i7 I% k 6 ?, F9 U* n1 o, x! g- [6 b
keep if dx240>`tempmaxp'1 y& z8 a+ U' h8 S# ]
; I7 d: H2 R2 b3 G9 s
gen temddy240=-ddy2402 z( u6 e( T" [& N) B
/ @! R5 S( b8 o3 u/ I
keep if temddy240>00 t8 o+ Y& R, A: r. A* V \0 R
$ b- `' y' \8 z+ p# [ count$ g- |0 }* g0 ]0 ?: ]3 I
1 {, C0 H7 J" U5 I: d, R1 x7 V& a if r(N)>2 {: O6 T& [1 ^1 A" ^4 ]
% l" c" A' @( W pkexamine dx240 temddy240
/ g( [* X# b, v" I7 B8 K' R- i $ f1 t- q- q$ Q& {/ S# U5 x
local tempmaxplddy240=r(tomc) . e6 z8 a) {# f- x/ z p
restore9 \0 s. d9 z% {0 v2 E' P9 f8 f* w+ b
}; c, p+ p1 M, o% q8 k' O
2 q2 `% ~- \0 ~7 v+ |
else {. a# h4 N; z9 y6 [
restore; X* d3 k0 U3 t1 V6 c; b% d5 {
di "cannot find pmaxlhddy240"' ]. D4 t1 ~" c* r5 R
2 y" ]: I7 r1 F" S1 o/ Z
# N, ]- z; s2 w' N/ Z, A, v7 u" d4 u
sum dx240+ q# w& p! g& F1 @: i
local tempmaxplddy240=r(mean) in 1
/ N5 j* r# O8 Z k) c7 ^ : u' @& m% q& r! ]8 p! G& z
0 }0 {8 E" D0 V8 t `% B. y }
! I( T3 g5 u; J
/ O, b0 c. ?2 O1 \ a: J
6 Q3 \. Y. ~1 u' W- a. [* k ) Y% J8 m$ @' N7 \# i
+ l9 U/ y2 }: e7 U& T( R& o
4 o7 e6 V$ F2 f( D9 w/ L
' U1 L8 W! v+ s9 | gen pmaxplddy240=`tempmaxphddy240' in 1
* ]; W9 a4 r" u& L9 c4 o( s
1 o% Y, Y1 y, m2 K6 M( g1 ^ *-------------------------------------# c; o# B( s$ f9 N9 J/ V7 B
6 }( P, B( H5 _
gen price5d=v5 in 1/20! [* f3 l3 ?. n. q: W
" h* z7 {8 F* T. u! G
gen price5yy=_n in 1/20
" B' L& @; P5 U1 \
" ^) ?% N5 \7 {: v5 `5 `8 a gen price5y=price5yy*(dy240max-dy240min)/20, A6 Y# [% z8 J" O, k
# D2 P% V5 d" y7 s& J5 b+ ~9 ?
*price5y &price5d
( W+ }5 N7 C* x# b% U& H 4 p: j2 Z. z4 v4 x9 h
gen priceny=price5y in 1
# \7 A# s" H6 ?7 b$ x
3 u. g" A$ H1 o4 l" A; _ gen pricen=v5 in 1
, S% k: K H4 Q8 E. C. s8 f
/ q1 V, E+ O/ D, M `3 T! _# J: \
3 @. I( J K0 Q; w9 E3 N. Q0 {1 S *priceny &pricen' i" `& o+ }( e* @$ r5 N6 H5 h0 K
! ]6 z) A7 p) }$ m$ [/ ^
6 ^8 [' W: }. |0 D. Q *-------------------------graph------------------
. v3 _1 o' t, n2 W ' T" d$ F3 x; y5 F n6 R
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 {, k- g8 F7 J+ z
* c) H& `4 k! Q- {/ K& @ c w6 B* ---------可选项目----------------------
9 H6 V' e% ~2 r; G' e) U*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
- K, l" x% o9 r}1 v0 P0 n+ V& H- b2 i- B4 c3 a
end; v& }5 k: W8 [( @) E8 c: y' \9 g
|
|