|
maodeng 发表于 2013-1-28 13:13 ![]()
; z% J2 G; q8 E: Q; A. hello 300236( b: t v7 ^5 J% S. M& H
statement out of context
& R2 e5 a9 L F; k4 hr(119); 1 G4 p7 I, _4 G V( U, m
抱歉,最近太忙了
" Y5 c: U6 Y6 ~7 s5 e3 G
0 O( N) J1 \, C. I7 E0 M300236 我用下面的程序试过,没问题
9 M6 q( J Q3 r8 O: y: _
$ F, B9 W9 {0 a$ U: b你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
' l6 p5 U( g" N$ I( x) p ^8 t/ s. [- V" S/ k: u
capture program drop hello
& A6 C4 v! @+ |6 w- F* e
* U* q8 _3 |. W6 M2 R. Fprogram hello8 K* ~6 y% a3 `- o( j2 n/ V: L
7 U6 J8 E% ?/ h) h5 i" y4 p quietly {
C7 p! k0 w. \. O7 K2 ^8 [& B& \4 Y$ z5 l: x
clear
9 `! f+ B6 r& q5 S# @# }' i# u; a u& l3 @
cd D:\stock\test\source
, K/ G5 M$ o% l% U# Z: Y d$ P# C: m2 A" v( N$ v0 c% R6 T4 h
insheet using `1'.txt
4 `9 P9 z" C- l
6 P, l7 \/ _4 V8 B! C% ? keep if v5>0+ A+ x1 S4 Y0 [ g/ E( l
1 U0 F3 e( N( G4 X. [5 k gen vt=_n* |8 C. y9 P0 h$ [( i" s
0 E. K0 g- V. @! o tsset vt$ V1 M# c' K) l' h/ T, p
1 y+ x% n8 o4 ~4 h N' i, L gen zf=D1.v5
- j: r) `0 q" Y. r% b8 a
& P( y) R: O# x: i8 x, b/ k( ] gsort -v1
/ \, l# M% r+ P' \) K& R6 Y9 x- I0 `5 E p, x) q' s/ l# p: ?' q! Y
gen avol=v7/v5
- y1 q* c7 @/ j$ M( B1 O 9 R( B" Q; g% ]# s2 R, u
keep if avol>0
3 R4 |8 _) I- U2 r0 p9 Y1 p; ]
$ w" R- J2 B1 | drop vt
* W0 }# @3 m- t" i 9 W; ^4 M2 Y* @
gen vt=_n+ O2 U7 g* [- `+ ` I; X1 _
5 F( U$ T( W" b. H" ~7 J4 U tsset vt$ h2 ^ a6 ?6 b0 ?# F
! N% {9 a- P9 Z* ^) q8 t
sum v5 [aw =avol]9 q# F2 f2 M' @/ A: e
% K' }! P4 h8 N' x6 p3 U# k# q9 j gen amean=r(mean) in 1
1 d6 U) c/ l) c) ]2 J5 Q9 h
+ t& Y; D6 A1 F/ b$ n * 总加权平均值 amean+ w* G# r7 X$ |0 k/ A2 Y5 S+ S3 P/ v
: t% U7 o+ a% i5 v* x' y5 ] ) h: G/ R6 ?. D2 l
keep in 1/240" m1 v) l: [9 m( g0 s
- X4 i- }6 [* F$ p. {* m
sum v5 [aw =avol]
7 V' f, ]( u2 K7 _2 o1 U8 Z \& R
% Y9 T( P) q# y gen mean240=r(mean) in 1
% j( Q) m0 `: G$ i! L, y
" I( w) P9 B- V. g/ b3 p# h% J *240加权平均值 mean240& J; V9 A( c0 u$ C$ @6 Z) v7 T' v
$ f9 K; X0 Q+ H/ t! u set obs 500
% z: T1 n7 _: x3 f; m
9 F1 ^: `5 t" c8 r" O kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph# z: U: k5 _8 H
1 a. j3 l8 n. t$ g1 O
*240 kdensity(dx240 dy240)
* N5 ~! Q: h4 `* n3 \ 3 n4 ~: I6 }- P' U! M8 }
sum dy240/ g$ v) D: X: y) E A- y
, a; O3 g3 J; W5 Y& ]3 v+ n- E7 b gen yxis=r(max) in 1) R! n6 E; Q) t' p: Z5 n
$ r& t- ~% K2 Q* \; E0 R8 d4 y
gen yxis2=yxis/2" H8 h, k# k% o2 I
3 s- D* W ~& D7 C0 Y5 F' m
*yxis
1 |5 R) g+ a3 }. N' u! C0 ^
- r& Q" l. h4 l- m5 H gen dy240max=r(max)% m, L6 m% X$ K! K1 T% H8 Q
1 G; p/ X3 ?& C% F* Q8 q- q gen dy240minp=r(min)& S2 F% }2 q0 e. }+ b' e' M7 g
1 F5 j( N; Y; Z, d+ D# D gen vtt=_n8 ~* |% ]0 V# @8 P- U7 B
( [2 u/ F! `6 i5 q( y8 f: q. M
tsset vtt
) T' @/ |* L' l7 l1 T3 `# z* S# N1 C8 ?2 n
gen ddy240=D1.dy240/D1.dx240
* Q7 d* w3 O, W# | + j2 b( K3 i0 z& c- r* _
sum ddy240
: n7 l. s' y- r& ^ 2 e, e E; E) W: u: t
gen ddy240max=r(max)
: X7 ]: c/ P7 A; k# c
. q* t, q6 \# n1 T$ H gen ddy240min=r(min)
9 a7 ~# \/ t" O9 c$ w , W0 k0 J h0 K1 e7 h* E8 N. _* F
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)5 b' G: ]9 J2 N! T. K2 b% }
* o& e0 c+ i* F* }
sum ddy240g1 I. T Z) {% v8 l3 l5 p C$ E8 j2 R
# T0 }8 q q- R' i3 h2 ^
gen yxis3=r(min) in 1* x, N4 M! y f! R9 G! e
) l% G) @. j# A& x$ k
gen yxis4=0 in 1
# s$ b- _; G) @$ | ) B d- D) a) o ~) S
*ddy240g $ Q' y6 k2 C+ j$ d
, F+ C& I; E; R9 R% u
6 o- x* y) [/ C. I9 S7 R
preserve * e) j5 y" c7 ~& {# i
# q6 n" V. {# q$ `
sum v5 [aw =avol]8 u i6 X: u6 P- P' m
5 v R4 A: Y5 n7 K0 _5 B. N keep if dx240<r(mean)
7 X+ |. ]4 ~/ s% \3 e& [+ D& U
7 z x* F6 p! e1 o6 L1 k6 s sum ddy240: g1 k; G7 g2 J; b7 b: G% @; ?7 Q2 ]
1 \+ {# K, B6 f2 y4 W
if r(min)<0 {: E. K, S2 c4 D
1 {. O* `' Q, J$ i
keep if ddy240<=0
5 |( m* p/ N; a; y# w * F$ ?: ?1 F! W
count1 h# K z& R3 l
! J2 X6 [) h+ S8 T1 Q" V6 e; E
if r(N)>2 {
$ q# ]2 i& {4 y7 R
+ k; h9 x9 Z2 R pkexamine dx240 dy240
% B) D( Y) d# g( z3 H5 Q
6 \2 ^; K! [! M3 o local tempminp=r(tomc)1 y( S. v2 T+ J; L: ~8 N
restore
! Q' r& ~! A" y7 \; } }
" \$ [7 N9 \0 w! C/ \! ` % T* [8 g5 ^, d+ F. R% U5 l/ S& v4 R
else {; x& K$ D/ X# u8 v! F* Z
. ^" |0 [/ \1 w2 [
di "cannot find minp"+ H' Q" s( a) I2 r! W- R
, Z) u+ ?6 K. f0 h
restore
/ i7 }6 c2 K( O# H. w sum dx240% Z3 n) F* K( A4 S: s5 O
local tempminp=r(mean): e/ c" F$ U* g' K: ~
4 A$ X" _, o) \% @- u) Y: q
}& _, |5 j5 Y, v0 u! p3 h
}
" E) r6 e4 ^3 A }3 F else {, d5 M/ E9 u/ |+ e( k: m
/ D- ?2 t6 t% B, T* C- v" g, U
keep if ddy240<=r(min)( J* q% Y, @ i3 n
# q1 Y* R: x9 p1 \/ N/ ^; S+ N sum dx240
. M. q: b' } _/ z2 _ ; C/ V' f& i' ^9 _
local tempminp=r(min)
/ f1 Y. F% d5 m; B) m5 s restore
% D4 f* H& ^( e' ]: h. s$ F }
+ }5 Q8 Y; [6 O0 Z& }" O' ?: z* t W0 Q/ f
* e" _) ^0 O/ w3 h
?% e1 i6 `$ m' G: j4 a5 u gen minp=`tempminp' in 1
; m) i" R1 L/ h5 E! x* ` *240 minp" u' I/ Z# K0 B# n1 E, {# m
- l4 |( M' Q# y+ R
$ \& n7 f" {* K) v0 M$ r3 N: _
) ~1 U3 y( w( i1 D! G$ \. o: _ preserve
+ w4 U2 L: q) D2 L/ U
3 S: @& g5 r- ^; |, _ sum v5 [aw =avol]
( X; _* ` Z& H) D( ] : }$ |4 W3 }% ^( }# b
keep if dx240>r(mean)
" i/ x& V$ E$ p( O' V
) c, @ D( A. O5 N( Z0 p P sum ddy240
' _/ P. K' _% X9 K; ^0 u3 ^
( n! {2 {1 `( Z. j6 ^ if r(max)>0 {5 M& I3 a% i0 s
$ F4 f4 x$ G/ w3 S keep if ddy240>=0
) `6 s+ O! _9 N& Y7 `1 y, W5 K- Y ; I# _1 }, R$ D: }3 y7 }2 }$ R
count
! G& y2 W. C. \$ E6 K2 a 8 {9 X1 P" P, J }5 I
if r(N)>2 {
) n% ~# c( }+ q9 m- s# z/ c. { ( n3 o. I. P1 b3 ~! A
pkexamine dx240 dy240
# h1 P1 a8 Q. [% l
8 ] A" o4 K; a) e: j local tempmaxp=r(tomc) 6 T# M+ o3 R$ e- C
restore
9 S, J# U( Y4 D8 t/ ]9 K }
$ |; p% A3 V; z% ~ , n6 M! J, @/ E! e8 w. N
% Q+ N) D8 n. _( Z* s/ S else {
$ v7 V. X# n/ ]) } _2 w- j restore 4 {! J; q6 ^6 O/ n; `0 }! X
di "cannot find maxp"
3 i0 [0 K) @8 M1 [8 m& z3 J0 G
* a; k. k D2 I $ d) U% T9 y0 p g L
sum dx240. a. X: f% G( v' |
local tempmaxp=r(mean)0 H, y" ]$ [9 J, F- L V
0 [' r( f B x% A0 e4 e0 B }3 R1 D7 l' l H) v! l# S
. V% q0 U8 a6 S' b, r
}+ A/ X. B) {* P+ D. w' [0 K8 _
4 _$ k# G; R- q else {
, D5 z/ I9 U) l3 d( j9 B4 p1 ^% v 4 B$ S8 P- |5 P4 G3 g
keep if ddy240>=r(max)
* w) @9 L7 p6 p
* Z) Z# J% s/ @% X sum dx240
- t7 k: n7 I- A! D2 V3 R! {2 e , G. x& M# ~& ]9 Z8 p2 V7 ]. {
local tempmaxp=r(max) ) j! u C1 @, |" d
restore
0 V! f- i( O, l% z$ r: G% C }, L0 E5 E: _; C6 A# Y% W
0 A3 J- M6 o' {- j+ o
$ r: r8 D/ Z! Y3 p + z2 T+ }& r: \: |7 a, t0 s/ g. i3 e
9 T# l! ]# \" \% }( E
gen maxp=`tempmaxp' in 19 B$ y$ J7 C4 L' O/ C$ [1 t& [
6 v& G1 e9 o/ U; q5 t' d. c *240maxp
& w. I, }- F' W, L! [* N" B9 W $ Z% m8 m' V+ x7 f
! \+ Y/ q3 D9 \3 \9 x0 W; `4 v
*-------------ddy240pminp左侧高峰值-----
# `$ r% {7 A0 ^2 w, A& o; L ) r; `5 g0 t/ i4 n& Z
preserve
+ ^' v1 K6 M* B9 @# l. g* e" b
# p/ \' g, l5 R) ~3 I" X# U! _ keep if dx240<`tempminp'
R0 I2 e3 ~2 e% ?' Q/ F
6 Z+ h' D# P/ i7 r% u keep if ddy240>03 [5 q" Q1 T5 q& |8 m8 O
, C; i: k6 c& C+ m count& s0 r8 l& b- u# H% M0 j! N
9 s3 k- `/ U& n; x if r(N)>2 {
) t3 g8 S% k! u) f8 y 7 s u# v+ h4 C# F4 Z$ D2 @. L: Y
pkexamine dx240 ddy240
3 M' b+ H; [: U( c+ ]7 Y q
3 d( R% |# Q/ g% ?! Q$ B local tempminphddy240=r(tomc) & G6 f9 m$ P' N5 F! W# x
restore+ O- E2 w* _; C; ?( T
}( m9 X( S7 H6 y& G' k9 u
" |5 i; ~, e9 c2 T else {
: H1 M# D/ x' ~5 |9 x3 O7 ] restore ) E6 w/ a/ M3 V$ C! o# [" P
di "cannot find pminphddy240"& `6 Y, G3 ?' c4 p8 ?* I
3 |& t3 K d2 Y3 a 5 Z# _( s0 ]! {5 \2 ~' M
sum dx2401 v$ B0 }; O+ l c$ a+ g
local tempminphddy240=r(mean)
/ ^- ^( A F5 v8 V/ z% F/ j 2 z' M; j3 T4 _' N* e+ e8 m5 m
4 a" c. v- Y$ H8 h1 r4 B" s
}
0 m; ~6 s/ p- z9 H
2 k( h' R, M1 W0 `; [$ S$ y3 C. S # N0 I" j: a8 Y$ a) N
1 ?& v9 J* z$ b2 g
* u1 B* M0 h, o( W
& o, }) N+ I9 w' o2 _
. [& V+ ^3 L2 v& ] gen pminphddy240=`tempminphddy240' in 1; F0 l* a# a1 a' p% J
8 H. {& g$ d7 c6 V2 {: b! r
5 C" U: A, O8 k% W& g: ~8 O& T *-------------ddy240pminp右侧低峰值 -----------------4 J* p* b5 H/ Z
preserve
) E- {, s, ], V* l0 k1 j [
0 B3 H5 q- Y9 \* P, n6 v keep if dx240>`tempminp'
! S" |) k- N* ^: N3 s5 ?, W! e 2 ^1 J4 _3 ?9 @, r @
keep if dx240<`tempmaxp'
7 S8 r4 c3 N+ E( _2 X
2 [- U; A4 F6 g) q keep if ddy240<0
& G& A" k4 |; k& J0 T 6 Q1 n7 a& [* q, _ `, m
gen temddy240=-ddy2403 f" [' R; k# g% m
- k- j: o1 ~) `* h: I* K5 o
count
% X' S4 V* C2 q( c) B ' u9 t$ F' u2 M( ^* a5 ?7 g, W
if r(N)>2 {
% o7 v0 `3 ] v! Z. T + ], P2 |6 n0 w$ {, i4 J2 @
pkexamine dx240 temddy240
2 Q' w' f. W( W2 D' }
+ B. R F5 F: B! D local tempminplddy240=r(tomc)3 n" f- [5 R- }& n: V" `% E
restore
+ x) Z* X" h6 y3 v }
1 D8 P8 j% n# K% a; M" t7 ~5 T* i + N# `4 Q1 X5 h& i0 p
else {
3 x3 ?, v0 U7 u$ H8 w * c$ h( Q, v+ v2 G, n
di "cannot find pminplddy240") L i/ K" n2 G1 X/ }# b% l
restore
% I* Q8 @" I* s, ?. \# W% n
- Y: \$ k" |' R5 J) |2 ]0 X: A0 [ sum dx240
8 j! Y+ n+ x/ ^ local tempminplddy240=r(mean)
( ^ k3 p2 U. m) ?2 `% ], Q8 F
3 t' I Y K1 l, ?. {7 Y" E
% Y' o; w: G2 T. k h' } }' u3 t6 L' S1 D
% U0 `* @' c- J
! o# d2 l9 n( W9 a
+ D- c% y# C: P; P ; s# p; W9 R' \7 ]8 o0 U
0 Y: }+ C. B/ g" F; k+ h! o
gen pminplddy240=`tempminplddy240' in 1
* E/ t1 D( Q# _1 s" U: U % X. X* x9 Y; Q$ l7 ^* ?9 N5 @/ |
*-------------ddy240pmaxp左侧高峰值 -------------------. a _: p2 v3 v. m: h5 x
, z7 s$ `7 S; U7 _ preserve
8 Z X: v+ L, @! r( v
; A7 N. S; L/ L% j, d keep if dx240>`tempminp'
; f2 B0 E7 M- A' F! r7 @/ g; [* b 0 B: x* w4 l7 J% m2 R
keep if dx240<`tempmaxp'+ K0 g& y1 Y0 V& K6 F/ ]9 e
1 G1 J5 D. F' n* f3 r keep if ddy240>0
$ ^3 u) W1 y+ v- ^0 a" { count* l, J6 T' T6 p4 E# ~, p+ {6 [3 [
6 W& {% R% f7 l( T# H if r(N)>2 {
, D% X& V, u5 m+ K N" ^6 X7 B) x 1 W7 T: I7 T8 m8 B8 w" B6 U( L
pkexamine dx240 ddy2406 K; `2 W/ }! Q+ q' Q9 a, e
6 m3 ]1 A" q) e# B( v" X local tempmaxphddy240=r(tomc) }# o1 P J- s, J
$ H$ A) P2 i+ Q- \! ~5 r restore4 ?8 ^% Z1 H# r, _9 E
}4 D" G6 {$ f' g* p1 C$ b" ~
0 o7 s" P7 M; T' _/ `3 `
else {
! b& z( v# g# L" x% ?' e0 p
, o+ l- ]/ {" b% u) d! X' r2 @ di "cannot find pmaxphddy240"
8 u: i9 @: V% s8 q; z1 g/ P restore% ^/ g, o5 ?. D2 O# v" `1 r ^
3 z& `* o6 z+ n7 }' ` sum dx2404 Q, _9 e# f, {2 ]+ d8 V+ L
local tempmaxphddy240=r(mean)
A$ }+ p+ Q& @3 O. _7 o! `
9 @9 Z$ v, R& _5 Y0 c4 |
, @: M+ t% K* G0 n& T# E8 ~1 z }
$ G( m( K4 N" U$ p
8 {5 y6 {/ _4 o9 p0 o7 P/ W1 u ; d: j0 s O d6 I
$ G( Y+ ~$ t9 c2 ^
) S/ o* j) y @- k * s$ O8 ~$ g6 V7 L: ]4 L% I+ @
+ ^* g( W3 ~3 j gen pmaxphddy240=`tempmaxphddy240' in 1% p2 r9 Z! C; V2 `' l) B# n8 _! L
, C. J& |5 c) P8 k [5 R
% N* I/ B+ x. \; t& S *-------------ddy240pmaxp右侧低峰值 -------------------
: j& o$ W* p( Y0 T- s0 T + d0 r! v8 O5 c* I; r$ v9 T# O
preserve 2 \2 W `/ U' }6 P
; ]* l2 L) z- A4 V# F% l' e
keep if dx240>`tempmaxp'
" ~$ ]* m) `) F" W' `( W + g- s$ g0 }& k' W
gen temddy240=-ddy240
( S4 C" q& A- Q4 J) e
, o8 \3 M( h+ `. ^" F3 n9 p keep if temddy240>0/ y" V1 c; s$ t( `% G* n* Q
& |" Q" P- F- F4 @ t count
0 l# t8 {9 D& y3 [
& I& [6 c) [+ o if r(N)>2 {
5 C+ ]3 N6 n( \7 k i! z" S
. V6 o9 r) ]. U pkexamine dx240 temddy240
+ V7 x0 D7 @+ T+ K. N, Y3 ?
0 V( o! \8 d8 C5 @7 r i! O: i local tempmaxplddy240=r(tomc) ; J' G) U8 e/ w! l. {
restore* R* c1 ^+ J! Y( \, o+ X6 Q
}
3 |" p) L$ e. u4 P! i ( {6 `/ u0 K9 P# {
else {
6 Q! m. P4 E0 J- [ restore; M1 F. h! o" F0 C2 R; O; c
di "cannot find pmaxlhddy240"% ~! S1 L/ L* Z4 h2 A
8 u7 a( K3 p6 E5 h" b, `! @
5 J+ r8 j6 C$ w& U E
sum dx240
- X) E3 M8 c# F local tempmaxplddy240=r(mean) in 1. |/ w: S7 P4 D
& X/ ?0 r' _/ m' Z! w1 ]$ E
. {) B- @. ^- w. V
}- F/ u4 s/ y# \$ c0 W( A
! a, X+ Y. g8 |% A+ e
! q Q. U' \8 S" k/ [
2 t4 C0 R: L# i; C. z" v: d" ^) E! h : h6 e0 e1 e3 G# L* D" t
8 o; R8 n2 A$ g! R3 b4 `7 B
( u; [2 X3 o: `6 T4 K4 X
gen pmaxplddy240=`tempmaxphddy240' in 15 {1 x% j, @0 g* T- _
! e8 j+ P4 a& O" [0 D3 n, b0 {
*-------------------------------------
5 N9 u/ q; _8 L2 w/ E8 o0 U Y , ]0 s) C. k, I; |# O8 l3 H; X0 r/ j
gen price5d=v5 in 1/20
4 I6 J2 b+ C" w/ d
0 T0 o7 ]2 w) |( @9 d$ m gen price5yy=_n in 1/200 `" a; ~/ P# V& f( a! G
2 ]6 R6 u$ N. x* y7 L- r gen price5y=price5yy*(dy240max-dy240min)/20
5 \% ~. y9 r* ~
. `! ?* T4 B) i2 @6 O8 ? *price5y &price5d! E1 v& ^; @' X1 W& k. ~& k# G8 R1 N
3 Y6 k/ [- q Q) @4 u gen priceny=price5y in 1
Q* V0 [0 |' n; T4 N' `6 A4 T$ G
8 n4 I; A1 D5 a& l& _7 x" }/ p0 B8 ] gen pricen=v5 in 1
' u5 g) M9 b$ S/ n! }
8 e9 ?: O4 z8 e! C. t& ], M& {
$ l( q; n% h) W' z! s *priceny &pricen
* z; D: e6 c* T5 _ 0 `; [8 l+ e8 x j9 o
* A3 y' U* _5 R" P4 C *-------------------------graph------------------9 ?) V! f: B5 Z. P! }* I( z2 B0 ?
9 g2 Q3 D1 E1 D4 a, c# S4 @
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 p$ k5 z9 N# M
1 \3 `6 u; @2 q9 t
* ---------可选项目----------------------2 r, [& J W a [% R, Q
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
' M; | r) R2 Q6 @. P}
s8 @2 K' z3 @, ?& jend
: ~( Z2 q: \# s% E/ }6 H; y |
|