|
maodeng 发表于 2013-1-28 13:13 ) G. J+ R- v) o5 g
. hello 300236
, w3 O; {8 E" z7 }6 x/ J8 o- Dstatement out of context; ?6 `+ {# @9 P; B
r(119);
8 J" B$ s/ r. W2 Y抱歉,最近太忙了
W2 y0 a% }4 H7 Y1 E9 i
) Q) e0 k" U: \; ~1 X# D7 B300236 我用下面的程序试过,没问题
# p6 q/ Z4 y" }- z
0 ?( R( q- ?/ y' `你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试 [: d8 D! k. q# B' L
$ F& S; w" q h! fcapture program drop hello7 b4 f2 E% v; F8 m. I9 q- H% @ J
; i7 v3 s, m* w; m5 _, e
program hello
6 J5 N2 F# m9 e$ p( Y* ^0 T. M2 O) K3 Z; _- @5 i) W
quietly {6 X% b# b# h0 |5 E1 p
2 o9 \3 r% B8 m, B) T
clear
4 E7 c, i6 S l4 e6 b6 Q
G8 c. m( l3 u( Dcd D:\stock\test\source+ [& f) J. P. f+ H+ t
7 ~ {- b. e( V: V0 a( Q+ u Minsheet using `1'.txt
" {7 J* y7 r3 r' H8 u V' B7 l& j* t! e% Q
keep if v5>0
?0 b8 G+ W- i% Z5 M+ o! W ; o" ]2 G1 S$ ^7 \ N
gen vt=_n+ p3 l; g K. @- N! G {
! g/ U7 F' L6 M/ X9 Q2 F tsset vt
2 _7 j% x; s/ F' s2 T! H" N; \ `& P) q* ~4 b$ ?* }4 [) ^' a
gen zf=D1.v5
: M# C$ K6 E2 w) u/ Z2 v" ^( b. q' x5 X, [% L
gsort -v1
9 ^# u* m! D' e, R3 A
0 s) E% t/ ~; i' J' W9 T gen avol=v7/v5# n* Y! t. r. M, a) m; u
* s2 W4 |; k0 w
keep if avol>02 A# J9 c5 D2 b) ^
6 p8 ]% I% ~4 I) ?% \) w drop vt% U7 L8 N5 @+ d4 E$ o& e
/ {" n, Y1 F" _* k6 ?4 n" G) H gen vt=_n
$ _8 z+ k p2 U 3 D, r, k3 T5 [- {0 O0 ]; N9 t, H" N$ _
tsset vt
+ n$ `9 C1 d' u! i
4 U" o. p7 n) S% f8 n sum v5 [aw =avol]4 D; ?. q+ H) n9 L- A
, z R5 m; R/ T! y/ c1 [
gen amean=r(mean) in 1
# \- `% d* f" W* f/ }% \8 L 8 x+ I2 P5 y+ H1 p0 i. s
* 总加权平均值 amean% Z# w) m/ g8 u, R
: I3 T4 u$ M6 O% g8 P0 i# c + @* B( `. r5 ^; C+ k) U2 S
keep in 1/240
2 _; s* N! H$ ?, I. b8 r3 s) P$ I& C! d# Q/ B: d
sum v5 [aw =avol]2 c w6 G% s. |* h
. N- a) Z. ^4 Y J0 c
gen mean240=r(mean) in 1
1 i! ]; ~' r* E# X9 [, }
4 t, o! ^! j5 n" D* G *240加权平均值 mean240
8 z0 h, k/ x& O u e5 v A9 D
8 N' _( T$ C5 o( H/ F set obs 500
: e/ I4 ~8 P! h
: c4 ]* f6 X4 _4 X kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph5 w R& r+ h X
t# i5 N4 Z/ u! }
*240 kdensity(dx240 dy240)' g8 ~. u6 [. G2 a0 T! h5 G8 Z8 G- `
3 k' f- b/ O% X( R
sum dy240
l8 `0 j7 ]: b5 ^ 1 \+ t4 [4 y& U" _- J/ ]2 m
gen yxis=r(max) in 1
- z M' g, N0 M. a1 F0 }" x ; E2 C) w* _' H5 ~! Z
gen yxis2=yxis/2
, m4 q' }# w5 J& Y ) N: W& a2 c) ?, o$ m- p: T
*yxis% R! F8 I' [2 E* I4 V2 r
5 J2 @* K& Y# }" Y( ?' A) Y. Y gen dy240max=r(max)$ ?3 f5 p. v* R9 A' l$ k: n
4 ~& u1 f/ Z k8 q4 h9 ?- y
gen dy240minp=r(min)
- o6 A$ q) b; r& k. I8 l
5 C" @- R5 f/ I7 n! f. e gen vtt=_n
: L& c& C9 ], V Q6 u* q. \ P/ i# \* ^! l
tsset vtt
$ M, ^) z! G0 Z! x% T0 F" N6 i' W6 i3 O+ @) P7 o; S! S
gen ddy240=D1.dy240/D1.dx240& z6 e8 Q# Y0 P7 Y, ^6 e2 `1 r9 V
+ |! X4 h1 M6 n, x3 A O' Z7 w, r. h7 ? sum ddy240
0 A4 ?. X7 G5 {9 Y& } : p8 V, L* L" d0 r) i: r0 A/ Q
gen ddy240max=r(max)
% _( T( c$ O, Z3 I: i- l7 C- I 2 R3 h. ?; N; a+ ]! d& V2 B! S
gen ddy240min=r(min)
' u( H# j! H" W8 a# @1 Q " u0 c# S" S: P) d0 k4 P
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
7 r! U6 ?3 R0 S, k: L Y/ ^! ^ % q% A. p# h# l. M O/ q- O
sum ddy240g+ m( I! X) {" `( |
1 R1 K2 S, O3 v% }1 g
gen yxis3=r(min) in 14 v3 e/ N' }# w8 l7 N! b8 Q6 }- K
, ~% C% @. m7 f M4 Z- ]" o& \ gen yxis4=0 in 1( z! u7 V9 [( V( C" [
C* y! L/ S4 b4 u& V
*ddy240g
9 |, s4 @& B0 p6 P
- U. ]' g, c4 K [5 I u
' a- z( n9 n# L1 U9 Q+ ` preserve ! w: j% c. H2 q" V. Q( p
0 J% y4 P3 n2 k8 a( c1 E9 b
sum v5 [aw =avol]* q& L9 |! O- j, q
& r" @: v" }5 a' {
keep if dx240<r(mean)
" F6 `2 v- _9 u
8 r& U, s& Y; v sum ddy240! o/ i" p$ L3 z& x
9 L& F4 f" V: u; b, l' L
if r(min)<0 {
' _4 _" w1 l9 `. B) O9 ~3 M , v6 O% ^2 F7 m+ p9 \8 z
keep if ddy240<=0
: l! Q$ j4 I' m; _7 ] 9 \! p) N1 t1 `- H
count# T2 N( _0 j* n! `
7 L0 O9 E" ?3 x+ W+ P y/ z- e if r(N)>2 {/ o/ I! n/ g9 Z8 W% q% }( u
+ D' I1 J C6 I pkexamine dx240 dy240
( d) x/ r; O9 M- T
; g/ ]* k. X4 X' i local tempminp=r(tomc)$ N& e1 i6 C3 ]" B _' H2 k
restore 9 q: y n9 i- @) Z9 m/ T
}4 h* C1 j2 Z5 ]: f6 O
6 y( F/ O6 `0 k* [ else {/ W w6 h9 j) i/ W" D
1 q( W& ^$ U9 ?0 G; o0 q4 e1 q# s
di "cannot find minp"
& I: ]" C: S1 }9 y2 I& J f( X 0 Z" r, ?; E# @9 s) D6 a3 T7 X
restore
1 s8 G& j- F% k- r9 m9 j: b z sum dx2401 g; {/ J$ K- F4 y
local tempminp=r(mean)
7 t! w6 y8 C: H 2 R* P9 ~" {. V9 |
}
, e& F( d m0 f }) s+ m; ~5 ?' x( V& t
else {
4 Z! ?- @$ U- [( V7 j6 O
! e3 U( }# n, ^8 y4 ^ keep if ddy240<=r(min)7 [1 N* e7 o/ c/ }" @9 D+ }3 K" m6 Z
+ N5 v- \: [1 ~6 z sum dx240! q! o$ p$ i4 F! ~
! e# j( I8 {+ U- S0 k local tempminp=r(min)
4 W6 H) f2 O! j& Z( H$ t8 [2 V# J restore ) L6 x& u1 K: t; N% v7 r/ g9 o
}1 c' ~4 e9 u, S1 n! J$ [5 x
/ h5 i1 ~# {" ]8 L/ D, w( D
0 g. v! H; {+ i
/ L0 M/ o( T) N( e, f gen minp=`tempminp' in 15 Z3 T1 c8 V9 d: Z
*240 minp" r' h7 @/ e0 a# K: _( M
) K; s' `6 j, c' P* _
& K' C/ X! x" \- R # W% a2 Q* w7 |) V# c
preserve ; G+ L" G% z) w0 l! e& \' \) v, [
. f4 v1 _5 e, k7 T4 J& R: V% J4 }
sum v5 [aw =avol]
6 f+ t7 q+ a4 L / J" e9 {# l2 N9 X
keep if dx240>r(mean)2 {, t5 D% E+ L/ m
# q4 H* P: a [" r6 A N* {
sum ddy240
; c5 G- w" @% L4 T& i- E, H , C! s& m- G/ D7 W& J* c
if r(max)>0 {
' a! u: B, R/ w4 @8 V' z
. c2 n& j4 g. v5 e keep if ddy240>=0' L# Y9 S5 N; [7 X: C
8 x% X7 T6 s4 x6 s* L
count" i. @& q1 }5 |# x& G
* S! d3 {- n% h5 L9 `' y, K) h' @ if r(N)>2 { |$ Y+ j! I) a. p. x
3 f' s$ I: U- j" l" E y$ c pkexamine dx240 dy240. B" L/ x- ]4 e/ R; z! v3 Y3 _
/ h1 U0 ]) b( s# H, `. h* o* L local tempmaxp=r(tomc) * r1 M/ a: w0 X$ v5 u6 V7 l- H
restore 5 `5 f1 i0 v$ _
}( ]7 q0 I# ]; Z% e* L5 Z+ K% \
, F/ k7 n! `2 N3 d& P# z& r. P/ A
. t) t; t7 ^' N1 s# H) G else {+ ?9 P3 p* A5 y- `: N3 t
restore
, [6 k! n, |; z% s di "cannot find maxp"6 n2 X N' X9 r
& y2 c5 I }# A2 b. }
3 v1 a0 b3 [2 }$ O2 z: G% g sum dx240
. A0 `" G. u/ g$ |! j local tempmaxp=r(mean)6 e; ~0 q ?. x) Q
+ ] `" a, p2 Z J) {( w Y
}- ?! e% K/ O1 g) o* |- [2 v( v
( n3 c6 N* E" L1 w, y4 O2 L
}1 g" q) |! H6 p% ]& @7 m' c( F5 B- Z
! J* Z: |1 c. Y0 O( `9 t
else {
6 s# m8 }. ~) U9 O. h; f + h) h0 U* V5 t# g
keep if ddy240>=r(max)
7 X, X2 R' U2 [ ~6 E! o 4 x6 Z+ A; c, K" ~9 @3 @8 a
sum dx240
3 S3 H1 Y/ T% f* e2 \; `/ Y
9 y( }: @9 U5 E3 W local tempmaxp=r(max)
1 ]; S6 x2 Y1 X# V& c# _. K restore # \% Q: t0 F0 V$ y( W
}
" ]+ E" }4 w, ]3 {& r% e 8 o/ X1 v: o9 k0 j6 M
$ H Z" @* A- |! }1 ~
; D5 o7 X3 Z+ x( x9 y1 w
5 g, r0 S8 a9 Z' a6 X1 i5 ]3 H$ l1 l
gen maxp=`tempmaxp' in 12 v8 F% b. W. v+ i& W
( i$ x. Y7 m1 T3 S* v
*240maxp) F, i5 S& Z: f- ]! p
* K6 R4 O3 N" k: i" C' v3 V
2 |4 K: \+ o0 A *-------------ddy240pminp左侧高峰值-----
4 V- _; Q6 F. [1 b& V
% g! i( D& h6 D preserve
# f' M/ r1 |6 @& F; F W3 v / |8 b2 T4 ^& i. y3 y. E* ^( x, v
keep if dx240<`tempminp'2 f* d8 K+ d# @
0 J8 S9 E/ N+ c" _: V# Z l keep if ddy240>0, t% O6 S8 C( R/ j$ ^" v
2 Z1 y3 W n9 z1 S* n
count# I! l) Q; g- A5 E
1 ^5 L8 ?' L! a! a( [6 }
if r(N)>2 {
, [1 i1 U# @) I; j
1 O/ j- c. W# z& F3 a pkexamine dx240 ddy240
' G9 T# a# Y% @
9 U4 n& H' H) c: j% {" C1 U local tempminphddy240=r(tomc) 3 h6 u7 r0 F" {7 @( l( J5 w7 L8 K2 w3 t. x
restore: O3 a0 w+ R: G$ f5 n0 t
}
! v4 \2 ] i' u( y
0 w$ f! _% D: E: ?6 Z; ^6 m, t else {
8 b4 [. o! O# T; a P6 i6 w restore
% x) Y# e# R% m di "cannot find pminphddy240", b2 m' ?& D3 ? m! z
0 u0 _8 _1 I! @2 ], g % q) A9 S1 _$ a" r/ O# u
sum dx240
7 x: N$ K5 R! r9 |7 U! |8 {$ O+ @ local tempminphddy240=r(mean)
5 z4 M0 `( a7 X) R
5 z3 `* `3 T7 u# z3 n% a 1 b) E8 A$ @9 E5 Q
}- \0 S/ U1 m" N( m; U
' a9 N- E& I- i+ q& ^; }# X ' L" j1 y5 d0 t) C H% t
& Y6 F1 x. q3 {' h5 o' `9 B
* e% ~5 J+ W0 d- g2 I: G% `" z: f
# `. j6 u/ n$ H+ e : k; R, }, ^1 Q3 B+ P" r' a( }
gen pminphddy240=`tempminphddy240' in 16 z4 f' b$ W& s& `3 k7 [# S2 g+ o
" Y1 Q4 L* e. J7 f0 M 2 x, i) L7 h+ L, @
*-------------ddy240pminp右侧低峰值 -----------------5 c2 U N3 }- y4 [& M
preserve
" b" l) k7 L6 S* z, R6 x- Y" o
/ n5 I2 Y3 R/ F* w; K3 h3 V2 Y/ A# W keep if dx240>`tempminp'
Y# e3 I( X9 W- ^5 l( Y6 h
3 u2 K: N3 V- C5 [" s keep if dx240<`tempmaxp'
2 I( e( B1 d3 Z( _3 \' Z : G7 z/ B0 J. G+ i
keep if ddy240<0
/ \- m- s2 @6 i1 k/ Y / U7 w8 b c+ V
gen temddy240=-ddy240
' `2 S4 b( i$ |1 q6 F# [( i! T
+ J% B& \; R Q' ?: \: Z count
+ C& ^8 j# l6 B8 D+ \. \ - H* z8 T( g6 }2 }5 j
if r(N)>2 {4 V# J, x @ F; F
( m1 ^2 f2 [6 k1 m/ z- V
pkexamine dx240 temddy240" E9 H S1 S- f/ t
6 ?5 }) o3 d! Y7 f0 J K$ D8 t
local tempminplddy240=r(tomc)
; t: q$ G# J# t8 d restore7 c! g* ^! [( ~3 W M( d5 S# s4 ?5 s r# X
}
( t% i/ P6 E: K4 _
; y/ L% M8 |1 I# ] else {
% [- x, D# w. y
8 x/ |" J7 G& m; \$ @ di "cannot find pminplddy240"
" t8 I/ D$ s O8 W8 b: {, W restore* V: k2 C# J& A1 l# b8 T2 w Q
0 U0 y) z( @( \ sum dx2408 J/ \5 ^, p0 @5 {
local tempminplddy240=r(mean)
$ v' F" L+ y' s3 l 4 t! | d& u7 v5 m
% Z1 l7 b2 R( ^) r8 a }" x4 ]1 f% `5 y" g; r
( z/ A9 f" Y; A% [
: c0 h; U% a6 [) M! Q5 A9 r
. w, {+ L. U5 k8 f 3 F7 p/ q5 `( F
5 }1 [' U( Y* T
gen pminplddy240=`tempminplddy240' in 1- K0 j* X; n7 i3 a- d1 Z
8 T* C4 J0 M: x; h( P7 Q3 e
*-------------ddy240pmaxp左侧高峰值 -------------------
$ S# d* \0 T4 z' J . b; D2 g4 n" d, A4 L8 g4 z
preserve
, F8 _" }! T6 E7 I. I' p6 W 0 t8 \$ j7 B( n, x6 P* G
keep if dx240>`tempminp': X o! ]5 V9 [3 G* Q. r; L
5 B2 J! _# I- U8 G5 M- K
keep if dx240<`tempmaxp'
/ }1 _. |1 i$ x7 U
, l0 h6 Y% r* L: b; g' v8 v keep if ddy240>0& i, l; g. r0 R5 Y2 ]
count% {9 B2 d4 X5 W# V
0 _; F& N: n0 h( J3 t7 U `+ C/ ]2 `! D
if r(N)>2 {) \. u; q* M1 `4 E! ]% z) t0 y
$ |: K t' H2 W9 i8 L9 T3 a pkexamine dx240 ddy2404 d# r$ b& d- A. f$ k" G7 W
4 e$ i6 ~0 i7 x; ^" r local tempmaxphddy240=r(tomc) ; u+ |, o* r' Y# F) j6 j, b$ |
# w! y, Q2 k+ P6 V# r+ v- @3 N
restore# B2 O {) l6 O" t
}" ~% V$ ^+ y+ v8 Z+ e8 Y- t, @
% u+ T- b- q- o
else {' `8 W; ~# j1 ^9 w" Z
/ ?+ c5 d1 i0 {9 l8 J
di "cannot find pmaxphddy240"" Y, B1 K, R. Q
restore3 `# |# m* l9 v5 @: A4 T L# e
8 d: Q2 e3 i) f% {% G5 i, B% Y$ a V sum dx240& `# z! n/ H U0 ]( j
local tempmaxphddy240=r(mean)
: ^5 B& Y! F$ {6 E- D: B
/ ^3 D2 u3 [- u6 @! j! ` ; {" f$ [. w6 N9 f
}2 Y, @, w# y% `2 H
$ C) t2 v o. t/ ]4 S/ f \5 w . p; v( C5 T( d8 k% R
7 n. V' ?, e( y6 R8 m" l. k
+ g+ {' Y4 t) \ 4 G$ K0 @3 B4 E. s
m& C( K6 a/ O/ A. V& ?1 h; K( J# x9 @
gen pmaxphddy240=`tempmaxphddy240' in 1' ~. i1 r; H& W9 C9 v I
4 i9 w9 o, M) Y
1 t2 ?/ D4 f+ F0 _' y *-------------ddy240pmaxp右侧低峰值 -------------------8 w5 j" d) [. e9 s7 w
+ g; `; e; X( Y( G: j9 N
preserve 3 r g, v' B( ^, h- K" Q
# H7 v4 C1 A' k keep if dx240>`tempmaxp'
) r a( F) W6 j- K$ [
( g4 a9 Y. z; r/ l5 F0 p gen temddy240=-ddy240
5 r0 l6 W# e g+ n) ?/ X ( x; h+ l' z1 s. e2 t( Q
keep if temddy240>0
/ U! A) I' Z* `% z7 q7 a # r/ [& ~# k# K A- Q9 U7 j
count
; {/ ?/ ~" C% J# v( s& [ - ^# |/ C. R' e! Q1 i+ t/ n
if r(N)>2 {
' ?2 Q$ m' J2 m
; P9 k6 c/ K+ d' t6 q2 q+ g pkexamine dx240 temddy240' ^* I* l' L C4 f
7 o0 s2 I, t3 |" Y
local tempmaxplddy240=r(tomc) # A" R% `! z# D% {
restore+ l" W {) w8 Q4 K: V
}
v( J( |3 A7 m3 y- f7 B / v; c( k& a& S" c
else {
/ v5 t5 Z: J) k z* r4 x1 K$ d6 Q restore4 M6 o7 \* B7 R( b2 k4 X
di "cannot find pmaxlhddy240"3 Q! h6 l A; n H) _8 d
0 z$ [& b* R4 O, ~* G! [ % P8 H1 W4 y- ]( X
sum dx240
# C! W& r5 G( n6 l6 o3 ~- G* d local tempmaxplddy240=r(mean) in 1
x5 l% L* K, f( w 2 y" L s3 N* n7 l
' U, T5 {0 x' Q
}
M- {0 @7 P9 Q- {- s
" t) ?4 N1 K, u3 X4 T I* f4 E/ i9 e8 Q+ ]4 \/ j
) |" ?+ b* t9 T$ ` D5 x
% i! Q& K) }" z; i) \9 {5 |$ D% }& W1 P
# V4 D6 b' f' a% o; r' s5 a* i0 z
8 X+ T* {2 r9 ^ gen pmaxplddy240=`tempmaxphddy240' in 1
/ z" |1 w4 D) i0 I; {! n. L 5 u* Z9 D( T+ e1 i+ H7 [
*-------------------------------------+ ^6 W6 [2 u* q; O2 Z
2 ]6 ?; C5 X, ~! c6 j
gen price5d=v5 in 1/204 D( o$ l1 m' E9 l
" w: J( m* F5 q' \; h
gen price5yy=_n in 1/200 k! w0 f; f3 D
: w- O8 w6 H) y) w7 a1 x
gen price5y=price5yy*(dy240max-dy240min)/20/ @1 i! s q6 k" ^
8 [6 u( m% k C$ h" w
*price5y &price5d! t% E- A+ ^9 R) f0 U$ r: @! ^
+ d: g9 r3 L9 E" K3 v
gen priceny=price5y in 1( Z; I- j; Y6 {/ j/ }" N
( M6 C8 H% O+ O4 x6 `. y4 s: T: e gen pricen=v5 in 1
! ]; E$ P Q o5 m9 D0 m8 V- @& g" C; e/ }$ V5 k4 i
8 v1 r/ `4 ]9 o0 z+ X *priceny &pricen6 t3 U4 ~1 w! T4 c* W
- b, o& T6 Z! f$ n7 C
2 G9 r' m6 E6 }& T+ M4 `4 f% @' [! Y *-------------------------graph------------------# t5 v; a, Z& }) F5 ], f6 L/ r
y, A9 s* k& [- q7 K& 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)! `4 U/ M" h ^2 g" X$ S9 u
5 _% s- ~' @) ]. E. @' _
* ---------可选项目----------------------- s( r4 v% i5 C
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))& o9 ?8 `) U, P$ B8 w
}
$ j( p7 W5 e' n. ^- Zend0 g& L0 k3 Z4 e4 P3 P2 J
|
|