|
|
maodeng 发表于 2013-1-28 13:13 9 [2 g2 D! s( W
. hello 300236# N0 v1 G0 g9 D$ ]( v
statement out of context2 S& J1 K! l6 e
r(119);
6 b8 m4 B, Y$ U) }( r- {- M抱歉,最近太忙了" M+ t7 X; m. Z5 D6 P
u5 k* N7 w* D% n300236 我用下面的程序试过,没问题
% t3 V0 B! W. N# e ^3 c; A$ {9 M4 t1 F8 E4 f
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
" Z& S% m' B0 ~
& x4 E2 Z( S. O# \. F/ B2 W/ ocapture program drop hello
. v6 T/ ?8 c9 v" t8 [ _; p5 N+ l+ `, [8 g0 Z0 J$ I, a" _# h) B
program hello
! l# c, Z, C- }% [- S& t6 @1 |& H; N, Z* ?: h- P9 ~: q$ g" E
quietly {3 z! {* g* Q7 L$ X0 r7 u* V
) }3 O/ ?( j( n- K- Dclear
w0 |; J2 B" h8 B0 V, J y& O! z* K5 m; y( L5 B! q
cd D:\stock\test\source
$ U( w$ C' B# ]7 Y/ z
/ D+ D, M! q" Y: Ginsheet using `1'.txt5 @' \. s8 t# D, B2 c Z
. F: s1 z4 s5 A0 d0 g0 N keep if v5>03 J% a; b1 F* }9 }+ F5 d
* S8 Q, p7 Q. {$ J1 {% e" R
gen vt=_n
( M* O2 h z) p3 J9 F, u& `9 f6 a $ i( u0 B& A& W6 @& {, m
tsset vt4 q$ I' S+ _3 u& f9 K) F; a( e
6 M* B1 ^8 X: z' Q2 |
gen zf=D1.v5% v' H) _( E$ t6 Q' L$ y
$ X+ H! i; ?" f- U0 f. u) O gsort -v1 B& }' L0 p% v( X( R( K8 \* c! Q/ F
( L. w' }. ^' H& M# t k' m
gen avol=v7/v5
6 i4 Z# _- [) d2 h1 Q6 i% k2 C : Q9 x0 |# j* D: O' n+ o
keep if avol>07 h' \, w: |9 B+ A3 M
- S3 c9 M1 r" A drop vt4 I Y) P; v' `& v5 K* W
: ~! f2 ]( {3 [' C1 }9 b/ {9 i) U5 U gen vt=_n5 f! l1 C8 r6 m% r1 k6 F: y9 ?' K
. W; e1 N) X9 {# a+ y$ h tsset vt
5 `1 c. ^% |7 ~3 m/ Y: t. j- ^
7 t2 g- X5 R `, [. o+ H sum v5 [aw =avol]
5 ~# ?* s: k) S8 @8 L3 {' T: P4 v6 ` U2 Z) M, I
gen amean=r(mean) in 11 A0 J4 v! L1 |- w' ]0 S0 O1 H9 x% t
* h+ H# t) u% }) |4 u. n% x * 总加权平均值 amean% _# D2 B9 e' @+ w. w
2 u$ L/ a& E3 y% y. q' _7 j, |- U 3 Z1 R$ y" N. H9 }" O) Q
keep in 1/240
% r( e# w+ v$ |( E/ `# j
! s. `" R$ P1 t( [7 N9 h0 r5 A( ^+ e sum v5 [aw =avol]. }: C. f* y* y- ~
- s9 z& |$ q) A+ J8 T
gen mean240=r(mean) in 1. g9 l( X- A. d7 I% d
2 B$ I& \4 ?4 ]
*240加权平均值 mean2404 x' v* M, q+ s7 V
@, Y6 F( v% R
set obs 500
q+ p# p5 {9 w
3 U% f, ` K3 l; @5 n kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph% U" K8 G$ T2 m0 j! U1 N/ c# J
4 o0 R6 l2 R* a
*240 kdensity(dx240 dy240)
8 W, O. O+ F. \4 H$ I7 s8 Z
+ Y' i; R! v6 a+ b sum dy240" y7 x* F6 r+ ^$ A, _3 |$ g( N
2 C- _3 P& U, P: l. ?0 { gen yxis=r(max) in 1
: _* p" }6 c- G
# | _# r' d0 r+ O9 n p3 ^; I gen yxis2=yxis/2! \- l- X; R/ Q6 u' r
. ^% J5 p4 R- ?* f1 w9 Y" Y/ v *yxis
! Q2 W# F% \5 | ( u; I' {* u8 \/ |: |
gen dy240max=r(max)! W& h2 X/ a6 T* @5 K0 z
9 o9 h- g$ S# V0 X, A
gen dy240minp=r(min)
' g) s, u, ^! T- y2 \
, d* V: T( b' G* O0 I gen vtt=_n
4 N& F9 R y/ |8 ^. n& h$ C3 ?: S; Z" l2 l0 \
tsset vtt' d6 h- g* ^6 \3 z6 ^" C/ A
# q- q# C( s7 W
gen ddy240=D1.dy240/D1.dx240
/ K7 S5 F- X$ c8 d $ C+ J* _7 {% p. j, T2 T; Z, s( x
sum ddy240
% y7 C ?1 V4 r- P( b
5 D% C7 v/ ^5 n4 `/ Y gen ddy240max=r(max)
3 O- F2 Z9 G" S. e
2 Y5 y% y; O" M5 h+ b gen ddy240min=r(min)
' ^) v8 m4 A' \) z& O) v4 J8 }: H7 J
" P- o+ ?0 F$ K* ?, r% w gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
4 [- G9 E$ }/ `7 h7 Y8 b3 A # W. z7 N X @+ K
sum ddy240g
& Q* Q5 \8 j# n
* G$ [' k ?" z2 h; J T gen yxis3=r(min) in 1
( M& n, O& n6 N5 ]6 g" R2 m0 Z& Y + d+ s2 M# q' H1 k& L1 {3 s8 u
gen yxis4=0 in 12 g( A2 Z5 ]" g8 t/ [4 g
$ N1 ^* \/ O4 T) W& Q# D! \4 o
*ddy240g
& f' b& b F; h+ e 7 C) |- [0 e5 o$ y: b
' K {7 _% G: M: F; @9 C+ F
preserve 7 l1 v' S+ U6 `( A. C2 w$ R' I
: x, K7 H& |" r- a. S. x sum v5 [aw =avol]: S; n8 q# x3 x y
9 S4 g; j: p$ z X8 J# R keep if dx240<r(mean). l# n7 T, s% w7 K. a6 U& N9 [7 ]
- |9 D0 I% R1 p sum ddy2405 R$ ]& U ~! \+ H: x8 ^) ]) s
6 _' q0 f. N5 T/ o6 {; | if r(min)<0 {- C8 X8 b$ _; f$ f
' k( X2 s3 g) o$ A; b/ r3 { keep if ddy240<=0! Z% b" f' Y. t4 w5 R- p; x
% X& H, Z$ s% F8 a- ~+ M. |5 R b count
! k1 c( k1 f' @* r" J
; U( s# Y1 [6 w) R8 p. w3 N if r(N)>2 {
. d: |3 `' b) Y6 I1 `, U
1 }; u% g0 U) C! r1 z+ z9 ^5 } pkexamine dx240 dy240, c! H# m# K* k3 [2 m. F% C: z8 T
9 G7 ^" k/ s/ ?2 X) ]
local tempminp=r(tomc). R) X5 K2 K( q2 D/ R
restore + r4 Z0 V4 f! f2 Z
}
& ]5 ]6 K: Y) Z' u2 Z; g; _$ ?5 s ; G; W% W; k8 w; } s* U; g
else {
0 { h# b$ e& A$ v1 @1 b $ k/ w0 u* P* y1 }# Q, c8 L y
di "cannot find minp"5 b( Y* M4 B% @% N8 {
$ Z6 g5 T, H% k0 c5 Z& ^
restore " V! j$ ~1 B) R
sum dx240
8 ]: F5 f0 |/ u# E, l local tempminp=r(mean)4 n( G6 n, y) F2 H; Y+ z; r
^% s$ f$ y) ?$ W( K3 ? }
- [1 c" x- i" _ D8 E* f }
! {/ T( E% o! Y& ~; X6 t; h else {
3 t d* P D+ v% l1 D
D" S2 Z. e$ v9 P# K } keep if ddy240<=r(min)
- g' { F$ Y2 H4 m ; y/ |. D3 K7 R- D0 P
sum dx240
7 Y( N/ G- B, F9 F3 _
7 _5 y Q. j# f" V local tempminp=r(min)
& J5 u# x& A- |- M$ ^" w+ i restore
4 F( F/ f1 h- R. {* e, m }
! B0 l# R$ ]; c! Q; u1 F/ I0 F3 V2 J8 E" ?) O
0 S) x1 s- u" Y) j, z& P/ R3 L
, m! o2 x, X! Y6 u0 Z5 F7 o gen minp=`tempminp' in 1: g4 O, a7 [* Q G) \* F+ X' P
*240 minp
5 ^ r* o7 q3 d( ?
9 y! Y, i' o, @: r" z; V9 b% y% p
" A) ?; H @4 B6 o3 a 0 G4 e: v2 o# g) I/ r4 n- v% L
preserve
+ d0 l1 ?8 V9 i9 {' d! x
7 m9 D/ U- y/ V. S4 y8 G sum v5 [aw =avol]
# {- }- E' ^. _& A1 P u9 J & B- g( S& P2 _
keep if dx240>r(mean)
2 @: V% _9 t9 m4 a5 u- h
- H8 F/ Z: l0 _; ^& c" H sum ddy2401 M" m C4 t$ B4 k7 n
0 l1 K+ `% i- r6 k: U$ H5 { if r(max)>0 {* |. b" A5 T, T) n
2 R$ F t K. ~9 N
keep if ddy240>=0
: K# s3 |4 g) E3 Z) P / P, c0 I3 |# R6 y. [! Z
count7 M- l p3 V" H4 e2 f. a
6 d1 F8 n9 t. g) i9 E if r(N)>2 {
; _0 ~! j5 Q* ?- l. S( m f* j- ?9 y
- k9 N7 P7 r$ l pkexamine dx240 dy2402 V( H6 s' U& w! _- R4 X
}; L# M# ?+ B7 m Y local tempmaxp=r(tomc)
# Q; k- F z' o% d6 _& u restore
6 C/ _# _$ A! ^+ J7 c }* U) M/ T+ M3 R* X6 N5 S% N2 S
0 t. c) Q7 S- n: \4 o
$ n. D/ L4 i( f& u& q0 z8 P( [ else {4 B3 G$ s% Y* z( |! C# U
restore
' L6 z9 F# ~# e2 h di "cannot find maxp"2 W* r/ b# g5 Q% p3 l
+ P! ]" }8 U! u) t: k' H
+ x P4 B- d ?9 Q1 K9 L$ i sum dx2404 @4 f- l; P; u4 o1 A# K0 M
local tempmaxp=r(mean)
5 b4 H. v- p1 y/ J5 l8 e, t ' L5 s2 [0 f% C" b4 c$ X5 h
}
) h- G7 l6 c, D/ N+ ^! L4 d4 p( j $ w" p T I; D/ v3 l5 L5 P4 Z
}0 J5 D5 [; N# h0 W
1 B) d/ |' h$ H: f
else {* ~6 g6 K: g3 \2 A0 O' ~
5 Y0 I6 S8 A- L0 P keep if ddy240>=r(max)' Q1 g" t3 Q: M% f( P+ L
2 I7 U/ C# j+ h! G$ |
sum dx240
: z$ V! X7 C% q
& s- | M9 Y! U( a& f$ L& S7 h local tempmaxp=r(max)
8 _& D6 I9 B$ x8 a7 o# _; U restore ; F) U+ `( ~1 P( U o
}
6 g7 _' S' B( G. y * J/ ~0 l* i: A( C1 J, c* @
, B) P7 {1 K& {/ l
" O* l2 k E6 ]8 m4 H
4 E; Y1 ]. d; Z7 q3 h: X gen maxp=`tempmaxp' in 1- ]$ z8 W) o+ S4 J; |. w) d* w; |
0 `) m* P. W* q3 L3 g9 v: i *240maxp
: a @/ _4 q S/ w " c3 x# Q% C* H* @5 h
1 {/ `' [# C. }) v3 _* s* O *-------------ddy240pminp左侧高峰值-----) w+ Q. t1 ?( e9 k# L
" {# P7 M1 j# q ]% K# H preserve
" W: T8 s- p3 a! c
# _7 S7 f7 n7 I$ Y keep if dx240<`tempminp'/ ~/ R' w8 y$ Y6 D9 X
4 \ M/ M7 L. B/ o; F9 a keep if ddy240>00 D2 G+ b7 C9 F7 c1 a
% `+ f5 O! H# a% U
count
1 l- C. a1 h4 \5 y
% z+ w% } ?" ^% P# L4 m1 f if r(N)>2 {
# h" C( f& v# e* ~/ n
1 G+ S c2 q: O( N+ h# V; E8 @ pkexamine dx240 ddy240
) {1 n9 A$ F0 E$ \6 g
3 \5 S6 C8 r0 I9 J% r local tempminphddy240=r(tomc)
, P4 p: f N4 ` restore: D2 A: S1 _5 V/ M
}; D( w' [2 O4 G( `
0 c2 w) T% T+ O( v else {$ p) M( l, m. [' O, D6 p
restore
1 Q( a" R* G- D" |+ M di "cannot find pminphddy240"
/ B+ L4 ], v1 @# B: o+ [+ y7 B0 S3 N' B % _' ^/ W" v W' ]& `: P
5 Y" }4 X+ F' m! k( v3 ?- x
sum dx240
3 L5 ^; u& l, M/ J, T6 F/ c local tempminphddy240=r(mean) # o2 @) u' D7 p! M) ?) M% i
. o6 d4 g4 p/ p) @# Z0 d
5 L0 @2 t5 l7 i) i0 S% ] }
/ L& {2 \0 Z$ e2 R( B8 O8 [3 \ & N8 C! U) D9 s
: V% L7 t# I$ l# q
3 q& d8 N' `3 |( Q 4 Y" P3 K$ G/ O2 p
5 d3 l* I/ E' q5 Y
3 A8 y. r! P. }6 `: r6 q) k7 ~
gen pminphddy240=`tempminphddy240' in 13 o2 {% A. e$ I+ c G; \ y& w
9 ?1 G% P. C0 C6 S* o
4 v" X: u* M, ^ g6 T' f# i0 R *-------------ddy240pminp右侧低峰值 -----------------
% W/ e* _4 S( p2 x* F9 m) [ preserve + f9 T* I7 z5 K' j: [0 Y
$ w" }2 p# ]. e
keep if dx240>`tempminp'
" d" B; w: J2 Q) N. [
1 ^( g$ j& {1 H; I1 S6 B/ _' T. s% \ keep if dx240<`tempmaxp'
1 c" ~4 {2 k# A: S% m5 d
, u P) V! a$ c+ h# c& L keep if ddy240<0
* ^$ V/ {* ?& }! r+ U, n
! D& `8 W5 [ Z& f* Y7 n gen temddy240=-ddy240: q+ G: p! B+ ]6 G6 m
4 M6 W# s+ j$ J
count
5 _+ _- p8 T5 }& k: O
* Y* M) ]& L2 t7 M/ M' v if r(N)>2 {
) g: \& \2 i1 l: M: s& s9 {9 a( S
. l3 \6 m6 {. v8 ?, V/ S pkexamine dx240 temddy240# D4 D! `) e( q! G2 v
1 x2 f! {' I+ b. ]' `+ J, T2 c' ?' ?+ p
local tempminplddy240=r(tomc)% O ?3 @4 S M: y) @! k
restore
! T3 v* B2 x) q* H7 C }
* \( G/ r a, \) u% q
+ c P! @2 m3 W" T$ S else {
6 i) l/ Y1 a: }# Y' l9 s' Z/ e
' K( n B1 j0 P. j: S5 ]; Y5 Q di "cannot find pminplddy240"
7 K, O! N; h9 r7 _( o N restore3 l9 d/ ~# S3 a4 x S( M8 H
2 R' O* `2 }& m; ~, X9 I. I
sum dx240
3 R* v" t: q% i1 e* N! z local tempminplddy240=r(mean)2 Y5 E6 t4 ]2 s7 |
( D% n, C, @7 C" ^ k4 i i) a' f
6 Z2 k( U7 t. K5 |+ h }
* ?0 f0 v' f& I + e7 \; Y. X. V& c+ g! z8 n( y9 {
: w* U$ _, r8 X2 l& S& b$ U, ?4 @
3 S" S4 i- ^2 F$ @$ r 2 C, R$ B: f' C
- g8 j3 Y6 |* m; S$ b0 p D( P! \
gen pminplddy240=`tempminplddy240' in 1
# _( U1 h+ J7 {2 }/ d
& \* z7 t" K( G6 I" Z" a *-------------ddy240pmaxp左侧高峰值 -------------------
; `% S+ |3 C- S$ H' H( }1 X
5 k) _& K/ n( F% S4 P preserve
: {/ L" a/ e# p( r
2 S& [ x, v, b4 @. M/ t keep if dx240>`tempminp'( T! I* C+ a. m4 P9 P+ i
% O1 o. N* u6 O9 \ keep if dx240<`tempmaxp'. b) \7 y1 H) l! V2 A! A) ~
2 a/ s% T5 [# q* y% F5 W W+ o) m0 W1 C keep if ddy240>0
' [2 h: Q# ]2 J9 f! v( e count1 b% G# k$ k$ |$ a+ V
% f* w7 p. A5 q
if r(N)>2 {
" \2 b4 i8 ?' y# [ ; R8 ]/ @) @. n4 [
pkexamine dx240 ddy240. n0 d' W! v. o! t9 H& ^# F* @
1 w8 D8 A' j4 o1 J. [* j
local tempmaxphddy240=r(tomc) + D- o+ m3 }/ g( D
! s) B1 v5 b3 q/ ? R8 O restore
% X/ J/ i: D' P" W }
2 r0 l9 r( M3 G% b- l
1 k# S* ~5 l8 \ else {6 {, ]& a! m1 g7 \
/ {" S4 h) B: H) ^0 I di "cannot find pmaxphddy240"
3 v2 X0 r9 T; z1 U( X, M restore }5 u$ o0 {2 s0 x8 q
6 m7 {; ^# r: A% |- z. J$ A {
sum dx240" E; z! o' P/ }: Q2 z4 ?; s
local tempmaxphddy240=r(mean) 1 w: h5 v( ]. z
2 S5 g3 F0 {6 N$ V$ Q5 N: ^: D
# `6 d7 w7 Q) U! u }
; Y, x" L4 b6 O5 I4 G * l1 ]: C# \ Z2 \1 ~; w1 q* b
$ P4 b# l: P# k& l8 F8 L: z* [5 G 5 E3 k! F+ |. j% u: S$ ~: h! P2 g
m% i$ t/ o( Q$ p 9 k4 l y- R' u5 S. S3 d
, L( T, p) V0 [, y
gen pmaxphddy240=`tempmaxphddy240' in 1/ T1 z0 u' y8 x0 g) S
: O0 z+ e9 R w2 D0 I
3 _1 q w3 J5 s, J; \4 E* y/ g *-------------ddy240pmaxp右侧低峰值 -------------------
: v: S. l% x) w+ J
) q4 K0 u. B P) r2 K# ]4 |( s preserve 2 U: r J Y" l
- X/ C- D5 |2 M7 p% T
keep if dx240>`tempmaxp'
/ h' R2 @3 H$ y' I. M: @7 c 5 \9 C* Q4 Y8 \: u8 M c
gen temddy240=-ddy240
9 F" J5 N& S, F B% G
3 [/ p6 Q" L- y i5 G7 a keep if temddy240>0% K+ y) s6 m2 A( p
0 w. v* f: R/ F" c6 Y' j count
* W w" w3 m* o+ n" h
+ K8 {' v' |# e% [ if r(N)>2 {
; n" J. d' ?3 t1 W3 @7 c & K) S. F& C: r! l
pkexamine dx240 temddy240+ _1 ]6 W! O& `1 }9 n& R8 d/ X
8 j' v" c" d n$ h: N
local tempmaxplddy240=r(tomc) % h0 l4 W% L/ _
restore
$ R3 c* L4 h# N1 p) ]8 H1 L }
8 Z" a5 D4 T2 E& a3 B ( O( ` r5 K7 c3 r( M4 J( k
else {5 k4 W" o! P {! \
restore7 }5 Y# ]! d: x) T, J: P: x
di "cannot find pmaxlhddy240"
* ~3 g' Y: G" R/ |
: K1 ~& b7 J$ R7 N; C. d1 x - ]5 z( U4 y) H4 `: s0 M
sum dx240
4 I' @& m1 C9 Z local tempmaxplddy240=r(mean) in 1
5 @4 _( L% \2 D+ I' P : C, ?3 b+ @' C
* U% q' ~' Z( E, `+ Y( V: e3 V( T
}) ~6 L. t6 O& h5 S
. e6 u* p8 V5 i0 Y
+ {: S" d U. Y6 `. }- R2 Q2 i
& M' m- I3 s( m# Q" b6 b
% w0 h( @ Z9 \$ C- w; f
; r* C# @' K! S; o) q' e) G
: ?( a$ ]$ u9 h gen pmaxplddy240=`tempmaxphddy240' in 1
# c# `3 S( {) O3 E5 A - `: O* A/ u9 B! z# o7 r1 L
*-------------------------------------
3 P g4 ?2 D* b9 X5 ?/ j 6 e: l: W/ S0 W) O$ U& y
gen price5d=v5 in 1/20& ]' r, c q- m6 w
( k. k: `! {& T5 u O. E
gen price5yy=_n in 1/203 O8 u. @7 W; b# \: m
: ~9 b! x5 D9 E gen price5y=price5yy*(dy240max-dy240min)/20
6 V# c- x* ~0 F
0 _5 _) X) ^5 E! N- e4 Q8 K *price5y &price5d' b V: ]% D* L$ J
$ [4 d$ u$ `2 f6 t' X) X8 X
gen priceny=price5y in 1% u# Y; Y! k/ i& F" O
8 {$ x" g1 e0 | gen pricen=v5 in 1
! @* H4 v+ V, z7 p
) X2 ?* N6 G8 p/ i' ]. M; n5 H % x; ~, k. E2 l/ y4 J
*priceny &pricen
+ Z3 d$ z* k% R5 p & {0 N: A! [8 J. q$ W q
! }% C+ Y& V* r6 }. P" O3 ~
*-------------------------graph------------------
+ A1 ~' O) Z' H+ g1 B2 b' B5 Q
8 u( r0 J9 F1 Y- Z+ ?" h+ C6 f9 d 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)
1 F1 E/ S7 k. U( O9 S" w( J$ u' n1 R9 W) z+ {% B
* ---------可选项目----------------------: N; L1 {+ N) r) v1 R+ S- l
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
! I' |$ p+ |5 [3 l: z, S) t5 k} M. D9 b- q$ [
end
; e% W! D) g. Y. x+ i% r) H |
|