|
maodeng 发表于 2013-1-28 13:13 ) h$ X) W9 B' B. y
. hello 3002364 V- i4 @% s* R8 ]9 I
statement out of context) r7 Q. P+ O5 j; Y- o' m
r(119);
2 c4 R$ o. U. s1 x' R# {抱歉,最近太忙了
$ F3 P4 W$ `; k
; C$ D Z- `5 w9 v300236 我用下面的程序试过,没问题% r1 m" F3 \' u' w! b& w
1 b* `, [: ~0 y9 O& G
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
& h7 N8 n: r. p$ F Y
8 w! {3 i. @: {9 ~' f* u4 u- \capture program drop hello3 X2 g) Z) e+ N4 B# g# [
/ E: D, w2 b8 P; r# t2 v
program hello8 v X3 F R- r& t* _+ B* v- \
5 h1 ?0 j6 i$ E
quietly {$ G& c0 l$ E% u6 i: t# _+ c5 D
0 N4 t2 p/ p3 L
clear
& V0 T# \4 ?( e+ H2 h' u( F
% F% _5 X1 k5 D) i6 i ~) |cd D:\stock\test\source# l& }' {- Y* m6 l
0 Y1 T- ]7 g% I0 |6 @% Q1 s. linsheet using `1'.txt5 P- D1 m: H( v: Y F$ _
5 S0 L- o) ]* y5 B" x5 ` keep if v5>0
8 s& b3 J* i5 _* Y# D& b( r0 V
1 J3 x/ V( ^, M5 y3 y1 j) M& d W gen vt=_n
, p4 D+ y' a% q& Y/ }; q! L( n% L% y " b: [* c1 z# g& E q% j( o
tsset vt4 G! K% C3 W# S9 s/ V/ A" t9 k
3 ?. }, ?) i6 _+ J% X1 n, I" x
gen zf=D1.v5, o9 v4 o, C! B
; y, C0 g3 @4 I# M& L gsort -v1' e$ \7 L% p, q4 D9 x3 A
; J! {3 q J2 X4 Q0 `/ E. R- } gen avol=v7/v5
; P" }& W% Y. _& o ' ?( c( n6 L* g3 Y
keep if avol>0% W% s& R2 \9 }0 x
& h7 k \% s: G4 { o y- l# a1 q
drop vt* M, P7 K6 d4 J- P
9 q. E: ?& w) W7 P
gen vt=_n5 V g: K- h# @+ j+ q+ y
. m/ u1 i, u( p) h1 ]6 c6 W, w
tsset vt
5 I% v3 @1 z' }- z' Z1 D0 q X2 j * R( `$ k9 v! c5 C
sum v5 [aw =avol]
' \ Q1 X2 ?' t6 O5 h* T' z4 L) x/ O# u, Y9 g/ i3 a6 l4 K# g
gen amean=r(mean) in 17 k1 k/ m4 w2 O7 k* }
5 o7 p! \$ r. f: K& w$ R. f& A2 t. ~ * 总加权平均值 amean1 f; q! w. q) l& w
+ u& g# f# x: x- e9 N; y4 n% h& n 1 ^. [) P2 G$ F' g: n$ M+ A
keep in 1/240& r8 \; h. n. R/ _ F
( U( L9 Y; r1 ?+ r1 N sum v5 [aw =avol]
6 r( A) H# ~8 g: Z& d6 S7 l# a
9 i8 c9 r' P& k" {$ I& @2 j- c) D gen mean240=r(mean) in 16 r) \; f2 b1 p
1 p2 D t R7 h4 B2 k+ ^; t5 y *240加权平均值 mean240
& w5 q8 n5 R8 L7 r 1 z6 c7 F3 J {8 ~ k
set obs 500 3 L) l& b1 V O. c" `
% k4 o# s0 _8 H9 Y kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph: i& U4 X" i0 \7 l) O
: [) T6 x4 O* b- D2 q+ v8 B2 v
*240 kdensity(dx240 dy240)
) b% m* f; G0 G- Z/ A: k" X4 W
* K0 @" T3 q: F5 d& N sum dy240
0 U1 l6 @0 H! c+ W3 f 2 B" i# H: a2 u+ i4 v
gen yxis=r(max) in 1
& ^/ b; t% t9 D0 x E2 w/ U h - y& r+ c! Z- b7 d1 w, F
gen yxis2=yxis/2
, f w& h! w7 ?0 T6 Q3 T7 m
/ T: M- |1 c1 a3 v8 ^ *yxis, H5 N7 E# j( w9 b+ Z$ [0 Q% m' N
$ d5 O) D7 T2 h' j4 d
gen dy240max=r(max)
% \, e- S+ R; Q" c+ `/ p! h
* E- i, t+ r: A3 i5 b) E gen dy240minp=r(min)
' |/ y* A9 D2 u# r: @8 h
5 \) w2 a* C d: m2 d! u gen vtt=_n
% N% L' o" C' i2 l8 M: D& D6 u: S" ?2 Q3 v6 B% _$ b3 m7 W
tsset vtt' P/ X/ w* d; q9 K- q. V
9 I; s- U) S" k* a* P( A gen ddy240=D1.dy240/D1.dx240
8 I7 w. D# V, p+ M2 r0 { $ j( U3 a7 N( M3 O& M2 c5 W
sum ddy240
0 r8 z) D/ T8 @* G 8 r' V3 |9 n/ j+ ~' |
gen ddy240max=r(max)7 P3 s1 y* ^% b- Z( ]
. d& q* h) l) ^- y6 M2 g gen ddy240min=r(min)) W6 A ^# n7 C! E/ \
, y1 h2 k5 @! V0 x, F
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
9 W9 o2 o+ K6 o% i( ^! `+ p# n 9 r) k6 d: X4 i; C
sum ddy240g
" @- I' k: K( r3 E) F/ W : h. \5 z& X @6 R
gen yxis3=r(min) in 1
0 G: _# ]$ \ v1 y1 ^# T - G- L6 ]: @; d. U' Q7 d, _) L% H
gen yxis4=0 in 1
E( x" }+ X* e2 m1 {3 b
7 c! E* q5 h/ \) y k* s! B/ t# f *ddy240g
/ c) {5 ^7 V* s7 v& A9 ]6 | P: J8 Q2 i' k
( Q4 Q: |& N. G' ` preserve & M/ V& U+ w7 ]; H/ S
6 T3 h! Y' _" t4 d! u sum v5 [aw =avol]
3 |5 [1 O+ m" D- ^# p+ v3 W , W! |% `! m# q9 ]0 I6 L% y5 Q
keep if dx240<r(mean) x7 ~8 i2 _: }6 |4 @ \+ y
: `( _! j5 D" u6 g' T
sum ddy240
! R2 V4 c( X. q
+ A o- @' _' U. a if r(min)<0 {
5 Z* I$ l7 q+ B b; H A! y# i+ K & A5 x/ J8 p4 `4 f5 E
keep if ddy240<=0
# \& S8 E: O+ M c/ b+ S ; C4 u* m! b' q1 ~8 L$ @
count
& |) J& c+ }6 y/ x, P - g: T9 c% t7 b: ~; @: T [2 _3 K
if r(N)>2 {% J9 j1 t" J; n8 d Z/ v
6 }" j% c. H1 ]! s- I4 m pkexamine dx240 dy2409 }& V5 s9 L7 ~! W" o- o/ |4 @
0 I& J2 o- L" Y1 u' v6 v. E
local tempminp=r(tomc)( H( |/ K3 ?$ p8 R7 ]" e
restore
# V4 B% C; Z3 }; U2 ]* N; R' B }. O0 R1 C w& ^
* _* @3 k0 H* i* }
else {. S8 ?7 v' r% d- P7 g
$ l% K6 k& l2 N* ^8 D di "cannot find minp"+ e1 a" Y+ J( R- v
1 w6 e, a( W( c restore
, E C2 m3 @3 o3 Q$ K* L sum dx2407 ^, X! [, }3 F
local tempminp=r(mean)
# m% r _6 o' y& Y
, S* ^% B! N9 y; w: u5 }# @ }+ I) c; H2 ~4 t v! T( \( Q
}
! V f w% U/ L" n! K else {
* B& G9 T/ {7 S% _
8 w2 H$ |( J) k2 } keep if ddy240<=r(min)9 D7 u j6 u% E% W8 y' B
" o/ d( h- c5 Y sum dx240
c1 |4 F2 ?8 a$ W% s8 n
4 s4 u' i- R0 `6 o8 x local tempminp=r(min)5 W- |$ h. h7 t2 t, ^ A6 }
restore
V7 h& A; S* v2 U z$ y6 g }+ x6 J2 c+ w$ T
1 r: Q: Z; J# S: D4 T* [3 W, w9 M+ W7 Q7 u$ [6 {. s
2 k# x! f+ `$ b, _9 ?( D |4 C6 S
gen minp=`tempminp' in 1
0 U. a# r0 J( G# ?$ ` *240 minp2 r! q- R* N9 t6 g% W
% G. ^( G, W7 c J3 R# w
& P- M2 d0 b6 R) g6 s$ G( m8 w8 F! H ; n$ {% C, K& d: V8 m& L! G- E
preserve
7 `8 D' Y- o; u: S I
+ Z8 c, q& H8 g+ e1 } sum v5 [aw =avol]
" j/ g* c6 V4 A! G* z, s 9 P6 I0 |" V" C* d
keep if dx240>r(mean)3 p3 ^3 l: W' X( ]! t0 D6 V; N
5 a! X6 R6 y& h" ^/ W
sum ddy240
4 f; Y: @) Q: n0 r8 g6 J
' K+ Q. s* Q8 b& ]) U! p; Z if r(max)>0 {! O& M. P) [! C" w5 {2 R
6 y2 X" [$ Y5 `% |2 a keep if ddy240>=0: Y9 o4 |, a8 S; p4 j9 Z% O
* @5 d0 X# H5 ~, o: A, D
count
5 j0 s5 h x( c5 ~ l% B/ d ) h, g; `7 U# Z
if r(N)>2 {
( g4 P/ c- n+ Y. C0 B$ @2 @5 R9 f 2 r& ^# O3 J9 G2 `3 s- H( ]
pkexamine dx240 dy2401 U% s0 W. L; }& \
- i- h. p; X6 `- l" X. @$ y9 ^& K6 f8 S
local tempmaxp=r(tomc)
1 p1 P' z4 [6 _ restore
: d |3 y& t" l6 A. M0 Q }6 K" I7 H9 r2 i0 E, t) b
7 C L; u; O5 `1 p. t/ | m6 C
" \3 I* e: g5 m4 k6 E9 o else {
. h0 F, a+ a% E( X" { restore / t/ X% S' s+ g i$ b, h; m/ F
di "cannot find maxp"% ~! S" g' z; V$ _
, `6 W; J5 D( w" ^9 d- ^; i : v: j. Q% w; K% `5 g
sum dx2400 K/ n f/ I9 W4 c8 J# T
local tempmaxp=r(mean)
$ c) F1 D6 U6 C$ \ 5 J- x3 b5 Q9 j( V) j
}: V3 M/ U* t! B
! E+ N' ?) Q7 ?, G8 | }) J3 b; k# a/ J2 f9 h( W
& |, r5 F. N) l( x; i else {
+ ^; W' ?: [( x g* o/ `; }. [5 `: X7 L
! S; ]' c& g+ o3 p1 k" `0 N keep if ddy240>=r(max)' S' |. s+ H* R6 I. S: M5 d$ C
! r0 a Z; |% Z1 k sum dx240
) c7 f9 `* G, b7 h0 w ! C8 G9 B1 s- j( V" S F
local tempmaxp=r(max)
2 C( Q$ _& M7 L4 M1 ` restore 6 ?0 H! x6 m/ P! ~- F4 Y4 k, u( B
}
f* C2 y9 |% k) v6 m * g8 a/ N3 t, a j! m
3 o4 e- F* [; s& i+ L 2 E3 |8 V4 g7 K6 y
K% A/ m6 Z$ H. m2 s gen maxp=`tempmaxp' in 1
" j$ b8 P% m9 t8 u# u7 T $ q( {7 R% M* ~2 [! g, z
*240maxp
& J9 f7 H* }0 A t* J% @6 E% T ) b1 J$ M. {9 @0 a7 ]# J1 h4 D% s
2 p k$ |$ p# U/ v7 K
*-------------ddy240pminp左侧高峰值-----
7 ?. e! E3 m9 m / p# A& ]& J3 \( S* W1 f3 H
preserve % j1 r! n8 T" w0 |7 T- ^
5 I! g# W- w# b* g1 Z- q' L8 A5 A keep if dx240<`tempminp'
2 \5 N- |! R$ @2 Z# ^3 Q
( \/ H( Y. ]5 _5 I keep if ddy240>0) \+ M' w( {& A
% f1 T' r* A* X1 Q2 B& S, `
count
9 B" T1 Y3 ]+ \5 @ 3 c8 r. d" `, c
if r(N)>2 {4 s3 _# ]8 y7 v# J% C
+ O# H0 R6 ~! |4 |+ e pkexamine dx240 ddy2409 W+ J7 s# ^: D/ W; l
# r) t7 G( B/ G {2 k local tempminphddy240=r(tomc) % ^- F$ e7 m1 R, _7 e0 {
restore
+ F2 c# A2 D$ O! a* ?% z( a9 T( M }
# I, `& Z9 I5 {, g% z0 i ( I/ \$ e( v$ e+ q3 t: B( @/ T
else {. Z) r. m6 e/ |8 F) o2 L
restore 1 e0 I& W# `9 N1 b
di "cannot find pminphddy240"; G. n% u4 `9 ]8 J: D
! y h" B/ l2 q( { ; c. C" v" G8 \& d3 W+ [2 [
sum dx240; o, _5 l. M8 ?8 r& U, N7 a* U' O
local tempminphddy240=r(mean) / h2 k& B. H, d- E2 M1 w! ^' h: W
% e! W ^$ X; V1 ?7 H z9 A" i+ o' K( P
1 N: U+ h2 b6 g% D$ y6 `4 R3 } }
, C9 S/ w' B1 z ( U: |6 `+ F8 E& f+ U
. h! _% x" D! b) f5 T% v' ?
8 I8 R3 {% E1 Z. K
5 L% G3 q+ ]& K: w2 F' e
! B" C0 B7 {7 V* a8 e" V4 G
0 [, \2 I2 O8 T gen pminphddy240=`tempminphddy240' in 1) a& |" O/ ^, S" x7 K" U
4 h+ ?9 e' b/ L0 c, ?' X
. R$ h3 Z% A1 C' l. N *-------------ddy240pminp右侧低峰值 -----------------
: m" Q4 m" j5 O/ J preserve
- b5 j9 ~7 a; l/ @% N5 n& l
$ z' _; M/ r L( s keep if dx240>`tempminp'1 V; h5 d6 y, e; U
& [1 o; V7 H* T5 ]( K8 H$ u
keep if dx240<`tempmaxp'
+ u; X# f3 h! W+ s6 F* A ) P) C% ^* c0 C' o
keep if ddy240<0) g; t; X: Y* K @' p. r# R
& y }* X& v7 m$ ^% _: ^- j gen temddy240=-ddy240
/ y; ?6 K$ V( h) m 1 L4 S, T# N3 e) t# E4 U
count
$ q, B* f$ ^$ F, z' U. }1 w, \
6 {* {* i% K+ B9 Q _! }, s0 D, | if r(N)>2 {+ U* U9 F8 P/ n. v7 O8 e! R. q
- C9 w) s9 x: O7 O! _ pkexamine dx240 temddy2401 P. }3 O0 m% W$ _: `/ }
5 n" F! h! w4 F' [ local tempminplddy240=r(tomc)& y; L1 N6 n; t$ p
restore
7 K+ h( }) c! I* T7 y, c }
( ~. L/ z$ y+ j( X- W6 c. i' G- B ) w5 S9 Q5 Z" _3 g) @6 C
else {
( G3 g+ S$ z4 p+ E5 h" }3 v* l
- ]6 Q* f- f7 T& z; L8 X di "cannot find pminplddy240"* g/ n% ^/ `2 b" i
restore0 r) Y2 X; M8 _" s/ |/ K
' f$ Q8 L2 {5 B6 C' i* z8 \" Q sum dx240
, ]8 Y' D/ x. c7 l. `. h local tempminplddy240=r(mean)
1 H) J5 |2 S" S8 q+ `
- q% i# K, K' S" H% S% j
m" M7 |3 i5 A, b/ a+ k+ f( h$ @ }6 J2 M4 A+ q4 }9 ?) ?
& f' ]* u( x9 x0 g * a% r# I7 x' T
8 R- m, x# B& X$ ` 0 [- T$ \, D4 z" v! }
, H b. {& K# S9 w' V6 r2 c; E gen pminplddy240=`tempminplddy240' in 1
7 F/ F4 y2 N9 Z4 m2 u6 |0 k0 G U; Z/ N. P+ k4 t9 a2 d: w' @* p
*-------------ddy240pmaxp左侧高峰值 -------------------) Y$ g/ v" Z7 l7 |! e. L
2 t# y! e! s* |. q" u3 l' W8 s
preserve
. a W& ^+ n t . ^4 U) N( B; [. _3 v& V2 V; ^5 ~
keep if dx240>`tempminp'
8 Q; u/ n) K. n" B: i/ s$ s ( J5 a/ ?8 G/ `! e
keep if dx240<`tempmaxp'5 K% Z9 ?: Q# K f/ g3 U2 E4 L8 ~8 S
) B/ {) v0 T: ?8 i keep if ddy240>00 W1 B- q* h* e3 D Y1 |
count
0 y5 R7 L& [2 I. }% `$ z 9 P: m/ w4 r9 D/ }, \2 v3 e5 }9 J% E
if r(N)>2 {5 q- B, x5 b3 E% E7 ]
' w, M/ e4 }9 S/ t' X" X
pkexamine dx240 ddy240
5 B3 z+ r7 A. K% ]
' L4 n1 Q1 ~% D local tempmaxphddy240=r(tomc)
! o6 v+ \. H# }$ {# m4 u' v4 @ 1 U% _: K0 ]; C Q8 f
restore8 H- O1 V1 s4 T$ t* H4 _
}; s* |* u6 k& [$ E
+ O# C' T0 S% ?1 l, w; y
else {: d. C& A- [9 t2 k! x V
0 `6 i1 }3 h: g: f" N g8 ^ di "cannot find pmaxphddy240"0 M3 b$ f8 p& l1 }
restore% ?4 Q C0 m. v( V3 Q! z; V% W8 w6 P
+ W- f( J) v# X0 |$ | sum dx240$ F3 `! S" d8 Q4 C6 b; z4 q4 p
local tempmaxphddy240=r(mean) $ A3 z. y8 }* ` H( r7 m
0 r. f- [. N- r2 q9 ^- M
2 ?% ^: ?# r9 a" z/ a/ q }* d; Z$ u2 g9 \
0 F5 p, h- [( P 2 e" l6 T* @8 C; h$ `9 `8 z
6 n( o0 p# \1 P8 a: b( e2 I
2 j! u! o. z9 M# l3 _% H : m8 b7 U7 s: q# z% d" q
+ ]- i8 _3 o5 ^9 n& }
gen pmaxphddy240=`tempmaxphddy240' in 1* Q! o2 O5 f) t8 H$ y
/ `' E/ F! X( a N( m
* G: p' b0 g. X
*-------------ddy240pmaxp右侧低峰值 -------------------! H+ L, \+ i, S1 K5 L
3 b% e! W Q7 V6 w9 r" y
preserve 6 u0 b8 w2 X8 u
% V+ \$ e, Z% `
keep if dx240>`tempmaxp'
, C9 A: G9 S' B+ R 4 L( F! Z! m$ D$ G" Y
gen temddy240=-ddy240
' x6 h' ?; n9 @, e$ I: q+ O$ I ( F% j3 Q. I; X. r
keep if temddy240>0
/ K" l2 J! k( j! e& a& T( {+ J $ z/ N0 L' ]" D0 G
count: F- x @" @8 q6 r0 Q# s
- b0 N8 Q+ g4 l$ U
if r(N)>2 {
3 Q: r& ^+ {) f# c% { `, T - P/ j$ r: x' m9 ^. I% ?, R
pkexamine dx240 temddy240: T; k" [1 r- O. x* Z" c
% f7 m3 B8 Y; a9 K) Y. \ local tempmaxplddy240=r(tomc)
% m3 H- f4 e+ r restore
4 t$ W) K1 Z ]% @9 S; D }
P% g+ }, p6 w
' U8 e. d$ D6 e" m) f else {* d7 k' W5 g* \% x% N
restore) G( N H: G5 x* t" V# V
di "cannot find pmaxlhddy240"" Y' K( @2 Z; _1 D* x
& o9 b F, e- d; N, _3 @6 b ; M, H5 R# O' f M/ y) K& `
sum dx240
% G) I/ r+ E/ I5 A$ S local tempmaxplddy240=r(mean) in 1
0 T9 ~% D# t2 n' g* [
/ a( P& F0 }6 Q. e/ h; _7 F
. S9 a9 U& _. v/ h$ l4 k! A+ E }
+ h: u8 X) X( _0 D0 Z
O% f8 h8 A9 o) T- n 1 S+ a+ j8 S% X% D
, Y- Z+ ]: v) c& p# f. C3 t + T. A1 O& z$ R$ \
E5 g Z2 G5 P4 C
* Y# k! Q [6 j2 @
gen pmaxplddy240=`tempmaxphddy240' in 1
8 x7 P, F5 |( j/ l : D" B. |6 _# G4 O6 b6 q: y! c
*-------------------------------------
! h8 |0 c1 s% [% i/ U/ h
/ ?) q/ v! Q9 ~% C gen price5d=v5 in 1/20
4 V9 X2 o; s" b( f( N6 e2 ?+ N9 U" W1 q
9 j! c9 k$ `) O' P/ D gen price5yy=_n in 1/20
o' u5 T1 y/ ^2 A/ `2 y% W. Z 2 A2 C1 G0 b' Y: Z5 @, e
gen price5y=price5yy*(dy240max-dy240min)/20
' Z. U! d6 f. f+ @1 x
6 e3 {& B0 K+ ] *price5y &price5d' \' m9 i' m0 J/ [1 x
) q/ T' V8 f6 _0 v
gen priceny=price5y in 1
8 I. R: c2 { y3 G
* }6 ^/ H) E1 F gen pricen=v5 in 1
" u+ a+ \( W; W5 ~1 t) g2 D2 r' k# A) j1 K: b; l* {- O3 H
5 n2 k$ @+ ~/ c9 p$ ]6 h( ? f
*priceny &pricen
1 }9 X7 F) v7 |( i; |/ T" n
3 {; ]& A" ]3 ~
' o. D( A, I% `, l" p# a3 {* l *-------------------------graph------------------
+ q8 I1 V* x4 D L; l; W) f+ D
7 H% [4 n' ~( `, e% d2 R 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)
: o# P3 ]0 X) d* N1 G
" d. q* U$ k* q9 x" V! B* ---------可选项目----------------------
6 P4 y2 S G* [*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))/ i% P8 N# z& c$ T1 j5 l
}8 E3 Z. Y# N" a, t
end" _ H+ E8 u, l" c" k
|
|