|
maodeng 发表于 2013-1-28 13:13
4 x ]$ U3 s0 n& s$ c. hello 300236
; F1 w2 z+ I% L9 g% ^statement out of context8 D+ X$ j: S4 M9 Y1 A8 b
r(119);
Q2 D& g+ j. x+ r$ O" P0 n抱歉,最近太忙了
* v( L* a e" S# S$ f# [/ g) ]5 A* j3 k: Q3 f
300236 我用下面的程序试过,没问题0 n$ f7 u1 U, n8 Y6 K1 |8 m
% q0 d [% F" W/ m你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试, S; x' d! P% U! H
5 i0 i: m5 f: X- n# J3 `! acapture program drop hello& {* e5 ?. o1 J) x" @# D
3 {5 g: U2 I! o7 fprogram hello
9 e$ r6 R, |( L9 D! \5 ^
! D( v7 z* |" b1 E A quietly {
3 W+ G( L+ s2 D2 t% z. z. f. H
- t2 ^8 p3 K5 v: }& P& w1 Qclear
- k0 W- p, Q+ ~( c* u. q1 S9 k6 b' m0 {/ c
cd D:\stock\test\source* K4 ?& ^# y7 S5 ~1 m* c
& y, H( y9 L4 L5 M" `
insheet using `1'.txt
K" M+ N/ w( e8 |0 L/ S
7 G* Q2 f2 ^2 v5 Z' U keep if v5>0, N( N5 C: @ O/ I0 O% `$ D- G% E
/ j' I+ r% p+ q( a. L
gen vt=_n
& Z' O: d5 @: @ ; ~0 G8 u; K0 P
tsset vt: {- ~; I2 ^0 X" E
2 U- L6 l0 v- t0 H6 C! w gen zf=D1.v57 R& e, N9 l) P* g1 f1 x" {
8 i4 A3 [ d. _7 q6 D
gsort -v1
6 ]" A* e/ p! {; G1 i! d3 a
) v1 `# E1 |1 Q! `; j* ^ h" R! ?$ N gen avol=v7/v5% z3 w4 S; K( s& j( I0 g
. f! S# i- q4 o) O. \ keep if avol>02 _" y4 P1 G- F# u! w! c
b5 i. B, R$ L( r: v& P/ k5 b
drop vt/ ]" B$ q* M* b$ B }
; V) @" B r9 W D8 Q. Y( g' u gen vt=_n
1 i. I; P) G7 M H9 J6 R4 C
" g3 p/ w$ @0 V' f w" `7 F tsset vt" |* u; K9 `2 F" c5 e
3 g# s# X6 {# U8 ]4 |7 N( P
sum v5 [aw =avol]- p; E& C; m8 ?& b0 N
. p3 j! F7 |+ a# S3 `8 J6 N
gen amean=r(mean) in 1" l) ]5 `/ n: Q8 u1 r4 Z# y9 V/ _
* a5 M. v3 ^) [# C# @, s * 总加权平均值 amean
b0 c5 Y! f' B; ^& T * Z. u6 H0 V! U l. @
+ @: [# _1 q4 c1 ~- n# y
keep in 1/240
5 A4 q, A3 b4 B! C- C0 `7 |" ?2 q6 _9 V) y
sum v5 [aw =avol]
8 y! ?( C( _7 \; h: M
" q" b1 d& `& j8 z gen mean240=r(mean) in 1
7 \* a* b( e b. u) c
8 g3 z) h( R" I5 K$ K8 P4 X$ K *240加权平均值 mean240 k+ k' y7 v( U7 `6 X
+ _$ b- Q' S5 P( M& C( o- Z! S set obs 500
" B4 R( Z4 ], o2 Q6 L9 f . Z* ^& `% o7 z
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph8 M( W; X% H* [/ ~; c& g
' g! ~; `% C1 j0 U* H& \1 W9 @5 o0 Z
*240 kdensity(dx240 dy240)
* W/ a0 @0 k; m6 M + c! t ~2 j2 P# p
sum dy240
9 d# X$ p& _9 K6 A 0 Y" [& m+ s2 ~- M3 o w7 I
gen yxis=r(max) in 1
$ p( e9 r. A/ m / C4 Q* V& u8 Y
gen yxis2=yxis/2* ]6 ~/ Y' g1 \( t4 {8 M, F+ T5 r
( E3 A1 v5 F8 V( t8 T. [ *yxis) K+ [& s9 ~; \8 n4 `
2 v0 {9 ]. a: D6 n) j gen dy240max=r(max)( M. j- k2 ?: H B( I: u+ u3 Q/ m
$ W* _) G, I7 @% k2 P- `5 O8 h
gen dy240minp=r(min)3 q! \9 s6 y ^
" R( t8 X! b& D: t
gen vtt=_n+ f. e3 u+ r d
6 X9 [6 W3 v0 V7 @) I tsset vtt
! \, w% Z1 g$ C, ]* }. c) |+ F1 B* s+ u% I) e1 e
gen ddy240=D1.dy240/D1.dx240
* X# e4 {, L# }- g1 B5 E( T* h ) n$ V$ w( d/ `9 s, ~
sum ddy240% }4 m" F" p. V1 ~( n9 n7 T# w
2 }4 d1 c/ \- c; m; @
gen ddy240max=r(max). S( I6 _9 c& x3 B! i
! r9 C/ Q$ h! B9 V1 b gen ddy240min=r(min)
3 Z8 H6 `- ^! ]
; ? d9 P4 c2 k) ^ gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)) d F5 r* F1 J- U4 x
: M/ |. u8 g7 D3 \2 |$ Z$ A+ L7 n
sum ddy240g, |! w3 x# B% y! G8 F3 B% v8 m
3 d+ L2 E& v. V" t' A gen yxis3=r(min) in 1, ^& c9 f; o- x. I5 n b
* ]* l4 U' K0 y A
gen yxis4=0 in 10 d1 s9 [9 K2 L, d/ y& S; k: i
7 q6 i7 i8 B" F8 Z0 h0 S
*ddy240g
. N1 | [ t" ^$ m$ k+ w' A
' M1 ]0 D" }: P: S' a0 M+ q; S : p. y2 w" X8 m/ i# g# F
preserve 5 a4 c/ ~: L9 r+ A; o4 T
' F7 x& a; F% Y1 g sum v5 [aw =avol]
, ?5 |$ {' Y( Q/ X
# s8 c5 B# J2 z* ^% Y! S% J keep if dx240<r(mean)$ K% G: g9 f& q+ d
# W1 d( w6 C/ S! v& N
sum ddy2401 [5 h; F' B: e5 H
& r1 t/ S9 `5 E5 p
if r(min)<0 {: p% A5 I/ h8 S, X" [
B X1 _; P: O5 E" {0 L keep if ddy240<=0
2 j1 u' e+ ~; T + |0 Z4 s5 X, U- m# b7 B7 ?+ T
count0 g( J1 Y5 S# [7 o5 M
: Z, x( d& C' u# g/ X0 P6 R
if r(N)>2 {1 Q" L) H" q6 `- A; R' i) @6 \
+ Z" j/ E3 v/ N& {( O! e9 k1 x
pkexamine dx240 dy240
+ X R9 S$ I. t( g4 H; R. T% O 9 V: O1 m, J6 c' z* Z6 E8 I- B: M
local tempminp=r(tomc)
* w8 t4 w6 X: m$ O. }& K restore
% Z% S+ E0 w, f' O! d' _, ~ }
. H9 ?; c4 M7 T: O6 Y
2 F J& ~: a g7 Q; t4 H1 V else {0 Q3 w# U: I9 x3 R, m; |
0 f" U3 ] r' o2 O, i' o
di "cannot find minp"
4 W* D1 _ t }" S1 x, A
# K% m |6 F7 ?" H$ I1 n" l6 H restore
* o/ [8 w* V: k1 k6 w( H: O- \7 t sum dx240! D( ]% L4 N% x
local tempminp=r(mean)
& l( G7 `* A7 f/ L5 v& z$ @ 4 I$ l; f8 d) {6 E* H
}& T! w7 y6 j* f4 ^: S6 T5 E. ~
}
, N. d! z: n% [& c else {* i: t2 z" k3 [; G
g7 u7 @% ], u
keep if ddy240<=r(min)
) x1 o9 V" o- @( N5 R! [ 1 ]. D' v" D8 o1 ^: y( {
sum dx240
0 I6 {; @7 d1 Z$ _
3 j( h6 g" g# D) y$ w/ z; i" u& j, R local tempminp=r(min)
1 ~, @ U) g) r. [" J' t restore
. Q0 m3 x- `+ U h9 E: b6 @ }1 b. G! ~4 G7 Q% U! Z2 X1 P. g
& I! d: p; N: ^# U7 f2 s8 g8 D/ k. ~8 ~ k8 q9 f1 p* U
! d$ S1 d% @" c2 V
gen minp=`tempminp' in 19 p( ^% ^0 l8 `! e' `) W
*240 minp" F F6 m3 |3 h
; t! x' C8 C$ |- q9 o4 _
' U* E2 |; A. t3 D# F " x0 X- g# ^' l y
preserve 1 m* g7 j+ z6 ^2 J4 i
" M- `5 C' o% N! r# p- c* |5 O
sum v5 [aw =avol], w+ v! G4 m- ~# b0 T5 Q
" Z2 e: l) i% z& S ?4 @ keep if dx240>r(mean)2 ` z' N8 z! m R3 N0 x1 b
1 y6 {9 v/ v$ U7 X& c
sum ddy2405 ~& O& F9 L& n3 f8 }" d
0 j* f! K3 ~% @& g( m# j' n if r(max)>0 {
4 X2 I# X! x1 p5 H
3 {' ^! W( W8 M# r keep if ddy240>=0
( k& m7 a* ]: `$ Z& N* ? , ?& f9 H( N7 ~1 H/ V# m
count
" r# w4 N7 k( S- C# L8 W
, `. \+ a* T' U$ Z if r(N)>2 {- g, p$ j% ~$ x
2 e9 f1 {) n0 W$ i pkexamine dx240 dy2405 Y7 U# R. m$ o$ ?' {
7 [. R( p' n. U% \
local tempmaxp=r(tomc)
a0 Z% b7 n" n* {' x3 Y# T0 | restore ) p4 q9 t0 m; F4 m- B8 C* C( f0 d
}. G- V. G6 V) q0 E
1 B1 n( _$ j }" z
4 B+ }* a; w. J$ g& L' r5 ~; B' c else {& h2 V/ K+ B" C$ r1 S2 i
restore
+ y) D# j9 E+ h4 l9 ?/ c di "cannot find maxp"
: R6 R, a/ v& G; d! u5 u0 N$ A3 C
, G/ F, c+ A0 O3 ^ 2 V! H9 N! F* l* t8 l; B
sum dx240! C( p8 k! N# U
local tempmaxp=r(mean)5 ] S7 B1 s; i H
2 F; ?% n' G9 v9 l
}; _2 U( V6 Q) l- f( x- c
$ U; k: u- a- }+ f' p$ I" P
}
& Z% g3 x, V9 V, E# v0 P, {
: x' |) l5 r$ n/ W% e else {- Y8 `( _& V6 u: z; g3 J# D
! P) a9 v: t# \- T7 H keep if ddy240>=r(max)+ A4 i, _/ J4 L5 [7 @: A
& `: e- q: E7 D" x# g& ` sum dx2407 r, X' |) f. Y$ f3 V" o- d
- b' ], z/ X- ^0 m3 f local tempmaxp=r(max) 8 L1 `& G& k @, D
restore 9 K5 Q& U: K; f+ l! Q* D& g6 I6 y
}
* Q* [2 H2 h* p
, C7 e8 }' c1 B$ e
: z3 E) o% ^! v
& s- D: y- l& G8 t# s: s2 [9 V
gen maxp=`tempmaxp' in 1" [; _$ G, o- k7 D% S4 v9 F; I+ v
$ a. b F7 _' V6 I% d3 A *240maxp
- s& ~& G; Z1 x
9 R9 d& ^# {2 Y; I+ `2 e
6 c3 H# N- G0 t; p! O: h! s *-------------ddy240pminp左侧高峰值-----
# ?/ z4 [$ x+ E4 V
0 R% i) F0 ?& X: x d2 Q2 S preserve 4 Z! a0 H$ U+ k
6 @! a, q( n7 j" E/ E
keep if dx240<`tempminp'
" Z" f. z- `+ W1 g% H
5 V9 k7 \9 X+ E1 V, l keep if ddy240>0
9 v1 r' Z4 M& r% T; c" a$ w+ g( l2 Q 4 M" s9 A' F- c, K8 \9 n' @
count8 X( `0 \/ p! m
+ Z6 T) e2 a& Z; X v: I8 c0 f/ i
if r(N)>2 {1 s* {+ Q' a, L' E7 U* N: c. C
, m6 Z; p% z: w- q1 _- v pkexamine dx240 ddy240) u5 V1 f) S; @$ Z
\* _' x, |8 o) s8 P1 Z local tempminphddy240=r(tomc)
3 `7 M+ w6 o8 q4 J restore
; w: Q! ]5 Z# S5 x }1 ^. L. x* r! @# P: U# z- R& F- h
. N; p0 ?8 [2 V% X
else {- Y, _, p+ S R% j G
restore 7 ]) V6 ?8 X: i& m+ ?6 E
di "cannot find pminphddy240"
* }$ ?4 R: d9 L8 d( X" @
4 }% c( C c, R( t4 L4 E7 [ $ s0 L4 z# r. w! D
sum dx2400 d5 ^0 \5 `# f) n
local tempminphddy240=r(mean)
* _$ h& H- Y* v2 e& F 5 l. ^3 [# k8 L7 d1 Y: G9 W
% z% s9 _+ e: y5 p }
3 o8 R. s9 Y* d6 q% u
) c' K2 a1 v7 U 1 A X9 @% i$ x1 x! q
5 X' I& H6 j4 r9 `$ O
+ h5 _0 u7 r W3 E
' F+ B0 k) S; y" ~- Z 3 k# c' x) ^0 J$ ~0 P7 P9 Q
gen pminphddy240=`tempminphddy240' in 14 s2 z+ m% l" C2 d
4 w9 R7 C& b) Q/ Y
% z u7 M, d. m
*-------------ddy240pminp右侧低峰值 -----------------
9 {* T8 d% d6 G+ ~- Z preserve : r5 _; h" b U- s1 `& `, m4 E; M
" B5 j/ k! v0 [& |8 x
keep if dx240>`tempminp'
1 _2 h$ W- f" f c$ X; b5 c ! b+ `% K+ v9 b0 q
keep if dx240<`tempmaxp'
4 }3 C8 Q0 ^% ]; M* S; }
; y% }1 Z8 M- X keep if ddy240<0( y5 n9 K+ H, R" {
3 @& @# t+ D7 }: N+ `7 H5 {
gen temddy240=-ddy240
$ t8 n/ T9 ]; j+ x# K6 y 1 J" V( j# D6 _. D; y
count8 Q% U( O9 C* N6 x t" j" W# k
2 u3 O- |+ i) C% P( \" N, ?
if r(N)>2 {7 R! c# j7 x3 M2 i+ A( ^/ i. m
% Y1 c% _8 B. q( s) s6 w" A: c) _ pkexamine dx240 temddy240
' F6 ?- X8 |1 W# e$ `8 a6 s
4 F. v0 [1 T. Z+ b0 e, Z' ^ local tempminplddy240=r(tomc)
% x3 l }5 n( n6 s8 a restore3 P1 N' I( ~8 {! g9 ^; t
}
~" C D) F5 h4 }6 b9 k/ C! O
) N' k- A/ \2 \+ I# x( a/ | else {4 r- W, b( M# A# J* w' C
* }, W9 F% M& q# t3 w di "cannot find pminplddy240"6 z4 c; Y! U$ A6 v V) y, s
restore
1 X- O$ B2 I A- k* U4 U4 g# v/ C
! F# \* _5 |+ u- b* H sum dx240
; X& I' `; y3 q* D1 G( ]" V8 j local tempminplddy240=r(mean)
- b2 G+ K* ]9 O 2 S4 ^" D2 C: f0 A" |/ |; D
7 p, i) A9 w7 \ }
2 a. H. [; ~* R! @8 w/ m! L 0 M' [/ r6 j+ }% R/ J j# J
) U6 \! o! v! u" z6 B8 F0 t ! n8 m" F' Y$ q
3 M* `! z8 C% z5 I1 _ 7 m+ a- e7 I8 k! y' Y$ B
gen pminplddy240=`tempminplddy240' in 1
$ ]( |# R" }& ~$ W3 M9 G0 D * s' a1 V7 H* D% G# v
*-------------ddy240pmaxp左侧高峰值 -------------------
8 M6 u, e2 v$ M8 e" \
0 w" `, h) ~; L" @ preserve
* Q2 w% C+ \: Y( I7 _4 T 6 w7 V/ b9 E$ `- v
keep if dx240>`tempminp'; r6 @5 Y) h# \
" H9 ]* x6 }( Y! r8 K8 ]
keep if dx240<`tempmaxp'
: U( }& T1 N7 |0 T- T 7 I6 S$ M j4 ?5 e$ C, Q
keep if ddy240>0
" x8 e# q5 m2 C' A count7 [* f8 d4 G3 ?6 q9 n$ d* t+ b. M
) V. ~% ]% K! q5 @* D# g* ]; A) E
if r(N)>2 {4 }1 Y+ y" s- N
; [1 w8 D4 B5 ^
pkexamine dx240 ddy240% [6 ^* u2 l9 [% W% L2 t
) W4 t5 e% ]* |! T! H! p local tempmaxphddy240=r(tomc) 8 I5 W( x6 Y3 l' X# s0 Q
4 _% d& q" _% i/ \& j6 p restore( V; ~1 I0 n9 e) Z1 \
}
8 K9 s: U' I# f8 W% v8 m, J5 O+ D c 5 v, r$ G5 A' R9 c o- p
else {5 \! K' }1 N: H0 M, j, c
5 }- T# ^. c0 e
di "cannot find pmaxphddy240"
4 m. ^5 \4 P. { restore
! H# @: S2 m, f 9 ?3 u+ f m4 E4 V; d. K+ c- C. F
sum dx240
0 d7 w- p1 l2 X; s5 ^4 | local tempmaxphddy240=r(mean)
R R* t% |! e$ V5 O5 A0 ~8 g- f
7 D4 w0 d: `; k2 w2 Q7 M4 h
- _. e% A( V E8 j) U" H5 J }
/ I8 H* t8 c- s( a; V* A + S; m5 y3 ~: g! D. v
- {0 y3 M. E- r6 z+ @: A9 a: y# C
6 I3 v$ E% S! \- F0 C5 ~* n
8 C$ V; l% I* U' |6 B' @+ | 7 ?7 O' b# r4 q3 D1 s7 g5 p) h4 ?
8 G& k! \, @" w. @0 ]. w; v gen pmaxphddy240=`tempmaxphddy240' in 1
" L9 b$ M F! e, k
8 k6 C6 M. ]* c- }7 ~ - L5 I* Z8 \4 _
*-------------ddy240pmaxp右侧低峰值 -------------------
" x( N" {& s. `5 n9 v! y7 ]( ?4 i$ B# L; l
4 Z+ b8 q# n! N! u3 c' N preserve
( f0 x1 V3 h; H& L! Z ) U, I1 T3 ]; Y7 W7 l
keep if dx240>`tempmaxp'
- Q5 R7 v( `7 T. A9 u2 H4 M : M" V6 q" Z, k. U! I( m2 l7 q! f
gen temddy240=-ddy240
/ E6 v* n' Z, r
1 M( F g8 d2 `7 [ keep if temddy240>01 ^. R# y; Y2 w2 s/ b" s# {
5 B5 Q- c+ G* R* o
count% P& H! z6 g' G4 f @3 J. p
2 d6 U" o5 X6 h) b5 i8 {/ l6 N if r(N)>2 {9 e" a+ Q% g+ w* b' Z0 g" L& Y2 {, a0 M
6 k1 a7 G# W, u' M6 v/ j' Z/ D
pkexamine dx240 temddy240" @9 w Y0 b- B' r/ L$ C2 ?% q
9 A1 Z( k: D. m" A$ N; W( n; f local tempmaxplddy240=r(tomc)
/ o/ Y! ^& a" \ restore: U) A- `# k! i- \
}: `. t4 j( z6 K( Y, `, }
3 L" \- l& X. i4 c
else {% q) S! t8 z |7 e9 G4 I
restore, F7 o4 J d% T8 y) Z
di "cannot find pmaxlhddy240"+ {0 _) m _, U& q7 C) w, s+ J
5 f: h- N$ R+ x( k7 C * ?2 ^ o- I+ j$ g
sum dx240/ E: K8 S C9 X4 f) [
local tempmaxplddy240=r(mean) in 1
( D0 l& O9 y5 i4 y$ D2 N" J ( K' K1 F+ o2 J# W+ M" ]( E2 G
" B& }3 g# h6 S4 H
}6 U$ k6 }) Q9 g& O3 G* U
8 k! Z' v0 H( B
8 {& L U& Z2 K2 u$ K' L# L
, O' q( D1 v1 P8 E 6 N; \1 o5 j, [+ G2 O6 ~
0 T7 B5 M( a4 L
( Z8 {9 o" I. E) ^& x( b) A$ j
gen pmaxplddy240=`tempmaxphddy240' in 1
, \4 } B. r4 S2 n
, Y5 F( i1 z( ~% U' ]9 M, e *-------------------------------------7 s* w0 a2 E8 x8 l J9 x
/ g% p% Y! c% N9 m gen price5d=v5 in 1/20
* f" i5 P. u* J
9 w1 z( s& A. x8 u gen price5yy=_n in 1/20+ ^) y- D8 p. n
8 S: Q6 e1 f, ] gen price5y=price5yy*(dy240max-dy240min)/20" d: H9 v$ H l: {: j9 M2 n
9 `4 a. U$ h# Q) k *price5y &price5d2 z1 ^5 \% p7 M8 j
) \0 ?& z0 U; k8 W" d5 f. Y. t9 q
gen priceny=price5y in 1
4 f/ u4 c% k. v' x$ C
2 a# b- m6 R+ [# W! z/ f5 q p8 R gen pricen=v5 in 1
' i: e0 g' `: R5 l# l+ h; o. w
- w5 {6 d( O7 T7 `; p' U N* M & c2 j9 ], j, |& M3 U5 j
*priceny &pricen
) _$ f) F. j3 a( |8 r' C
4 Y( N* I4 T) N& d" i & Y4 _- h. w/ U9 u( d
*-------------------------graph------------------
# }! L j9 C- a/ M( l$ l0 X / T& x) r3 O+ J0 X$ Z
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)
/ ^; g1 a+ w# {7 _+ ^! j: [" V2 l7 [( Y2 _! ^
* ---------可选项目----------------------
n2 N& {$ }: I3 c$ J! S*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
( f) v% @* T3 x2 _: X- e$ d}
7 u9 E& x% O8 U5 Pend
( w, p3 O% ~1 i( v- U( I; L |
|