|
|
maodeng 发表于 2013-1-28 13:13 : _- |" A0 S5 \, o( Q) I
. hello 300236' b M/ n" f) E& ?1 J! H" }
statement out of context% H$ ?3 c4 ^' L
r(119);
6 m7 U U0 \9 h& O8 T& t抱歉,最近太忙了4 y+ u- S0 G9 V% l
% @5 l6 H% L0 }4 V$ F
300236 我用下面的程序试过,没问题
7 U8 y$ @) l+ f% ?( q' f9 H: F
2 ~3 T3 @. z8 s你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试# ]- U: w& h6 O; }5 `' n; W
& ]5 o8 ]% \' B' r' p
capture program drop hello+ Y7 A3 u! F. p! e
. k" {, W+ p+ U h) [7 M. }program hello& p* }4 H" ]/ Y" k
0 m3 @9 e) w9 I m7 E& f% @
quietly {
" h3 p, O9 O- x( V0 h a/ U. c' e$ D* {/ u; M. A: b! f5 w3 ~, {
clear
7 I) b: O! a/ t' g
: m" c }' E. q4 P; p5 V; v9 Rcd D:\stock\test\source( _/ b8 ^! S( K9 O/ ]
' |* o+ m6 V" H, H! Q% a6 c
insheet using `1'.txt
9 x4 F# g- E4 P8 H6 l, V. p% p! M) @- j0 i/ b: V8 U
keep if v5>0
1 p9 u) {6 {: R9 P2 d
8 n; ~) L6 l$ r: A4 e& d gen vt=_n' b6 I; f& X E9 R; I8 N% w; T
. \6 u: t3 R* d) ? tsset vt
1 u2 g" ? O9 | s$ a6 U
1 N1 m3 D0 W A# J- a+ }/ S gen zf=D1.v5/ M; b# y# k* r. b! _1 g
) g- v2 E( ^3 D" c3 C5 Z' r1 w! ^
gsort -v13 w& \. s4 c* K- b& P# j
+ {0 k. p" M2 v2 L, e' } }# ], i
gen avol=v7/v5
( |& b0 X8 T2 a% _2 D$ ~. S
/ }4 E1 H) x0 ?) W: L keep if avol>0
* L, L Q- ? I: g, i( d
4 l6 p& C* F' r4 c2 [ drop vt( s: _ m: i) {6 u8 U8 ^
" G5 o! r- M4 ~' a3 m3 f gen vt=_n$ E9 N5 M+ [" @2 L6 N4 b
& L: y0 i' s( u' ?
tsset vt# W- H; O& c% @% l0 s
0 E& J: c: k/ d- d7 v5 }" U sum v5 [aw =avol]
/ B1 {' N, I- j# {# _" U) t* i7 U8 g
gen amean=r(mean) in 1
' H4 \- f! d4 }7 q _: V + {7 j/ t: m; C( H2 f) p, U1 Q
* 总加权平均值 amean
3 V3 {( P+ u% f' a% w/ k : X* W- M, ]! [& |! A/ ]
( O" W8 `+ v3 ?2 d0 X keep in 1/240
$ c( N& H' \; _) ]4 q
E- i; j* s% V5 o& G sum v5 [aw =avol]
$ v3 t* l3 _; n7 t9 o$ z, J6 n9 F3 Y
) i$ w# i( Z4 g- U V) g gen mean240=r(mean) in 1
I0 |+ L* [- @' t1 r
) H- c1 h5 W% c+ G' t! d *240加权平均值 mean240
# D& D& l* d; j* j" c" j P5 ^- y8 V
: A0 k! T" k5 \9 H$ U I% ?: O set obs 500 $ L: Z! H9 F% D- F6 X
9 n9 i* c6 |; ~ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
8 p+ s+ j1 n. S9 N 6 X# e3 s ?8 \) @, J* W
*240 kdensity(dx240 dy240)+ A7 p$ m' A) [& T# q/ H+ z7 w- s
' w: V& G' g* @# p& q. O
sum dy240: ~- f( D( z1 Z8 {1 G2 c( r; D
1 D- N, T3 B8 X" L7 ?* b gen yxis=r(max) in 1
8 z6 p& q* `% S
% ~: u* R" T# V- N: T* { gen yxis2=yxis/2
$ e6 p: Z' p. x& p' [
( `3 h( O- r/ e% W. T *yxis, ]/ X! S: ~$ J% k, M, G. }0 B5 e
8 ?2 V9 W# x9 U
gen dy240max=r(max)# @9 ]+ J9 N+ D1 s) c
8 f6 G2 @0 J( ?2 ]/ L
gen dy240minp=r(min)% [! D# A# U; U4 x: u' e5 L0 Z0 C
, \2 W+ q; p8 W" D gen vtt=_n9 _# q! ^$ G! O6 `: V! ?: R0 O5 o& I
) s% O; I* Z+ B) R0 H
tsset vtt+ @: J9 X" b1 E) S
1 W7 c; r1 X: t7 n7 Q gen ddy240=D1.dy240/D1.dx240
6 \' _* E- s# M h/ q/ p: Z
0 g2 X2 i( d5 s$ w. [: A sum ddy240
/ E: C& Z: @; F/ V# K % C* G& j, _: B* ]8 e( u
gen ddy240max=r(max): ]7 v6 d- ]" Y6 I
/ }, V: {* ~1 x% \0 C, P' {
gen ddy240min=r(min)" {3 ^ w8 s; Y, j& Y3 b- S
& C: I. Q) I" C; _, j/ F: e& ?
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min): h& n3 i3 G, o3 n
: {6 \2 \& |5 N8 O$ F7 x% g sum ddy240g, Q7 J7 _" @! C/ G
1 b& O! s0 m3 ~0 F ^% h8 D
gen yxis3=r(min) in 1
6 V7 o( K) B7 d6 C& a- e6 F
6 [" u; I0 k3 w: Y7 L1 ~3 } gen yxis4=0 in 1
' V3 b" \9 f" l& O$ C
3 U0 J1 m8 q; b. l- e4 t *ddy240g $ m/ L W$ W: T P% h8 @1 r
* i l2 g7 P0 e
d9 k! J/ _9 F0 h; j( E
preserve - G2 A% }# V8 q3 i( @6 p
. m! x/ `. P3 n
sum v5 [aw =avol]
5 h+ D1 h3 N6 O, p7 z8 x
6 P: U+ e) X' ?" ?) h4 | keep if dx240<r(mean)
4 ~) q4 X: h F J* X6 ^ 0 s6 h" z; ^; m, h/ ]; `. E2 \
sum ddy240( V5 F8 R4 @ \% _3 l% J
* ~; k- |9 V( a% `/ v" M
if r(min)<0 {
& \+ y5 e2 c# F# P* t 9 J5 P+ v0 L6 F/ v' }
keep if ddy240<=0
/ ]& F8 i5 X7 b$ }+ o
5 k# h5 e% f2 i8 }/ q count* f4 B+ Q# a8 u5 |' ^: \
! D+ A) c X9 Q if r(N)>2 {2 A% s+ {! V2 b I' s: K
) [ Y- G4 Q0 b; ` pkexamine dx240 dy240
3 Q8 M4 Y: x W5 g6 `# V, M
0 z2 K, {% m/ H+ y+ D local tempminp=r(tomc)
@5 A7 |; ]: w2 ~ restore , g9 n( {* Z' \0 V) {1 j5 ^% W" M
}- q% y1 c1 X3 m
7 B/ ?( L3 p* {0 c
else {
: d4 @) P0 h; Y- V) ?* K
T7 t) A2 r- Z0 k+ L( f di "cannot find minp"8 z6 }" ~: |+ ?5 X5 T1 L/ _9 q* ?
! s; Q8 U- Z% M: b5 Z1 i0 k restore e, n: O4 n! f2 ]1 U2 R
sum dx240
% f$ y5 t1 r s" f/ W! N- | local tempminp=r(mean)
, A- o. D7 g6 m# _9 j* v 8 D: g/ X& U8 b" l4 e5 U
}
2 u' p1 u/ v4 l }: U. s% W- L( M
else {5 h1 h& Y( b9 p3 a6 @
) Y7 f1 T, i' x1 B8 p" c
keep if ddy240<=r(min)
5 P9 r2 ~1 _; Z* {. S" X- W 7 ~/ r- q8 h$ |/ {( X
sum dx240
6 e4 ^9 C8 q) S3 \
) A: B& J" `8 ~, Q6 Z; {3 Z local tempminp=r(min)4 G0 M" g! a, y: S, e7 `
restore + C5 C1 s; e* B' ~6 J A( l3 y0 [
}
1 g9 v% A; e( c; O. ]4 s" B' ^7 `0 C9 e( e! l* y) E& H& Y! M
& ] d! X9 [. X* ~1 x$ l
. O$ i/ S, [: @: ^2 a3 D gen minp=`tempminp' in 1; E F1 S! c( V( X* h. l5 o
*240 minp
5 [; _9 Y& g# N/ K. X$ ~! j
! f+ v4 V! g2 U/ e ]3 L- ]
r. k' X" _- O. r
4 {( X- r3 T( _) [; o1 b7 W preserve
$ q/ U0 p, ~8 S, Z1 G 3 w/ S5 k3 O8 v1 O! e* a% Q) P
sum v5 [aw =avol]
2 {/ b$ L/ O5 V* r
, H! ]! A/ S: P0 A* \) A2 c7 } keep if dx240>r(mean)3 |8 e1 W8 k r/ S; r# U
3 W$ n+ Q1 i9 @7 @7 b
sum ddy240
4 R7 Z4 S# r# B' ^( I9 E. i - \5 j2 T) W& o9 n. p. ]) `+ C. E
if r(max)>0 {7 \. Y* N+ |$ Q% B( Q6 c0 W
* r: x7 |! R' {- `) C8 J+ ]
keep if ddy240>=0
8 M; e: N) @, l Y; l$ ` C+ P 1 R9 \. J4 `* p9 {4 S: Q& _6 R
count
( R1 O" p& |' k( B & h/ {* `1 j( f9 }
if r(N)>2 {; R) X# g. y/ t' y1 N- x+ X
0 o5 E+ ^% u! i" u
pkexamine dx240 dy2401 F8 h' v! ?4 I8 w! m1 Q4 b* \ ~( y
8 ?/ n5 V/ {$ t$ a local tempmaxp=r(tomc)
" v# v3 U4 |9 H1 p restore 5 d! I0 @, P" S) ]9 E! t
}4 w {7 {6 a$ `* p0 T) K
) d, q% g0 k, F" W ! P+ W3 l$ ~8 m/ R" y b, W" G% s
else {
8 U% C# w6 F! q9 z7 Z2 p! b restore
4 D$ ^* Z* d8 ?/ D# ?+ D+ ~ di "cannot find maxp"4 a7 v, c* U* Y' e: D. z
+ x, Y" J- h2 b" }; a
0 d( \. _4 X b
sum dx240
W" ?* t4 |* k0 ~# E/ K" d local tempmaxp=r(mean)) T0 Z7 R# ~5 l Z& o
/ H. [7 v& Z& M7 [ }
+ M6 v( z8 ~ c% B3 u5 e # D5 l$ x5 w' M1 ^0 L6 G
}; v% t$ E+ U: _8 V
) R" M* z6 E! r- ~- Y" R else {' c7 T* N8 H/ v4 j
, p( L* A" k x2 ?2 ^
keep if ddy240>=r(max)
9 d6 K# x5 ?" k % ^5 \! V5 _1 N. V( T
sum dx240. c6 } e. f+ g! d- N6 C( R
& d U, }; x- K+ w8 U
local tempmaxp=r(max) 4 q/ } e1 {0 T
restore
/ g3 ?" Y2 \9 z7 L; i' e% v }
9 k$ w/ s* }* g$ O9 t0 o- A9 V
% ~9 c5 z+ j# g5 o- @- M- B5 Z4 {' y9 ]
& r: j- m$ h. @% a7 E. I4 v
1 |3 F4 P; U9 }2 Y- P gen maxp=`tempmaxp' in 1
) s6 H$ Z: g1 G: v3 F: n
5 y( J( W, y* H5 r$ ]. ~, W *240maxp/ a# \. y, L1 n9 n# V
/ v& m# q6 H* r# q. @9 a( W
7 R) {4 x! M7 n6 _ *-------------ddy240pminp左侧高峰值------ x7 k5 O( t3 ~# c" u6 [
. \2 D- h) D ]" t preserve
" r% f: t# \. |; [1 y, W / j8 H& S! {. |7 [% ~( I
keep if dx240<`tempminp'
0 ~9 M3 u0 V/ {4 W9 y/ ]
: X( ]: C6 I( {' a keep if ddy240>0! C, `( N8 Q' a
+ s+ e2 b( x* V( {
count
$ ~4 f( a: c- }" y" v2 Y& B8 Y9 [! g2 O " B a1 M% O1 C; l. n7 r: z: l
if r(N)>2 {2 C5 _1 E! i% t" b3 ?
% Y2 R$ T( L. O' f- T& e. P
pkexamine dx240 ddy240
$ K) a7 F9 p T0 I4 h4 f! |! { " A( t# j' ~1 l/ z
local tempminphddy240=r(tomc)
/ p" @" N" \" {5 y8 N restore
+ g: T. |4 t" S; i. q) \$ e }
4 n5 r, b- x' j- o( Z' ] 6 Q ]" P b- x# z& i. }. \
else {. P% p4 B! y# |$ a
restore , Z0 Y) b) {0 w; A
di "cannot find pminphddy240"
' N. M) h L; g6 G" I 6 {- |2 A: U& M2 F$ C: o
; p4 ]( d5 U$ ? sum dx240. R5 I, d: Y3 h) ?2 @
local tempminphddy240=r(mean)
( [) h( r2 G: z+ b7 h. ~3 U: Q# [2 Y / A4 d2 \' C, m3 D* a
9 |' r9 J3 n* ~' Q0 |4 w) ~8 y! Y* b' _ }
& V% }/ I5 d+ C * }& L L% ?& v1 j- C, ?
1 b& v+ L" ^3 j& n# |, [# T, O0 }
- P* J& |' G, Q' p4 y2 H* j! ^
8 l: p0 i* A* s0 D5 w+ L ' e( b4 c) ^, \! T, I# ? x
- V& X2 L; X A. J1 x4 D gen pminphddy240=`tempminphddy240' in 1
4 r7 |; k+ j' p- s7 x" ] 2 O- t, v1 x+ A) Y
- C- M; A* M) K! ]! n/ ^
*-------------ddy240pminp右侧低峰值 ----------------- j6 W2 ]9 V3 L/ L/ ~
preserve
# i) M) d- Z! T6 x. Z6 u) Z & X8 j6 X; G. i/ G
keep if dx240>`tempminp'0 t* t: z" v+ I4 H1 O1 `; l
' V" o$ d# v9 c$ D$ c
keep if dx240<`tempmaxp'
. c7 |$ e0 t- N: w9 L0 v, w 0 f- o/ D1 s/ s
keep if ddy240<00 Y: @8 H% q# r6 Z
! U: l1 n! I# K
gen temddy240=-ddy240
% q$ h1 ?7 p& z5 Y& S& L1 T . K1 d" D3 Z- n7 _
count
/ \9 `0 f" H1 c" g 7 i: \. J0 O4 _1 I. y+ {" W% [
if r(N)>2 {8 h( b( ~! r) i- [4 [
- z0 q: _4 H9 S. w% ^ pkexamine dx240 temddy240
0 A5 l: ]0 Q6 {) P9 V! T
5 l% A9 }( H5 k7 c local tempminplddy240=r(tomc)
# ~9 f' k! c" X4 H5 e8 q restore8 Z- U7 A& B: a
}) T0 S ~- |: n9 _$ F1 b- ]1 W
1 n# n; J3 f% H% a& ?# ?! {# {& b else {
" `$ Q/ z* L0 y& ~% j & i4 h! ~, m( c/ |! C/ \; i
di "cannot find pminplddy240"- w3 N- U4 q2 w# V
restore
! i2 \! I* K1 h+ \ ; i- O7 v1 Q$ B% e- a
sum dx240
# ^. R/ D" W% S" t1 n1 d- P8 f: \ local tempminplddy240=r(mean)
# L* T, Q7 M% ~+ f 1 s4 S* b, @- B( n
/ f, F/ F1 V! y' G }
8 J7 |- d4 E: _4 k" ]0 ^5 }
& \: C3 c' q' n; L6 ~/ F
9 R r8 y; z9 J
" Q* X e: Z8 m- p , }: u' V/ x) n6 {( S8 F( Y
9 J& Q3 K/ j9 l gen pminplddy240=`tempminplddy240' in 1. W! R) ?1 B8 ]( Y. b; G0 R
' b" d4 X0 I( A% Z5 K, V" u *-------------ddy240pmaxp左侧高峰值 -------------------% S: u; o* c1 S0 f- h
7 ^! T, j9 A, {+ r* Y" E* M preserve / ^3 [. ^9 P8 U7 e
# L! R1 j* D# @/ \+ s$ ]5 ^
keep if dx240>`tempminp'4 o8 h& L# P) N3 n+ c# R
& \! b1 N+ B( b% g. c
keep if dx240<`tempmaxp'
/ `/ C) R+ C; ]4 h
S- t6 ?3 R+ [+ l keep if ddy240>0
* H3 R; ^ C4 ^* V3 _ | count
) r+ `' t" }* o8 `6 D * t1 F9 u, _! h$ u; |$ W: n
if r(N)>2 {, X- L; e2 c- y; D2 O
" L1 b* r# Z2 ?
pkexamine dx240 ddy2401 b2 ?& H5 T" s8 u
6 [& n8 d+ T1 r% I3 p* v( @+ b% c9 G, Y local tempmaxphddy240=r(tomc) ; l$ P# {, P1 C: c
7 ?9 l: i% z: v t7 {) J' v restore% P1 f+ B* O; ~9 J
}
. \6 Z- I I$ u- d5 f V
0 d; X0 o( Q! g3 @& b else {$ g# S- {3 u5 I; {$ k |
* b9 N$ E( S# L3 f+ Y3 c z% S
di "cannot find pmaxphddy240"
5 k. x, j3 Z' D1 ?' ]4 H restore
& Y; n& ~( q7 I. P2 C! F) a$ n
+ p6 q$ T0 W+ K5 o( L sum dx240
/ Q1 E2 m6 z( z9 j" m local tempmaxphddy240=r(mean) $ f( r$ n# v2 O# Q5 W$ Q
- `5 F( u& M# e) x6 z- U
1 a% n3 Y$ q0 Y* ~ }
6 w8 g) q* b" K3 q/ d U7 o+ r6 ]; T
# X- q; W3 u1 y E& I# h; E3 }
6 |* Z2 m% h* H. V" s' }; j
2 }5 d$ t4 o+ c$ g- X
- b# N6 Y* ?. B 4 I4 H& T2 I$ y2 D& k$ q
' S3 e5 Y/ ?) {+ `9 r
gen pmaxphddy240=`tempmaxphddy240' in 16 V0 e8 X! R5 E6 Z
2 u# [1 g( P4 m3 [# z
" C, I+ ]/ s1 D- W; d; c; H8 _ *-------------ddy240pmaxp右侧低峰值 -------------------
* r3 N8 T# L0 m2 p" F
0 ^& ~& d5 a- l ^9 o preserve $ z. x; r& s) u4 _4 v
7 B6 V4 I% ]: n8 X' ]$ ] keep if dx240>`tempmaxp'. \8 C1 e$ l: K
, N! ?4 L7 N2 D5 w% D0 u4 j
gen temddy240=-ddy240# p7 F# d( k- l4 ]
0 z' I% T$ J% c
keep if temddy240>0
' u7 g K. _) W1 u/ c0 M 1 ~. _, o8 t% J: v! b4 J; ~
count. @9 u& ? C* `6 l
" A. G, D6 y2 w5 ?" _
if r(N)>2 {
1 J( Z! \& U) Y6 l
8 D+ W; [. N" ^3 y; q pkexamine dx240 temddy240
# _1 _1 `2 N A: j, n" X: c8 v
' c+ Y7 s2 J }4 d, v: S local tempmaxplddy240=r(tomc) # B- U$ d+ c/ l( B: W+ w
restore
# N+ y# P, l( ?4 h* J; }/ e: b }( d8 `( n3 ^1 q7 H9 a( A0 G
) O4 B# i& v0 U6 h/ O9 }) j
else {$ ^+ R, ~/ U" d% ^
restore6 K ]7 n$ @: p1 X, ?5 d1 i; X
di "cannot find pmaxlhddy240"
- x' X {0 ?$ |1 i j , i( r: H* k" R' y
R ?2 m( \6 G, m! c, M sum dx240( i6 w4 S* u1 ]& a6 @- X4 H7 e
local tempmaxplddy240=r(mean) in 1( `& v2 I w" m: B. O a8 L) j
: |* ]6 I! e' p ! l3 l& [+ w+ M" t2 u
}
% w9 l; a8 j: J
! s& v8 o8 V$ l! z6 |; U7 Y
3 h" s5 j/ h5 ^/ V% T# D / h4 o' ^. N8 D R+ G0 y# T
$ E+ L: J& S& S9 X' W' Z' y6 I% D
9 R6 q$ Z' ?( S2 ?: x
0 o9 I: ?% i! l1 c gen pmaxplddy240=`tempmaxphddy240' in 1
8 |9 a3 H# `& f ( v! I4 q, h5 s
*-------------------------------------% K0 z# r# {8 j" }- I9 r
7 f$ G8 C7 x: {) x gen price5d=v5 in 1/20
( T2 }6 }, E; s$ h
/ J$ ^/ E. Q( g3 J h4 i7 b gen price5yy=_n in 1/20
% K) P. N( b- O
) ?3 |3 v3 A1 P! y gen price5y=price5yy*(dy240max-dy240min)/20
* ~9 b% X' k( r; d! @/ }: } 8 R" Y9 z( ~; E. r7 _
*price5y &price5d4 i7 Z' f9 ^0 S/ g+ w1 F
2 z' m5 `. f9 J# r) W& |! Y
gen priceny=price5y in 11 L+ L% W+ v$ q
# t7 w* `! S& S' M gen pricen=v5 in 1# u+ Z0 H/ e( |; c$ {7 {5 y; `
4 y! R h$ y# f( ]
: f `* j5 P% p *priceny &pricen
: ^' \# f8 A! ?9 L( p6 t 3 P/ V- z+ h) y+ u; ^
5 p' ?. I( k6 N2 T6 s0 K *-------------------------graph------------------
6 D1 P% t9 F' t" M1 l+ N* i 5 ~/ E4 g9 x7 f1 V& l6 U$ n
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)
$ ~0 ]" ] G) c( A0 }7 {6 z" c+ M
* ---------可选项目----------------------3 q5 t8 K6 Z8 x O6 H( I. H
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))0 ^3 D/ m% \, o9 ~1 J7 ^4 e
}; m9 K& z8 J7 m/ {9 H9 C1 |: N
end& @9 s5 B' ^: g
|
|