|
|
maodeng 发表于 2013-1-28 13:13 ![]()
8 ^; ^0 \! y3 {# u6 L7 `" X) |. hello 300236" Y. N' ^6 i5 g s% ^7 y
statement out of context3 C7 n) s. V X
r(119);
/ u5 y' g6 C+ o7 P5 d6 P' T- ?7 ]6 x) _抱歉,最近太忙了+ M- h9 j8 A3 T7 Z' g& t% g
7 i% f; A: k6 ^: `: U2 D9 _4 q
300236 我用下面的程序试过,没问题* U9 ?& \. D+ E% N: |5 R- s9 j% G
+ \8 O+ g4 v# {3 s你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试- f( n7 R2 k6 I$ a% {
( X4 x5 R% \8 p- Bcapture program drop hello( Z; h$ E$ B; b) |* W6 q+ `
. k" a1 m% _% l3 d2 I4 c4 L
program hello% k+ A0 L* J' {- v; i( G9 S
# U5 Z& Z8 E6 ~" i quietly {$ T5 Z4 i/ d* q3 M/ _
, u8 w! o0 S( F. _4 aclear
6 ~& {& ^1 `$ x! y O3 H) {3 o
. H" m+ H! F# p7 wcd D:\stock\test\source
! f) E3 ]8 p6 f9 [/ n) s s4 h0 B& K/ ?' a/ O( d
insheet using `1'.txt
8 }/ |( j a9 | j7 K0 o4 }- g5 z9 m2 M" ]& T0 T$ i6 v
keep if v5>0, ]& W* v+ y/ a, _0 k
/ e* A ~( P! Q( ?! Q1 _ gen vt=_n w) @6 I; V! P
0 `+ }( d% Z7 T! C7 q }/ \ tsset vt
/ U2 C/ L6 h$ L
3 }8 g; v3 r* Y6 \5 N5 z! g$ c# L& Q9 O gen zf=D1.v5- |* J5 {5 c; f5 J
) C6 ` o) \. y$ y% I. T gsort -v1
( l$ u/ L+ z6 N, A2 U
0 P4 L# ~1 e& y gen avol=v7/v5- i6 M7 Z6 A4 B* w# T
$ i' v9 E+ ?1 e- |# @/ `" {
keep if avol>0
[4 E2 f3 p H' V# d. B ; F5 w: q& H9 o: C! z
drop vt
. s2 }1 u5 |8 F2 z/ N 4 d) S! j' C. p3 ~2 ?* I
gen vt=_n2 q. [# y9 g1 s H
$ e0 j( C* {# ]% `3 o7 B
tsset vt+ {, X0 W4 z3 j | ^
$ O1 R" Y+ x' }& c
sum v5 [aw =avol]
! i: [$ l j" `/ k# G
( x& i9 L1 l( `( ~( }# R+ Y" T: {( R: ? gen amean=r(mean) in 1
8 ]7 h9 L% y2 e- y) b0 y1 S
o( U' |- g! H& j. g * 总加权平均值 amean
- ~1 q" X, R' ]) U1 a5 I1 t
4 W4 u; B! Y3 _* s2 ?1 _& | M , Y7 `9 ?, Q0 p) e. r8 z+ o( W
keep in 1/240! t5 v {0 M2 h
9 S" z. X) g9 i: f% A, |" v
sum v5 [aw =avol]
5 |2 s* s1 a) e8 m2 b) P: E, C, w' j8 s% B2 ?7 A' Z
gen mean240=r(mean) in 1 d: E; F: z7 K+ }$ f
& {5 [- j" F; [3 ~" S
*240加权平均值 mean240
5 p* C$ N% D( _+ J, J( v5 I
- g" N3 K+ o4 F( Z/ { set obs 500 6 d9 o6 h" M1 w4 b( x
) z0 o3 T! g0 ~$ V; l/ k
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
; c& W3 f3 r0 v& N # H( w8 {, {- j( D+ }: X
*240 kdensity(dx240 dy240)0 c, P8 N$ n7 M7 K/ F. C5 B
( H- @/ l$ B/ a sum dy240+ P" Y/ R* a( Q1 J8 ~" {6 Z b5 G
3 ~7 n' L* y' K- [7 U
gen yxis=r(max) in 1/ y% u: Y9 u3 i2 S
. O+ T4 y8 [) }" |/ D$ O
gen yxis2=yxis/2
% M2 N, ~3 z& H, s! k4 I* | / I+ |4 F& k* Y; X0 w
*yxis' T4 a$ w6 u2 `: b
8 | x3 a2 | G gen dy240max=r(max)
0 t+ c2 w: O1 b 3 f7 k% u/ ^0 j0 T
gen dy240minp=r(min). j2 Q: I7 C2 B9 D% R* ?
# U. _. o' m* _% N) O
gen vtt=_n
6 u6 Q% }2 R6 u: J- E: @ @3 a r X
tsset vtt
! \2 j/ `' n0 b v: Q% {* {0 K @. v3 J# a: e/ u+ L
gen ddy240=D1.dy240/D1.dx240$ ^' O( Y1 Z8 e2 l" q# L6 d- V; @
5 V4 Q6 r7 J4 ^* B6 P
sum ddy2408 } s1 P2 e. ~
, @) h$ {' d1 b6 y$ n0 n7 c6 o gen ddy240max=r(max)
" ]& x1 ]/ Q7 i& t0 i
\1 u3 _- z& x2 n+ Q5 ~4 } gen ddy240min=r(min)$ z& G* Z: N+ T* I8 f
; s2 T* e, F/ T' P* q gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)* n O0 w1 G+ |. q
\+ P0 w% m& M6 O sum ddy240g* ~/ e6 T1 \* B* D" f* S
- U2 R* y& R- _4 C gen yxis3=r(min) in 1' P: {! T. F: k( l- E& m4 \
( T: L- |! N4 l3 V2 A6 t gen yxis4=0 in 1" j& X1 S4 y! z; E" I' W
* C2 w3 {' Y9 v- `0 s7 N$ ? *ddy240g 2 t$ g' O# G& a! s, L9 `% k
7 P2 U& X! x2 a- h+ u , ]$ [4 K. \4 ~! @" ^
preserve
' }0 B/ F% X3 s3 [( v4 [* e
, {" B3 J' ]8 u# F. }1 } sum v5 [aw =avol]5 S! Z7 V4 e1 d1 ~2 s9 l
& w- J' h6 X0 J5 q2 C+ F) [ keep if dx240<r(mean)" o& F& R. N1 k% K" }, s6 r& h
Q/ a) j# L# W3 b
sum ddy240, R8 d' I0 D; C2 c! K0 U
3 V4 o9 Z1 s& h0 m0 S4 f
if r(min)<0 {
) P0 s) J+ J' D% W( v' u4 x
6 J6 I; P& t% v2 X9 o keep if ddy240<=0
7 T2 i# h8 c: c7 m U
* m9 `( L, X( O% }# U& s count
- k3 n ] O- ]+ M
1 q0 t. T& C% t' x0 v$ D if r(N)>2 {! f3 C. {- V* @6 z9 z8 G
4 e# N0 K) D4 ]* E$ v, F; U6 U
pkexamine dx240 dy240
' t1 V3 P. M* x2 p" G# ?3 A # @+ g9 C; \6 w5 }7 \6 U
local tempminp=r(tomc); S0 R5 A, _4 @, O
restore
7 e- j& P3 @# N3 b3 F- [- o3 ?0 R$ l }' j' Z% M& S3 e* y/ p0 g3 a
$ E7 g3 ~9 _4 u
else {( J9 A; Q/ x' i6 c: D* v: \% }0 @- U
. b1 e# \* w; T, ^2 n2 X
di "cannot find minp"
" d( G7 Y5 J1 ]+ P8 b7 z; [2 ^ $ f/ D5 G7 T2 p7 N {
restore
6 X' O4 b; V3 Z sum dx240
8 ^; t3 L- h0 D+ w local tempminp=r(mean)7 k# Y" l# b1 l* l
$ l" @" x1 w7 v" ]3 \5 T- u }9 Y" m; S1 [* {
}5 A' Y- x- m( j5 ~& F- n
else {% ?! A& D6 E# ?+ |6 D
$ K7 i: ^- h& H& T; t9 B4 E. } keep if ddy240<=r(min)6 M3 _! v0 E% W. L3 l( C
' l/ p5 u8 h+ u- r
sum dx2408 n. |$ _; a" N( x: w
/ n* P2 U5 }5 \" T3 ] local tempminp=r(min)4 {, W) z" {8 Y" B3 C1 X5 m
restore
0 j3 I* F0 T+ J. Z* x }9 b( _6 M" _: d% s
" B' W& H# P+ P9 ]% O. E* l* g4 ^4 B
) x5 O1 Z* K: n7 X2 P
0 B' s0 Z$ X! w. P gen minp=`tempminp' in 1
/ ^. G. G, \% _; p7 M9 } *240 minp
' i; E/ i6 L2 Z
! p/ y2 t) ?1 |! J
" m" W+ E3 C( S+ p & l) e6 F* {/ o& }/ b& q
preserve
. |8 _) o) @8 S0 U; O ) ?( i% H) m& d4 I* Z! ?: b
sum v5 [aw =avol]- h8 v* z4 B$ W3 T, S# _! e" m+ B/ l
4 c9 C+ o" \& L! M% ?* d+ \( r. T keep if dx240>r(mean)
* A0 {* r+ R0 w2 g9 k 8 j) z! O/ z$ P- U- T
sum ddy240
$ f# k) }8 ]; \0 q
a! a, R4 ? O if r(max)>0 {* I. e& v0 D2 |/ I$ e1 D
2 e3 o; a* I) j7 E9 ]3 A keep if ddy240>=0
) A ^/ x c* g/ I! c4 w7 }' t3 c2 V " g5 e! M x9 O# J0 V
count: V4 a: ?4 x- v# E j& { a0 ^
; X1 m, d' t8 u: S if r(N)>2 {
' ~. N$ K( [( X+ `5 T. W1 P, ~" O4 p* u
: T, C! }4 A4 C) G pkexamine dx240 dy240
9 v/ k) P- E) i" q8 i+ l# G! ~ : h( M! i( m5 H% ^# b( T- ?
local tempmaxp=r(tomc)
) m* t0 w* W7 z3 _+ E restore : Z2 R. Z$ x) Y7 H @6 t
}) j, F4 A8 _ ^/ O3 P) R
. }0 c- Z. M! F7 u& ~6 t
, f) [9 h: r, N% ?8 U4 ? else {
9 L9 Y" `1 o {" s0 h& \2 x8 C restore
1 S ^7 I/ X7 Q0 ?' Y di "cannot find maxp"& o9 }, w+ } _! {: n1 l: o# D$ x( E$ y9 Z
# Z& d% `- l* ]* l( [
9 K5 Z( c9 P- e& L) K2 i sum dx240
( R+ t4 n$ @4 `' c& ~2 I local tempmaxp=r(mean)9 b# `3 V1 h7 m- \
9 O) d# O o3 {" A. z. ? }/ l% j) r$ s" s4 O" l2 E7 A
; @% P' Y3 o) c$ @6 d; n; h: n }
5 ?7 n! V, w" T5 M- f
. g x2 s+ u# {+ ~1 C: t3 s else { h0 Z+ u) B4 |$ d- r( ]* g
# r1 k' R5 p2 c keep if ddy240>=r(max)
" x( D! F3 {8 ]& C/ z' `
- e. _. d0 F% n& ] sum dx240) W* m9 l' |: R. X: L5 z+ e3 N
, {& }, a3 X* t6 ?6 A+ C local tempmaxp=r(max) * q$ L. g4 c7 U' v6 D8 s
restore
6 ]2 ~. `! R- ~ }% V8 g6 d& X( ^- ^/ d5 ^. C2 W$ f7 q
/ G" ?+ e/ L3 }$ F5 K3 g6 H3 I, n( ~0 j- u9 i' y. n5 G
/ {* A: @8 x) G. S( P: B' J; j
: A% I( A7 i2 K2 y5 a( q8 m. ~ gen maxp=`tempmaxp' in 1' Z5 H/ {0 M# B
7 O% X5 h3 f9 H *240maxp8 j* m& H9 q& R# K
8 E; K1 L+ ~0 |
2 u0 U7 f% C$ O1 y1 S# p
*-------------ddy240pminp左侧高峰值-----
" u1 B1 X' V/ ~( @6 y 4 S N F8 ~) e6 M c' G
preserve
2 Y4 L$ ~% N" K3 }$ p
, x+ E, K# ~. ~& Q0 V keep if dx240<`tempminp'8 S1 f" o. J+ Y) v4 s- J
- u% q$ h7 z. d1 X6 X1 { keep if ddy240>0
$ [9 {7 L( n+ N - G3 {# l* D4 E5 e- K
count
! H8 U. D( Q8 e; m* F- D
$ I7 u' ^8 W3 I' @2 d/ E$ d if r(N)>2 {, U8 J& R* i' ~ z" N
) C9 `$ V% L, f pkexamine dx240 ddy240" {- H: K- \% K' d, }! G9 ^. E
* A/ o3 T# |- a8 L( r
local tempminphddy240=r(tomc) ) n0 C# o4 X1 T0 Y% }1 \: a
restore
) J+ ~9 N4 z! _5 ]5 ~# ` }
+ l0 ~4 ]4 U& P. k* C$ J: x 1 P: ?9 C7 x2 C e: x9 z
else {/ \/ L* a6 s7 {% s
restore
1 o: m% i: b1 Z7 \; m8 z di "cannot find pminphddy240"
& E- a" i; O. w& i1 x: _ $ L0 @: f4 R$ j' l) r# N
2 A' D# K* c9 r5 f5 Z. C0 D& F sum dx240
+ z; ?# }- ]8 Y8 Z5 X9 _ local tempminphddy240=r(mean)
% Y+ L" `* I% Z# U! [" ~ N 9 z+ s! O3 t3 t1 T7 D; T* |/ [, U/ f
* p* h* B6 C7 l" u
}
* o$ ~/ n( g4 E, m" Y" N" m; F , v- [# E2 M+ j8 r) X2 w% U& J
* T/ P8 r8 v, V : _, T8 l3 i4 n" H
' h9 V' q) w1 t2 ^
1 J7 B5 J1 O: Y5 l, d7 t
% V) @. F; c4 O0 G gen pminphddy240=`tempminphddy240' in 1! A. j: L4 j2 [! x2 _
Y: B* o4 R& @* O A$ C' a1 y
- ]! P; K2 K: j9 l- s6 ? c *-------------ddy240pminp右侧低峰值 -----------------
5 f5 P+ I% l7 p- z preserve 6 c$ t0 ?; x( _
+ b' Q6 X# k! k4 J6 f* k
keep if dx240>`tempminp'
. a% u) o! ]5 `- f! A; V
O7 Z# O( G7 `* d' g5 a$ H J ~ keep if dx240<`tempmaxp'
/ ]1 r5 F" }5 U; S, d7 ~: a
; _' g3 {& U- A; F5 p keep if ddy240<0, I( L' T5 f6 `+ L. y$ D
# y, d, c: \- f( ~! r& {$ w
gen temddy240=-ddy240
' D& _& w) A1 Y( ]- E5 \
7 u. a Z1 {9 b3 G9 b count
. u$ C0 j8 g, E# P8 ~ / [" m9 f! l: u) R7 q3 R
if r(N)>2 {' Z5 b+ a' W3 m% I' X$ N1 L8 B, b
6 X! v" C3 a; M
pkexamine dx240 temddy240
, X5 C8 j( @/ i
, ?2 O& u2 y" w. r$ |6 g local tempminplddy240=r(tomc)1 N7 n, K2 V; Q# v5 T& G% m
restore6 r, H- y6 ]; E6 B2 `, O
}
3 M; }: C4 q7 N% W+ O, s* W5 R 1 a2 @6 ~' {0 g# f( H" E# N' d
else {# `$ [- _) B5 f3 D6 L( B
& I5 P' h5 [! s; J w( o! a& [* O
di "cannot find pminplddy240"( Q& I* d5 L9 p3 s. I, d1 n- }) l
restore
( T4 R) b5 e. r" o" L 5 f( g! @6 s3 T M& y
sum dx240
) |# c2 D) m: a2 l/ _6 {% h& o, } local tempminplddy240=r(mean)
1 p% M8 P/ @" Z7 Z 1 r* D2 ], ]% N2 d- x- O4 s. w
2 B% A& y# \3 `* @. `6 t0 U9 [ }
7 z8 m6 D8 D9 e
, L. L* I7 ^6 b2 E$ h, ^ 5 s2 z7 M) p" w: B9 I$ _& \9 I5 c
5 @- b; e; ?- r0 ?$ D4 M 6 g K" _9 ^' Z" q1 l$ ^
5 P8 X! l+ U* {: k w
gen pminplddy240=`tempminplddy240' in 1; f6 g6 M+ r" U+ I; i0 e
; ]1 B( ]! p' Y8 A- J) W1 W *-------------ddy240pmaxp左侧高峰值 -------------------# N8 h0 U* j8 K# \
) C( g/ s5 s. J( C" \2 U preserve
& B, H) W1 b. A; P9 w3 o' g
8 Q% }1 F: p$ \9 V) c# K: c keep if dx240>`tempminp') x: j$ G6 u1 H, q- D/ @
, X" R4 @0 X/ j8 W" \- C" I
keep if dx240<`tempmaxp'
5 s6 o7 P u6 }6 g7 h% b
! }( g8 u2 `( r P/ }! L$ i keep if ddy240>0
9 G& D6 N# n6 w! Y% e/ h count$ @ ^ H* f. {8 \5 p! q6 m3 z
$ v1 g9 o, i# i6 Q9 N7 F# I
if r(N)>2 {
. K8 v) Q1 b/ S + Q% Z: X1 U2 T. f5 n2 j
pkexamine dx240 ddy2403 [+ |+ v+ h' K- u5 V0 V+ k
$ {6 i0 j$ F }* m" q6 C6 U5 D: F# s
local tempmaxphddy240=r(tomc) : K4 A7 p1 F- C% Z0 K1 y
0 u! I! s. i/ H% P+ i6 n restore! \( c: a1 @/ H. k. {+ i u
}
5 E5 c0 ]( p4 F' c
+ A/ o3 e, q) ~% `6 w- F else {
/ N& {- z) y y* ~1 J9 a
- r# s1 c# Z3 t" v* m c" j0 u di "cannot find pmaxphddy240"
2 e3 F* C5 @7 Q' m( P! y restore2 {9 X, x0 f7 s
+ I7 D; e" n- U5 ^0 D t0 ?
sum dx240( _- R6 h1 M. p ]# n
local tempmaxphddy240=r(mean) 5 t/ |* n' s ^; C5 y
2 T5 ^5 C) s* E/ s
9 G' ]# X# ]9 G5 C5 M9 N: ] }
3 u) S/ F4 e# B6 ~ # i( ]! ~8 c- s: e+ \$ A9 @; h
/ `+ q( R1 z. j9 S' X
$ A# c$ n& s/ I! A3 K; Z
2 C/ e0 r7 H& s% w3 O1 c 5 t0 t( C& o {
" T9 F$ W5 \% P% a% Y gen pmaxphddy240=`tempmaxphddy240' in 1' M h" ~( U/ X' b5 F" e: }
3 h3 Q+ K: o! n8 N& Z
5 _+ c0 \, N0 ~+ F, B: D6 d* M *-------------ddy240pmaxp右侧低峰值 -------------------) F$ [/ i" E5 y* N: R
_2 J+ Q v, h4 j
preserve
& A9 m. {- T# w L5 H# G' _ . s! s; }0 k6 |8 a. v* i
keep if dx240>`tempmaxp'
2 q! e7 W* d! Y3 V! q 7 v4 ^' B, x7 o7 Y$ Y
gen temddy240=-ddy240
6 {7 ]0 z* n4 N6 b' J3 p / h4 L6 l8 f E6 c
keep if temddy240>0
& v5 l4 @4 G, s8 z; O $ {" V) J4 S2 T, F) ]) K8 p1 S U
count
8 j/ j. l. m7 k3 _ * b' ]. |* {4 W2 x7 `- u( ^- f
if r(N)>2 {# k! o% i/ b8 ]8 e
' f" b: ^( g' v% a4 h# ~ pkexamine dx240 temddy240
0 [ O, f( ?9 X0 K [4 `1 B 0 T x6 E9 r! m" C$ R7 l- r- _% l
local tempmaxplddy240=r(tomc) . Y8 j% I" l6 E" p
restore
; q' c2 G5 v4 U }: O) G: \' i* e" L% J
: l$ ~6 n7 }8 o else {
, J% w5 B/ W; `: W) L9 k. n8 A restore
( \6 [2 D# t9 v, N; \ di "cannot find pmaxlhddy240"
# l9 ~* K5 j9 z# ]; v" c$ [6 z 0 W ?4 ^0 x; C$ Y3 v' u
# Q$ {8 S) k3 ^' F3 l- ^ sum dx2407 `) f8 Q# g2 z' G* @7 N/ O, f
local tempmaxplddy240=r(mean) in 1
4 G$ R1 ]' R/ H& _; U, y. b) F
8 u) H: P, \ M. N3 x; R 6 |8 K2 w) S6 J( \& G0 l$ D% G
}
) c* E$ e, e0 M4 K) M7 D
4 s/ [6 ^; I6 ` ; n5 x& \% U$ a9 i2 B1 a+ H4 H- G+ K
! B9 M8 a* O9 c$ ?
7 z8 B$ A' m- Y6 B! u! Z
& f% X4 \# m" j
+ o: A# n6 D* [) ~
gen pmaxplddy240=`tempmaxphddy240' in 1- Z) G2 ^ K" \9 Y% M
! ?' s9 w2 u% \7 @
*-------------------------------------. g& F3 s4 l- ~( f# [
) Y& Z/ `. d1 d6 e' { gen price5d=v5 in 1/20
9 P) b4 P1 X- ~$ }
( \/ f% k- C5 c gen price5yy=_n in 1/201 U8 o1 w: ^, |4 V+ ~" x
$ V6 m4 E) Y2 y/ _. ^' |3 x( I
gen price5y=price5yy*(dy240max-dy240min)/20
& e0 l9 k6 |* Z) i3 ~1 d
]; Q8 V5 K- b *price5y &price5d- H- d( k, A! Q. F" x' F3 ^
7 V, D6 B5 G) Q1 W gen priceny=price5y in 1
0 V; K, T' `9 x2 i 5 Z+ r, ]4 X6 W/ W- }* P7 [, q
gen pricen=v5 in 1
, Q# C. e2 N3 a. [6 V2 w; [# d, z3 X* g
- C- b+ b* n0 |7 A" `+ m
*priceny &pricen7 @; e- K, r$ j
0 {' c5 m0 v' e4 O0 d
( b3 y1 t+ ]) c- y9 ]% P, t( N1 b *-------------------------graph------------------/ z: N/ g$ h: J5 H" c: a' P
" @( k% h; {: E& [ }/ N: ]: a- A
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)# f, A8 c) y3 x2 y+ X6 L
& k" V' t. a# Y& [$ x) D8 U* ---------可选项目----------------------
' Z6 B! e2 m$ y4 i5 y*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))# Z8 e1 Q+ L. F! e/ j! J: i
}- N: A: s1 g% [1 W! o
end
5 c- T( s/ j2 J5 y |
|