|
maodeng 发表于 2013-1-28 13:13 ![]()
# y: e! W, ?& b# [( L. hello 3002360 @# l; ^+ N4 o8 p( z4 V6 T
statement out of context
( U* Q# z5 z+ v/ m# A! I* o/ Kr(119); ( R, O4 @3 L" b7 M7 F% @
抱歉,最近太忙了
) `" E5 O6 s* ]8 c: F$ U* V" Z: ^! A l8 c
300236 我用下面的程序试过,没问题 R- ?+ J+ D W, u
6 ?, ]! C0 D z/ i! i5 J* c, B) S
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
9 P- O+ \# u2 `! N6 A; Y* S6 s6 E2 k6 c3 E/ ?( E9 m) r5 |
capture program drop hello/ `7 ?5 o) R' K3 ^* S+ r5 Q: W+ |" c
' ~& Q) b# E' Q5 ~program hello1 H9 ?9 H7 ~" {& A5 r
! k2 e" _5 D" c) w: k( \2 a8 U6 n/ v quietly {
6 ^- K. B. H" U2 w* ^# J' L
1 o3 ~: k: ?# ~ jclear. V& w+ h8 m0 K/ E0 o
) A; I( L% q# a- J
cd D:\stock\test\source
( \) l* q$ e2 i4 r5 n, h! I- h. _! U$ t( U7 I+ i z0 H3 |5 \
insheet using `1'.txt
# ^; Z3 l0 @+ y) G: U% D9 E8 _- W# x: }$ W2 T( ]) O/ V
keep if v5>0
7 H- P% f$ X0 ]& s5 I. \" E
$ T$ q2 {+ W; ~( l* H" } gen vt=_n! ?5 M8 T, V9 \: P
; a0 N* w0 G1 y4 K: N tsset vt2 M! c* |2 f( T
- F h" P- y: f8 c4 E# m7 C1 d4 E gen zf=D1.v50 T4 ~4 \2 V8 O: E
( Q5 y7 k* W ?2 g' N; H, P
gsort -v1& y1 T' H/ i5 f" o0 r5 D% Y9 c
7 X; q9 o1 b8 u3 l0 C& |* g6 I& } gen avol=v7/v55 S. I$ Y1 U$ W$ J& a9 g
, v( M" u6 H/ Y" a; h$ H* t; z keep if avol>0# z* _, @) g$ R4 c; m
) \. g+ x( n6 b- {
drop vt
1 M, G- |" f$ S1 w5 B. ?& o3 [ % E$ ]) U4 Y4 @, m: k
gen vt=_n1 E% X5 q c) d+ Y
9 `' p$ S6 q$ {7 B' }, Y4 r tsset vt4 l0 a9 Q( V; ~; a" o
( _2 g$ u. |) _" }* v5 ~
sum v5 [aw =avol]
+ k U( J5 U* h$ U! i) j" ~$ }# A+ x5 g5 h4 v
gen amean=r(mean) in 1
. L$ q n) U1 A5 e
8 s7 H7 p5 f1 u* u5 X- b * 总加权平均值 amean( a8 H; K* j( g
0 K; h; E/ B7 U$ g- [7 n
$ m6 g; [, c/ ^4 F2 x& Y! ]! `" Y
keep in 1/2407 H: o3 i! F/ f( e* p0 _
4 P- ~9 r; |4 w9 s0 R) C) ~ sum v5 [aw =avol]7 n# @6 q9 p& @( \8 M9 X g
* ?- i7 O6 o$ h% g/ S1 p
gen mean240=r(mean) in 1% q! d7 y4 E$ k% \6 g
4 u% l3 F: `# F% \7 a
*240加权平均值 mean240
1 H5 ~' d% y" w2 b 6 G6 @" Q1 n' p* S0 a/ S8 E9 {
set obs 500 7 i. Z5 a1 a3 @! r* a1 T+ W4 q8 u
/ u i6 v6 A) p# s) z kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph: f4 b [/ v( o: j7 `6 x, t1 a$ a
& m" Z3 N6 M6 } s! T- P) O
*240 kdensity(dx240 dy240)
( A3 t2 N) i/ i& P
" r+ J" Z7 d/ j. Q sum dy240! p6 C" _7 `$ M, O
1 a4 U1 v' X6 w. Z* i/ G
gen yxis=r(max) in 1. M5 h! Z3 @6 ?1 c/ _; `! n+ E
1 w4 c- r6 k1 b gen yxis2=yxis/2
. f, R0 T% Q# i" Q- l# @ 8 L6 @4 v9 \( T8 u
*yxis
9 i% ], P/ Q. z$ y- ^ 1 x. I2 ~" w7 p8 v: p7 b3 o3 w
gen dy240max=r(max)
4 O Z9 v. d' U; n1 U: e0 ]
& j8 G" C4 P G9 l: Y gen dy240minp=r(min)! S' _0 g0 W* o" N1 Z
& s0 j5 \" z8 ^' T2 \+ a5 j( I gen vtt=_n; p. D7 E, J0 u1 \
& W9 R$ w0 }+ c# l) ~8 T
tsset vtt
/ X# P5 Z/ Z2 M8 L7 `4 @; p0 \4 a: N$ @6 B: }5 X4 g+ [
gen ddy240=D1.dy240/D1.dx240
: }6 _* H9 O( J$ x 8 h1 I0 z) g% i* |
sum ddy240+ S% u i5 G1 I0 a
4 P3 c/ q9 m* U" O g
gen ddy240max=r(max)) O3 E2 l3 K3 J8 w& s
0 W0 S: }8 x# R" @, L: c0 q5 G; L gen ddy240min=r(min)
" D2 P- J! v+ O0 g4 }9 p " D4 \0 M. |( U' u$ {7 O
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
+ j0 p/ w% e0 K1 G, I
) k, e3 B, k9 m4 m9 I6 ^ sum ddy240g+ ?- m( w) U* G* O- K0 X
& S2 u! ]! o7 \* D) z! x8 g gen yxis3=r(min) in 1
( m( }$ {/ p' w( ^: d) {" m ) t3 ?8 s6 F7 M# m& Y
gen yxis4=0 in 1
; x, L' X* ]) C
+ ~% e6 ~) V2 B) u/ S *ddy240g " @, H. U; o. b' Z! ~ [$ w" d
6 p; t& h, E/ P0 M7 G. Q
8 \: h# t+ e* g
preserve
C9 ~& V5 k y8 B2 Y6 t6 X # K, A0 M) n+ f4 o: ]. J2 u, u
sum v5 [aw =avol]9 O: F7 y6 @8 @3 w9 L- O
) |! F2 x0 O' F% ]+ ] keep if dx240<r(mean)! w, K" r n9 B
: f4 J/ Y8 q: S; p! ~8 Y+ B4 p sum ddy240+ T$ G% |3 l R- T
) z8 ^" \: J( ~$ o9 S8 Q2 q5 A if r(min)<0 {
T, G2 L, {5 T9 T/ X, Y6 K; ~
& Q3 S' ^: V/ p7 b& c9 k keep if ddy240<=05 I: i4 j2 E! ~$ _, w8 f, L/ ]! H
/ J6 g+ k+ _$ N1 d5 [ count9 T/ I+ H6 \: ~% w, A
1 E2 s9 c. k9 z& X* Q2 q
if r(N)>2 {$ _; K9 p) w" w, a9 G* V# h
% l8 ~' F; j$ q# @9 l7 @- d8 ?4 F pkexamine dx240 dy240
) V8 I- i+ y" L3 k! J , a7 `/ x0 ~4 i; R* d( |
local tempminp=r(tomc)4 b. F! G: {0 s& k8 b' x
restore / {( Q. U8 j( G' p; ?
}7 S$ v- R3 \* B7 X5 O
( W6 Z0 M7 v; x: G/ x
else {
5 B/ O9 x4 A; x7 o) |9 c 6 S6 p6 R' N+ G H( ?# X R8 M6 |
di "cannot find minp"1 E9 f" I# W/ s. v9 w' ]0 w; _
7 Z5 u6 J. P, } ?: A$ j
restore
* b! \. ?8 ^* T! \2 `2 [$ g% f sum dx240
7 `1 ~% W, p+ N1 {( Z local tempminp=r(mean)2 u9 I' Y/ R" R! B. {# T) j
7 p' s( C4 ~) g9 m }0 K" H, M# R/ n6 z
}' B+ F, k6 G+ t/ w& ~8 q
else {0 P3 R# O) n* k
8 I( b9 z" k; m5 k) U
keep if ddy240<=r(min)
5 A* i( y; [0 F& `2 b! j: w0 [ 0 T4 s8 u. Z8 }# \ j' B8 F
sum dx2405 c5 B {# V' J' u
# J% g2 z( z) g4 [$ v; M) `5 h
local tempminp=r(min)& _+ |: C+ E0 H* Q
restore
* M( j" ^ R7 E3 Y: m: R }
+ I. F# O V9 K+ Q4 H; F0 c N& j7 V
) J6 y. |/ T& l$ t3 b( X
: k, Z' D4 w/ Z8 j' C. v# }
gen minp=`tempminp' in 1
" c4 W; g- }% @) h T& F$ z *240 minp
, L- u4 t2 S0 s* K* g& s! \3 G$ m& D, n' P$ {; X5 ?" E
, f$ [- `5 I. C7 v$ p! r+ z% D) B1 K & S7 t& `6 z/ W: U, r1 q$ m+ y
preserve
6 ^( y* d& z: { + w" `5 H% u/ }$ S) Y
sum v5 [aw =avol]; m: z8 d1 L+ ~$ y" |4 p
) J: h: b& m9 f6 Y# c keep if dx240>r(mean)
3 W0 a, X. y, C6 u' H0 j5 e 4 H3 n$ S5 ^/ K; M- l4 q
sum ddy240
( i$ `: q0 t6 {4 z5 k* [ e
. J; J5 i5 y6 o7 R" G9 D$ f+ z3 [$ X if r(max)>0 {/ V4 M4 q! b; C3 n! n
4 @- d8 h$ u, ]& E+ q N keep if ddy240>=07 F) P5 @; v. {* G0 R
" }) ^8 P7 C4 |8 O4 x2 j9 z2 r/ k( h count* O- H+ Y- a: C5 b/ f! \& h6 u
, a5 X; q9 m- m) J# N if r(N)>2 {! O# T$ @; v- d4 l# F
6 g' [; A% l! I" J9 Y' |. A pkexamine dx240 dy240
! o% i: Y! N2 L- e 9 z# Z4 ~. d9 ]8 u
local tempmaxp=r(tomc)
- t9 Y# w6 Z" a+ U3 | restore m. j# d1 P8 Y
}
; M6 C6 \( D) q* U0 Q& ?5 S
' J0 V3 U& M; Q1 r/ [
4 q: J+ g" X3 N$ p2 M else {
3 S' B% g+ O2 ?! B |/ N% ? restore
2 S6 v, T& {. o di "cannot find maxp". }, Y f( D1 q5 ] J
( ` |0 A# q. o3 I% v
, V: f+ V( o1 p+ i sum dx2409 n0 P! D: E& z# w# E; F6 l
local tempmaxp=r(mean)
1 }' A& C! c: q+ n H
7 D' J# Y% l" k0 p+ c }# f! y6 t; c& s
& G$ w2 j1 _/ m }
" {- ~; Y' u% x+ L% j- {
: e$ ~3 G4 e6 C) {: F! C else {
7 Y9 F% J7 `! U, Y |" f, ]7 x ' \ q! I2 D R8 `3 }' T0 x
keep if ddy240>=r(max)
9 Z; W w' [) R/ C2 W * y+ y7 P: H; G9 E6 X
sum dx2403 m; ~% B& }( ]! C+ p
4 J- I, u3 a4 W7 P
local tempmaxp=r(max) / M+ Y+ k% K3 y; E D4 z+ E b
restore
, O/ t2 t# B1 g) g- }+ F: q; ^6 r }; `5 U. `, {% E |! P5 o- ]2 Z7 P
$ S$ G& }! f# H, o' N; t" F6 W9 e% ^9 Q; P
) k# C$ W& k% {
1 I6 |# s7 u% S2 e( H# x gen maxp=`tempmaxp' in 1
3 H: i$ M9 k+ b( q
$ ^; W: O: F5 D: D1 W& r *240maxp) q% `2 R; E* m' J
, q4 |0 T, W' B$ X$ A3 r6 O0 J
2 w7 L* o, w I+ Y2 o: H P *-------------ddy240pminp左侧高峰值-----( k& X$ n" H7 n9 z" w- ]& O! H
/ u7 d" ~9 x* F) e
preserve * k+ q0 i; i' h9 h) ]: T5 i0 M+ k
( M5 L8 Q% x$ u keep if dx240<`tempminp'+ |2 P; [& z5 S+ ]. n
L% x0 Z" E6 L4 q& M A; I
keep if ddy240>0
$ D8 d! U5 @" a- B+ e
8 ~& w4 y/ G1 {/ A2 N count
( T/ n/ K6 Z4 H4 @ ! B6 m0 ]7 Q& N7 w5 @
if r(N)>2 {
3 D' \, ^9 P/ L4 Y& j$ Z " x7 q B- {) y/ V3 Z
pkexamine dx240 ddy240, a" {+ B; M8 E o3 X. X4 b
# K) [5 W" w9 p! z% F
local tempminphddy240=r(tomc)
" L) F v2 m% }" h! T' J1 R restore
7 `/ N2 Z! Z* N" F! c- A* L. ` }5 w9 m: H f: O$ r5 N8 G& Q6 u
; {& c s$ P1 t0 q. Y0 ^" ~% e else {" t$ `4 q5 x/ c) u* R
restore 9 C* M) d& J1 J& D) E" g! z
di "cannot find pminphddy240"
" u2 b$ E4 r$ K1 o ( g" F. V `, R) ~( j2 V
: Y" X* {! F6 p+ }( @
sum dx240! F6 ?8 d7 K* ]" x
local tempminphddy240=r(mean) 6 d, f2 O9 U( }0 h& k& H8 M7 w
* S8 A! i5 y; n8 y1 b) v/ E " y' I) \( u# J, M- W
}
w/ ~3 H( q! c + [9 k: \2 v& o0 U) l- \2 H' d" U
% p+ K. I" Y: G, u 8 G- p4 D. d3 ~* h
}& O) e& n6 c, @+ z% U5 d/ C
5 m& G" Y* M6 W8 K* { # W9 [6 V. b1 B$ {
gen pminphddy240=`tempminphddy240' in 1
( p' j' m0 y2 t
6 K& J K% {; D8 z8 _" e; n ' `, q# g0 {& p! ^0 Q/ ~0 r
*-------------ddy240pminp右侧低峰值 -----------------
+ X6 j$ t' B, T- ~ preserve
2 t# g r8 S( z
8 U) l- H% f: T, r! T# S% e0 R keep if dx240>`tempminp'
' p7 w2 W+ t( S( M! v ) R1 S- K/ J( x$ ?
keep if dx240<`tempmaxp'
+ y- _ k o9 |% d
. r v8 Q1 ^, y2 T& z+ O keep if ddy240<0
2 A$ U Y8 Y7 [2 {( Y' h" z+ g; y: o
0 V' m/ w- `, w( X gen temddy240=-ddy240* k- c* {: R4 s( q5 ^3 ~$ K% I
1 R9 c, L" S$ C% P+ Y/ _
count) D c3 M: V) ]3 _- S/ t5 v
" Y2 C& C+ J% F# B6 c8 P, T6 y+ a
if r(N)>2 {
+ F+ h7 N/ t" e/ U) v. ^
4 Q& z* R o" ^: ~) | pkexamine dx240 temddy240
; h5 ~/ j4 i& C+ {# | 6 A1 U/ I, C7 L. \* K3 {; [: L( E
local tempminplddy240=r(tomc), C3 ^: W; E4 Q. S8 J6 y/ Z1 G
restore1 ] a- a0 ?1 a5 B8 P# U
}
/ t, s; o+ n4 f+ l
) n! F- ]0 p+ ~% F, }0 w else {8 C& w1 d% O9 e! U G9 W- |
- J4 L7 ], S1 L3 U
di "cannot find pminplddy240": W& H! h8 _# t2 E3 V9 B6 W2 D
restore1 d3 v; g6 ^$ w v1 a: H
% k2 r& k; W+ ^- @* _8 v! S
sum dx240* H8 g u1 h' P: V+ [
local tempminplddy240=r(mean)0 V' C7 J5 r( V+ Z- L
2 h0 n0 Z# U& \/ `3 ` F/ D% x5 |
# ~, W5 r1 E, ?: W }+ |; A! c1 ?, ]& F7 m6 t, q
$ [" T& L: \, m- J3 I
! o8 M5 D! a2 ^2 P$ c8 S# ?9 ^ ' R- P5 B, R3 Q2 a
& Z; d/ m" ]5 I/ E/ a* u+ |# L; N
% }( X" a* c" F- b gen pminplddy240=`tempminplddy240' in 1
, I: P( q0 K) O' G 3 @2 x, D) ^4 {$ ?) B
*-------------ddy240pmaxp左侧高峰值 ------------------- j! j# S3 Q1 U/ a U+ c
: |0 g1 u- b. h: }0 L! X
preserve
; j7 q+ y( [4 ^ I/ g0 ]
6 _( u2 u0 k, b# X& } keep if dx240>`tempminp'
; r6 Q' N6 u0 i" `5 o+ M4 _; N7 | % m$ l$ X" b2 C1 ~- P5 X
keep if dx240<`tempmaxp'1 Z$ p% E7 l4 s. V1 \& \/ J
1 S- J8 ^0 s: n/ a0 Y1 B
keep if ddy240>0& H. Q+ C% N+ i1 C/ s: ~( u6 b
count# G4 x- K* J( b) q$ t* w. p
! D9 `, a; X' L5 Z( F% J if r(N)>2 {
" ^6 w# a: ~" A* W( z 9 j5 V9 K% |3 P8 k- B2 n7 X
pkexamine dx240 ddy240( y$ g% t2 u4 w5 E8 Q, U
; o/ E' T Q4 F# |9 I local tempmaxphddy240=r(tomc)
- E6 S' E' |6 D4 N% @0 W
$ q$ N3 c7 o: ] restore
9 z& y' N5 g# @! r& X }/ S: e9 x- D0 ]- T. W
/ U, p) |2 Q+ o
else {4 E+ D% u) [/ p( a/ U
0 E+ L9 d! B0 s# S, C/ @/ Z/ ` di "cannot find pmaxphddy240"
/ w3 c4 n. u4 Z7 r4 ^" b restore
/ \* a+ d' Z0 M' Q% A$ E
6 D& c9 l# S8 D$ G5 E' _+ | sum dx240
& I% g! |3 ^+ g: Y local tempmaxphddy240=r(mean)
- \/ W; A( C/ a0 G $ K$ ]/ h$ t C, F, c, x6 B
4 |) [+ h& G- K( H3 d4 L
}1 X5 P3 R& u) u/ a% ?6 Z/ C
' \5 f; H4 P8 D$ X7 M6 Q2 x. f; ? * n) d2 G9 o3 z) h
: m* t- J3 K- I2 X/ }3 L8 M
5 W" I2 s$ s$ P ~6 v# I+ Q) ~0 I
) b& `3 Q3 k# g C * _$ d' W1 G* E( f7 p4 \
gen pmaxphddy240=`tempmaxphddy240' in 1 Y" Q: j m- ^5 e
4 _5 ?1 O; h: \, I
' t. L$ {6 t+ J0 z; O3 c
*-------------ddy240pmaxp右侧低峰值 -------------------
) g% J" N: p; _% E" m$ O/ N6 y & s; ?$ Z, [: Y" f3 o
preserve * y g6 [8 d8 N" ]( J( k2 A9 Q6 e* x
+ S, K. M' Z3 Z4 j keep if dx240>`tempmaxp'6 k4 D( v& N8 Z4 c/ V R+ [
+ G' C4 L }1 q" C- E: _
gen temddy240=-ddy240
" ^, t8 O$ g5 L, c1 K - U8 B9 p, B( m$ a
keep if temddy240>01 ]" E$ y2 j# J2 I8 n
$ h8 w( I- U) Q1 i9 }
count9 Q& w- K. R! t& o6 @
" q4 Q/ x* m! a+ y: i! \
if r(N)>2 {. i; v8 A; Y; ~" D
; [$ h* v) H& k" i5 R
pkexamine dx240 temddy240( M( E& u+ r$ E& l% i3 {
+ d+ i2 Y, v. D# W0 p local tempmaxplddy240=r(tomc) + t4 R' V, V4 ], z
restore
3 U. D' g% s2 n6 N0 w9 @# O/ p }
9 x3 k! x7 Q& v. j/ [9 X
' T$ T9 J4 D, p# L else {
: G r' h- B& N3 U K restore& _3 w$ k1 J9 n
di "cannot find pmaxlhddy240"
& C; X$ R" t% g* e" k: X2 a: m
( P! Q! M. ]8 _4 F8 i % l0 ~! }, J0 u9 {; `, M8 p
sum dx240. R* K6 u( U! V! ~. ?7 G( r
local tempmaxplddy240=r(mean) in 1
/ G( l) l) y2 w! _' P
( q, a2 i/ k) a ' @1 t9 P t2 c5 `! D! t
}" D5 s# Y/ G- q. [+ ^) h2 \7 r
1 n7 I( g# r+ f* N) c 6 ] R8 [7 ~% K$ K, T. r0 \
% R4 i+ b! O$ ]5 Q
7 w/ [& W, v8 P9 Z9 ]
k: K, b7 N2 l& G1 D ; }- c* {* [5 D" j. \
gen pmaxplddy240=`tempmaxphddy240' in 1- P; z; \; i; W0 e
9 p" }/ B5 F$ E
*-------------------------------------/ n2 ?( m+ }: K: U
9 t" @% Q9 w$ t0 \/ }3 ` gen price5d=v5 in 1/20; Y+ J3 F+ t: U9 H
( @4 |' W% X4 r+ m8 y* e5 A2 P
gen price5yy=_n in 1/20
2 J, @% s. g6 t) x. s
0 a! U. {4 p7 f; t gen price5y=price5yy*(dy240max-dy240min)/20+ ^" i( p+ i2 [) E
7 l# L7 [3 J$ M: z *price5y &price5d+ o4 s% O) W A% O3 g6 b
4 y# m, R4 L7 j+ }) U
gen priceny=price5y in 19 B3 B- Y0 }. I A" e
6 q& P$ ?4 @% r
gen pricen=v5 in 17 o' e5 \+ h X, n8 u7 n: a4 p
7 E1 W6 f) J" O0 R
. Z9 Y+ c" E+ M8 D9 g& g2 i3 y6 |) e
*priceny &pricen
% r/ j: [3 @8 h4 N2 y: P% P
4 y4 u0 W! D9 \7 _( {1 u" V2 x. v' O
- V' f6 z \. t+ {5 B M5 y *-------------------------graph------------------
" G6 D. X7 g# T3 u8 |: g
8 c- l' ^) D! G: |$ I% j0 b 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)
7 a& z0 k+ p- |8 c: c& i1 a( M% y# n7 x8 K! ]0 D
* ---------可选项目----------------------
; A9 |; p7 g0 y6 I+ u*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
- k( W8 O3 {% A* B4 H; v3 O0 S3 p1 F}
/ S; d- s% I) \- c1 Uend) \. `) p* O; N6 e
|
|