|
maodeng 发表于 2013-1-28 13:13 6 F0 ]0 m& T% I f
. hello 300236+ B g8 P$ z( O0 ^. B5 ?
statement out of context
, R9 l( F9 V( O+ l! zr(119); 6 z+ Q: p9 B2 R5 `
抱歉,最近太忙了3 t2 J/ i o6 i I, q
- Y; |7 B, z9 U7 |4 i300236 我用下面的程序试过,没问题6 q3 t; I8 r' _& Y1 Z; g5 N6 U W
) h0 ]/ |: @2 r5 r4 ?
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试) c) c L c) S! ?
- `0 W( q* I. G! f+ S" n
capture program drop hello7 Z) P. y$ d* I6 ]6 c( W. F% j; [
( \% ^" M% h; _2 b/ W' T- L7 O
program hello8 c+ V) A) ~+ `; w& l* A' J
2 j1 C/ W. ~; @2 m5 o, e
quietly {0 B1 W" p* D2 J; x/ C. N ^
2 K- K3 D4 F- M5 V
clear
# S% m* M0 s. j7 ]/ p) R- G2 z& p* ]7 |
cd D:\stock\test\source+ `& X& u$ y6 |8 ?9 N @! Q$ P
* Q/ U0 C) b( d" C" ~7 v9 xinsheet using `1'.txt3 t( c% Q6 q% X4 h$ P& O
& Y2 l. S& x" S! v keep if v5>05 o% E! _7 _5 ^$ f7 Z4 R' d* i3 S
) d3 V) q+ i" r# R$ x0 z
gen vt=_n+ A# J1 N; ~6 `
% W0 n6 g# H5 u. F/ O) B4 r
tsset vt: P! T) o; H7 b a; b0 S
/ z* |( ^! d' a& A# W gen zf=D1.v5- w$ w. c9 w1 Y$ a' v" Y- p( l
% ~* D. x3 t. r, Y- L# R [! A
gsort -v1
]* y# Y- H; _6 q8 N: Z- H; S `4 J
gen avol=v7/v51 U8 s2 P# q) l) }8 E+ L4 P
! p' L% a9 d# d2 I
keep if avol>0* S4 m1 r+ ~* y2 z9 z+ d9 l. j1 x
% @' O$ Y! R# N ^1 _
drop vt
1 |- a# w7 G0 J 4 F+ D D% X, P* b0 b; g+ [
gen vt=_n, g f8 O- m; t! b8 K
; K% t) P) e- S9 _ tsset vt, b* C) E4 k0 B) U4 Y) V
4 n8 X1 V$ q! U- M* ]0 Q
sum v5 [aw =avol]1 {" \4 z+ V# l: r$ D1 A W
2 b: _$ \5 G& d8 {" D# i; I gen amean=r(mean) in 1' R# p! j i' e) x
- t% i& z C, t) l. B/ B9 u! u
* 总加权平均值 amean) L& O, }! G- g$ I- o. ]; j
) S y& s2 j, `$ m; q 2 \7 Z& y: T' m' p3 w* F: \
keep in 1/240% e6 h1 [7 g% a: ~
! ~5 q! U1 m$ Q5 H7 j! q
sum v5 [aw =avol]
6 \9 m3 e) N& f* j. U) I# W5 m- ?( I& R: ?6 Y' S. q
gen mean240=r(mean) in 1& I& ]% u% a+ m2 w0 m& |/ T3 q
7 l% H0 D0 Y, [
*240加权平均值 mean240
I$ n; C+ u& x7 l/ q! [) f & B3 }9 T7 x+ }' Z7 Z
set obs 500
1 E. J3 Z: a$ {
9 `3 W# t6 W% r7 F" ]" n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
# v9 Y/ T; S3 {% P! |
; x/ {# [* m; V *240 kdensity(dx240 dy240)
+ [" ?7 b" m) Q9 ]- f4 S ( b/ \8 V7 f. u
sum dy240
: u& a9 w, }) h$ w ; g) s; p$ L1 J6 ?5 F* J
gen yxis=r(max) in 10 Z$ S2 O, G- h) G4 m
& r$ o: h9 A& l- l
gen yxis2=yxis/2
4 T* b) }9 Y- A " t% y# }* W4 y' G5 O
*yxis
% a( B* s* F% E: W- [
7 T' b( p; Y& S; t( I( v3 z7 m) } gen dy240max=r(max)
6 b. c! D. \! A$ ]2 C4 F0 [! y# `" ~ # Y$ d1 E% M" k# F F% r& Z# u
gen dy240minp=r(min)
& h, s; w/ J7 ~4 q- B5 Q7 T$ e. j- v
& d9 K3 M8 h! X$ B: C5 ]: H. L gen vtt=_n
* B( M( F8 t- s$ h
" s" [/ _/ c$ J& t3 o: [9 C; x d tsset vtt
# Q" y4 ?/ r6 W
, L- ~2 L1 x* [ gen ddy240=D1.dy240/D1.dx240
# ~+ S- {1 w" X+ [# m# d
# \ ~$ P% X. j9 o2 w1 k! x5 F sum ddy240
. n& H2 s2 q6 O1 j
$ d4 z3 s, j/ q, q4 P8 P5 Q gen ddy240max=r(max)
. J* e& k5 K7 z1 n ?/ V% j$ e # y3 B: @- {& t* T( I
gen ddy240min=r(min). b# T4 g9 q3 t$ ?+ L3 N
4 [. n4 w, R! w: e+ a1 L
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
& l/ R3 ~2 K" y R; B ) z8 b- P* D4 D6 _$ b- E& s
sum ddy240g; _, Y+ T4 R. e7 |7 Z
% R3 v! X- P8 ~0 q* y
gen yxis3=r(min) in 11 t- T" X9 Y# d- z
$ ]4 U6 R/ m2 w7 r
gen yxis4=0 in 1: K# P8 G( F, n; _" W# I5 Z/ u8 W
1 k( ~. u2 L j [ *ddy240g
6 A. Q, u0 j I+ ?
5 W! }1 i( L: {9 C' X# h
: b E7 B! @! X preserve
+ n) ], o, O6 S' i' i * ^ G) R# c8 U: _7 e
sum v5 [aw =avol]
" X" Z$ I, I6 @( p, _
( D; W1 p4 W& r1 \3 Q K) C- G4 p. d keep if dx240<r(mean): @5 j9 R4 Q0 F0 D6 X
; t. S m2 ^1 a sum ddy240
! c8 K6 @- ]! H* `+ `& A8 h
7 k, d; [, x, h1 [6 x( a$ u% u if r(min)<0 {. ?) e0 j$ j2 E/ [
' I3 L* V1 V( m. Z! D" Y% a
keep if ddy240<=0
: |" a- B# ^7 M2 f
# o3 I' E% [( R8 \ count
+ ?. o+ `+ I( N5 B l 8 x3 w5 w) o1 l% Q" H/ U: Z+ Z) a
if r(N)>2 {1 M( P7 E3 E* X% G* F t) B c
1 @2 j# _6 M" c( D9 f pkexamine dx240 dy2405 Y9 @$ U3 _) Q |
% }+ i7 w, P0 d/ ]& I; t
local tempminp=r(tomc)
/ \% t# b: e% y* q7 P' ~+ u restore
& o1 h% ]& j4 M) t9 c; R2 r# R }" Y" `$ k0 C: X9 H7 T8 e
/ r5 Z1 ^/ l+ T! |( a9 m6 | else {
4 K, J7 | Q2 \# e# S7 f+ n
# S. @7 p6 b: g$ A* I di "cannot find minp"
4 O0 E$ m4 t$ | [2 [ 7 z$ e9 N0 ` g! w+ v
restore
+ O d) c! `/ J- b3 W6 V" | sum dx240
7 g/ h' l" v9 u- L( r- \ local tempminp=r(mean)
$ m6 E! m! k% q7 T% e/ `
9 w6 {1 o# W* T }
' _. c/ `* F3 U: i+ S }
`$ [6 G/ Z. Q6 u9 V- h, D* B else {
7 _( B. Z' Q% s3 [1 ^6 Z- q0 A3 I4 ~
. b0 S. N V3 ]1 I4 J keep if ddy240<=r(min)
6 b) i2 U% q, J9 x( A5 g
" l- @, Z ~ s& _6 `- Y; Q sum dx240
/ T+ X: u; w1 y1 M* T- [
) C: b( D$ W/ o2 @+ c6 j local tempminp=r(min)+ v8 I$ u( W8 x6 k3 k
restore
! F9 k4 ~9 j- h8 F }( J! D: s% u/ g, t+ I
m' g9 v$ z! E- O0 N) L; f) D% t6 X0 a4 B8 w; v4 F
7 y. c7 Z* g0 s# {7 a `* J
gen minp=`tempminp' in 1
1 o& R- F' c# k- l( V0 B *240 minp
0 j0 z4 e: ^7 V6 N4 |: K, b& o8 `) M1 b) d9 m V) i j8 X
o9 Q" U' a4 c. c* l1 K9 ]1 @7 H2 G
" {6 F- w6 E, G- R, x
preserve
" x( _# ?: ^4 X3 v# R
+ ], X8 e$ c, |# N& ?% f" p. ^2 | sum v5 [aw =avol]
# c; E7 j/ S5 h+ V0 t" E
1 F: t/ _: J1 w$ \/ i$ T+ @ keep if dx240>r(mean)+ {3 N% G/ f' b5 g) j, {
' B- ^+ d1 r& f' ~
sum ddy240- V6 x# u( H( m, s3 J8 Q( `# Q
E: s5 m1 O: ~ w' ]8 _
if r(max)>0 {" r( N; E7 O2 _# z% x/ ~3 I
; O% K2 y2 _! D8 J7 h3 a( B keep if ddy240>=02 b. W. K: h7 i+ }* j
( V% y4 p" |5 i U/ B count1 ~$ n. c6 L- q8 D) O
( _+ Z1 T- @0 W& v* k. Q0 I- K if r(N)>2 {
) W' L4 S" a2 j$ m$ e' G4 U# \
7 {, u' X% F Q2 ^# s+ h3 _. y pkexamine dx240 dy240! x6 z, U$ y: \5 \ X1 p/ `5 `
* u; m6 _+ g+ o( d' U local tempmaxp=r(tomc)
+ H0 r' k0 n( F1 Z restore ! g: t1 E/ H0 c, ^! j: M
}6 m. V1 r9 j2 p: |5 n
6 o O. @3 I: f4 s
) i8 Z( F ^9 r3 C0 c U$ ~
else {
) L9 S/ U4 z7 { restore 0 F& l r/ `% w. F
di "cannot find maxp"
- _6 U, r6 ^3 f! _/ {4 O$ F 1 R& M/ H+ s2 [3 j& u
: S q' n+ {' C7 I sum dx240
7 ]! {( B# [1 |! ]6 S local tempmaxp=r(mean)' z* h2 `7 t5 ?1 J$ V9 H# E
1 j# X5 ?5 O' v
}
! V: v) T7 U) a" s" a' X6 ` ' X2 b% s, j) l
}
, u. {3 J8 x6 Y" \- K+ f/ }
. t7 m0 O2 \* Y7 E else {
; h. R Q% H, e/ G
3 t9 J6 N+ ^6 T keep if ddy240>=r(max)) a* h, [6 V0 F" U, x% E! K( {
: _ J, J: K: a0 R, }7 S+ T
sum dx2404 M+ }; s0 w( B, E/ U6 Y, n/ o
5 ^8 {9 z+ Q, W- k' {( \9 g- v9 ^
local tempmaxp=r(max)
1 |4 U7 t+ N) N7 J restore - o0 \ Y) c3 F5 b7 }
}# j- F- u3 g- O, E! ]
: W4 J: b& n2 e1 U8 s
4 C* \' ]9 |: Y1 f' R! Z, Z 8 u4 {& I% n: c! @+ \
# _ `4 n; {! s
gen maxp=`tempmaxp' in 1
8 k" m9 e9 o* N; w
. Y0 l0 _ S% F *240maxp: f9 ?& A% L, r7 Y; B( m1 d
5 n$ C. X1 D' m4 C2 ^2 @
/ ]1 h# Q7 i5 T
*-------------ddy240pminp左侧高峰值-----4 s: O2 e k& Z: z7 y6 [3 ?4 f
' i6 q9 p; h) h$ x
preserve
7 I) o. i! {$ g4 `) R0 ~
0 _# a8 R5 k7 G; e7 q+ }5 @ keep if dx240<`tempminp'4 C% @+ n# ^! ^7 S
# v! Z, \5 G0 o. K. ~5 g keep if ddy240>0
% z( z: q! c/ K8 P# M3 ] # Y! E) B7 @) X, ]
count
& z' p* [, b# @" `# B2 M/ M" V # ]- ~7 p/ C. i" B1 X
if r(N)>2 {! v+ T) O# m7 d% c- q3 Y
+ y( j, N% K# T/ e5 N- a6 G- l' e
pkexamine dx240 ddy240* ?/ P3 c- L; I8 a7 a X$ P
( P8 i! b4 P3 ^! E2 b- j9 [
local tempminphddy240=r(tomc) " P& R4 s& W/ ]0 [
restore
9 w/ T l8 O t0 A" e }% L' \5 y/ t9 O. | @
- C6 Y9 V* P4 _1 ^8 ~# G else {- j7 C4 c; `# G7 E, A# ?$ H
restore
( I4 G2 }# E. B7 C; t! z) E& v di "cannot find pminphddy240": }! N" q$ t! j8 W
* u8 |9 v% E' Z1 f% Y& N! |
4 G5 N+ ?1 U4 E+ a( d: ]! t4 N
sum dx240
! @( W, ~, y; t0 n n local tempminphddy240=r(mean)
7 ]8 Z# v9 t8 w& w
; V2 H1 H( g9 r1 z 1 {5 \! G1 r ~" Y1 \4 H, ~" p
}
/ A0 V% i- D* y
/ W# _. m" \ T, ]. G8 A0 O& O + }9 S3 g9 n4 W" n
5 l: `, M% e! b2 K7 t E
6 w& n" p0 K. p- i3 {3 |4 P! Z
; c6 n/ b. s( r: `+ f" |- R/ E$ t9 o 1 D$ d; r" m9 Z( K2 x
gen pminphddy240=`tempminphddy240' in 1
$ m4 W8 x+ T E ; V5 X8 l* h+ n5 M" G
9 k! h! @1 p" p& w5 T6 S& a: d
*-------------ddy240pminp右侧低峰值 -----------------1 l: g( F: o: Y- i; w$ F
preserve $ {* X2 H' ^( m% U' d( G
0 ?9 p' t% s0 o1 {" _
keep if dx240>`tempminp'
/ Y% J% r' e1 [- M% z# s6 k . F) D. z* R: o9 i9 R$ E
keep if dx240<`tempmaxp'
! w, J% l0 `- V# |0 k' m g' A7 T8 `
" c/ P* H% @0 ]* g( _0 L keep if ddy240<0
3 A) C8 ]/ q+ ~9 G
W( ~( |: w: t: D- g, A7 G+ j gen temddy240=-ddy240' p/ T) A8 }' R+ T9 A' ~
1 K( U3 H# b9 y6 C0 t: V. b5 o
count+ q, e5 G8 u6 g% L# X5 g' M9 {$ O3 E
3 F) u' d+ o# F! F3 G, h" c if r(N)>2 { X0 m; j8 v0 I3 |( E) m9 m1 a
: f6 `) }( \9 _
pkexamine dx240 temddy240
7 c) o Z9 k$ ?& Z d+ j, \
1 V( B* i E$ K local tempminplddy240=r(tomc)& i* k* ^2 R3 p+ b: g. ^: S$ l
restore- F4 L6 L+ R& @
}
+ w2 @4 I; K! v
# e; ]) m" A, U3 _' Y6 g6 B& p* q( } else {: g8 W3 {; g8 N
' ]( \0 v4 ]9 ]. e: E# K2 l- R
di "cannot find pminplddy240"
7 F, C3 Q3 [1 M& H# i6 Z' Z restore
3 J" x# E7 t. C4 l. X' N8 Q
, z6 E3 U. w" J! g sum dx240
) N8 x2 j1 Y$ z/ e! l local tempminplddy240=r(mean)
5 X: k. n$ W# ^
3 I9 k0 e. j* O- l
2 }1 j9 ~. P: i8 H( ? }- E. ~( ]8 B. _; o( x! f
+ p6 M/ ~# R. J( \
B1 u c$ k4 M
. C8 O. e ?+ k; K/ C! U5 D% g
1 f" W7 `8 y0 Q! Q" W) f6 D ! n, G: V( F- Z6 `7 o8 d* }7 M% g
gen pminplddy240=`tempminplddy240' in 1
* P1 S: \3 o0 r$ u# n: {/ K3 H
, j4 j: x# E1 v L# s *-------------ddy240pmaxp左侧高峰值 -------------------
! E, F% X v5 z$ c) N 1 \; h2 S) ?, d1 o4 K
preserve " U8 o+ ~0 ]& t. w4 B0 i; P" ^
& A* L' p h/ g' I& B2 g keep if dx240>`tempminp'
: [* j! `8 [) q
6 p% l! ]1 x. ^$ ?& J& i keep if dx240<`tempmaxp'
) k- i% l, ?1 c% h1 R2 m3 e; O3 m
1 D5 Q3 J1 t! ^& O" P. d keep if ddy240>0
( D" y: x) ~# w% @ count, y9 F* H4 e: n) r1 K
6 n$ r# O; ~# c! }5 E9 k# l3 S
if r(N)>2 {. M q. f1 |# r6 A
( n/ R, b; U4 P# F M1 m; A pkexamine dx240 ddy240* T+ K- G2 y6 g4 o5 P9 }
. C b5 W- G! u6 G7 e4 V
local tempmaxphddy240=r(tomc) / b k; F4 U5 B& E' P6 b1 ]( E' D) Z
: V2 n7 U3 s+ f1 I% y, h2 X" \$ m restore" r9 e* t" Q0 t: @0 B/ H
}
" m/ T8 q. h* V1 c$ ?4 `0 v: r
2 o7 ]; Q0 q' N5 W4 V else {3 W$ ^9 T& R2 H6 ^
2 |9 A" r! i" ?3 m! p* a: Z
di "cannot find pmaxphddy240", u' c3 L5 A& f0 H
restore3 U$ ] Q( U# f5 ?) H0 Z: a1 i
. f9 a% q5 g* n sum dx240: K$ s; i) `, k5 _9 P7 q
local tempmaxphddy240=r(mean) " b# k6 H% ~0 U
; Q3 ~. w A4 B8 x
0 q& z ~9 m u( C* l% a+ H4 a
}
# b+ p0 ]5 G0 O# ?' a 5 J; U3 {" Z7 r
' Q7 I3 |" k2 \0 u" j/ r( [% v " g! y) v. E' g" O4 k' p+ \
& H* W& Z. h. W+ \8 @4 P" s; i# g 4 b) n" Z& ?' X* s7 s
4 A) M" z0 C. i& Z' y$ ^; L gen pmaxphddy240=`tempmaxphddy240' in 1% {; P5 b* g. X; p; q% S: \, j+ C* [! t
1 T" D0 J3 S% J 0 S5 z+ l; \, K' T
*-------------ddy240pmaxp右侧低峰值 -------------------* g- ~" \8 D$ W. Y/ S* l
: w5 s; F; H' b, F# { preserve
' e1 Q) W1 W( O& p2 _" \ / S+ ]( f+ e. p0 q0 x
keep if dx240>`tempmaxp'
- z% j1 S1 h) ?: o$ H
; h0 {% G [. E: J3 e gen temddy240=-ddy240
; `7 ~5 v2 R( ]) I, \; t; x" [
6 P4 }* |8 ~5 K* g keep if temddy240>0$ p4 g9 n" _' H( w+ o, t/ x
9 z- Y- J! I9 M3 T3 w9 t3 c: e
count
5 q$ ~& Z5 Q1 ~: [( q- g% e 0 ^' D7 _2 a! d. J8 d1 O# \0 S
if r(N)>2 {8 {: d5 E! G& `- H$ V
; G, x" l' h0 k. k
pkexamine dx240 temddy240 K( x; z8 V" f% H0 v
3 R# }/ R+ e# X8 e: } local tempmaxplddy240=r(tomc) 1 c3 u* L: X+ L1 a1 H2 O( p) n' E0 a
restore8 Z( [* U, {& I0 M' ?$ v
}* {$ M8 s. a6 V9 r; n- a2 l6 L
) z6 L' ?/ I9 h& w# C
else { V4 E; l: l8 c- M/ s+ q
restore
9 w. I* w$ m% y0 q$ ?7 J di "cannot find pmaxlhddy240"' V( F4 f. d' [7 u- O3 m) b
6 }4 I+ {# }3 j4 |7 i
( t* z( \5 }8 L# x, M# R# D8 i$ C- u# H sum dx240
' ]6 {, X' u2 N$ f# H local tempmaxplddy240=r(mean) in 12 q ?5 }& t# t' G/ }
; p6 S/ z% f8 C0 o; Q3 v2 H) A
1 Q$ G: C- R9 I& L, e' h3 X
} Y( ~: y. ^+ |9 l
" k' c+ x& k1 k
: [# \0 W$ s$ i
" v; e0 d6 g) z1 ?8 { % ?5 G/ U# z( B9 T( b( @# W8 I& }
1 Q- M# J: M' D" e3 s! g# ?$ W
1 F$ k, d, C, l8 S [" X& s gen pmaxplddy240=`tempmaxphddy240' in 1" S: X) s! v6 k4 p
$ K4 m& a0 P* ^* n% ~
*-------------------------------------
; m6 m& u3 ^! {+ T
/ @* ?7 n4 L6 ]! k3 L gen price5d=v5 in 1/20' ?9 |' u, M9 ]8 M& e
i# s# b* S* Y
gen price5yy=_n in 1/205 ]0 ]3 A& p- m; n& a3 `
- o d& }: |& ]% y' }
gen price5y=price5yy*(dy240max-dy240min)/20
+ `. O7 _$ r, I+ o$ J1 {, h
# F6 _6 F- q* O/ z3 u) Z% n *price5y &price5d7 F7 N# S1 R4 {- _" \) G1 m( w) A
: S: A; B! V: m8 R7 [ q/ e
gen priceny=price5y in 1
" z/ @# N6 i1 c }0 z8 n 4 F) r3 q) `& x) w( h: ~
gen pricen=v5 in 12 H$ { b! b. ]2 f. [
1 ^) F" F7 \* S& S8 B # @/ P. v7 s' `! m
*priceny &pricen
0 w8 ?2 T9 j! h+ k7 v
+ w+ l) N1 B u$ B, t- I7 m2 F : ?! e7 R* u5 {0 x" a
*-------------------------graph------------------
7 w( {4 ]% a* F% A! r2 e3 ] , S. F) |* 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)& g( t' K- r" O" @. S6 T
: r* O6 c0 C- H( q2 {* ---------可选项目----------------------- N, `$ N# M4 T+ V8 D3 d8 D
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
+ o I; M: W% s) o( I$ H9 X# n% C}. @/ E& \; }* h; e2 N
end" S3 f* ?. r+ [+ E9 a% ~7 \' K' i0 M
|
|