|
|
maodeng 发表于 2013-1-28 13:13 5 E) m+ p# v$ C" b6 I6 j, x
. hello 3002368 q* ^% s% s5 t& }" T; n
statement out of context' I1 r# L" @: K8 m6 `$ o* Y' N
r(119);
. C$ T7 I! a4 n抱歉,最近太忙了
4 M, o% W2 a% x
' K v0 C6 m6 Z8 Q' F; u) Z300236 我用下面的程序试过,没问题" U5 ~' f: F- d3 D) U
8 {9 O( F5 s; H! }# q& N
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试4 k0 h) D9 N& ?* t9 g
" [: ~. A+ R1 a+ `capture program drop hello9 A( V# E b i% V" B
% t5 H' i" Q/ f3 L; ^; S: S
program hello
4 p1 ?: Z0 j( T+ |) A: {1 Z) [; p
2 ?" `1 H! }5 ^ quietly {, }/ u& ^: ^/ t- Y# c3 t) p- }0 |
2 O: t5 \& }2 l' l) N7 y* E' k
clear3 n( W. ~! `4 H6 T7 w9 D
5 I- v2 h5 d, E' I, Ocd D:\stock\test\source
! h5 V6 x: S' O, ?1 `8 H! ?
1 x* F# w! x& c! |( Sinsheet using `1'.txt
, Q! m" m( v5 t5 I$ S$ ?/ Q4 E& j h/ L
keep if v5>0- J* y7 g4 G6 z9 r
, x1 j* p% d3 N' ?# b! U/ u" f gen vt=_n
& j5 X% _6 b- G; }9 M1 | : k' u# x$ ^' q: _1 b
tsset vt3 d/ `( }2 Z- V
' j' X: k8 U& ~5 a/ Q
gen zf=D1.v5$ Z: R( o6 U# i1 ]+ P8 q9 F6 H
- K9 v: w3 b+ f- a4 H; k gsort -v1
! U/ t! s2 P5 u# l+ D9 R1 g
, T- W+ \( P" D! \& N2 E1 D8 v' X gen avol=v7/v5
. i' T+ t1 A; v3 y+ w# A; _4 R/ ] 4 m- F3 b3 S9 B9 o% Z) H" |1 }
keep if avol>0) ~. u$ _+ E/ I9 R& b' i
& S' K& v& l' j/ o
drop vt
, R8 k w- v1 z8 }' f ] . o4 A8 `9 {/ |, Z2 e9 P( J& P* o1 L
gen vt=_n
6 ^# [% w$ o o# q7 s7 e 6 d& c% a+ i* y
tsset vt
W3 J7 u7 H2 c8 E! d8 M 0 G# F8 e2 x' Y) J2 \
sum v5 [aw =avol]
/ ]; }( K, h8 g# F
) w1 H. l" E. c: a- ?( a. i2 X gen amean=r(mean) in 1
& R- u ^4 Y C9 P' @ 7 I7 t" x( q: U0 f( O, _
* 总加权平均值 amean2 G2 F5 C+ w& W) V" o# f7 ?) Q+ M1 M
: V# d; e1 v5 `" x) ?
0 C9 Q" |+ S# `! O) r keep in 1/240
0 [7 m2 f1 y% O
5 P# e* Z6 H7 N) H! v sum v5 [aw =avol]
3 U# R; ], J2 z8 S
" k7 z+ y" o" [+ P. x; L5 Q: A gen mean240=r(mean) in 1. r/ ?5 h- v9 |, u# t
6 Z3 R# l0 ?$ I$ W& U% j' [6 N
*240加权平均值 mean240
! [- X0 R0 P, }6 S; D
9 M/ n4 c- r: R& R set obs 500 : u$ I- p7 i9 s$ ]2 Z
. n9 L! f+ q8 w8 D kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph7 n k5 r D8 m+ }3 T* Z7 b8 r& o. U0 H
" R: C$ ?5 O* x$ ? d' r( g% p
*240 kdensity(dx240 dy240)
1 N$ }2 g' L- \$ g1 k, \- { % y) w9 `# j' ]: d; M
sum dy240
5 g, p" j. I. F- P9 O% S % @7 P9 ~6 O* |+ z! c2 V, d
gen yxis=r(max) in 18 w- x$ h6 H" n3 U- z. ?
: l" E5 \1 ~6 I) o gen yxis2=yxis/2
7 h5 J4 m2 O$ N7 S* f
6 f/ V+ |3 X) H. Q( g- E *yxis
0 N! b0 O& r0 A! D/ o" S # s/ o' L' b, }# g
gen dy240max=r(max) S" X6 y$ @# i& O# l9 }
* `7 u I4 l$ T3 i
gen dy240minp=r(min)
& _. t6 x: Y! o% s$ C 7 c( j( p t1 B
gen vtt=_n
- d. @) z& J6 g. T3 w6 J
) G( e" H& H; x4 u$ s tsset vtt Q! T% |7 d. u1 {% L- p
* p3 P Z1 O4 N) E3 L6 k" P
gen ddy240=D1.dy240/D1.dx240; W- p B6 e6 P4 s
% t4 Q$ e& S3 g3 N sum ddy240
! a/ O, v6 w# U% {5 T7 I : P0 b& S8 P" U& g5 z% ~
gen ddy240max=r(max)' ~! V8 {, A9 E; `, N8 J
) I& R7 ]: g- O7 |. \( M gen ddy240min=r(min)
+ z2 n% x; q5 b: g* F' N1 ~# k
3 g5 j$ z) @" K7 d8 {. X gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
4 p4 h7 g7 ^9 g! _) e L
* y8 |" V$ ^% M2 Y sum ddy240g
7 Z$ n6 ^9 |5 t. [, ]( n ; I; K4 \$ d x# W1 H& Y
gen yxis3=r(min) in 1- _7 `; }/ d+ R/ a% @
9 y$ q- v( v/ E3 _1 d+ a2 V gen yxis4=0 in 1
1 w* o; |: \- v. H. n+ ^ - N2 t9 s" ?9 b& n- T$ X
*ddy240g + p! ]+ C) Y; D! I
' t' r1 d l- F; e% c
: h' P! n8 F8 }/ v# ? preserve : |: Z$ b5 y" t! Q& s! m8 w
! T* j5 x' Y! h( ^2 s" a# o, }' l2 e
sum v5 [aw =avol]7 H8 h& @* g; U& C% L
; R0 K! o6 V* [8 j2 h% Q
keep if dx240<r(mean)' k2 e) o4 Z3 A' u8 u: x0 b; q
+ a! W7 U" l; q" }/ t
sum ddy240) A! Z8 ]# I X* w; V' N* _9 {; h
& |1 b7 h0 i( d
if r(min)<0 {- e# i& }) j2 y8 K. O( L8 \
5 _# |) [8 }, Y5 a, l4 m+ s1 \
keep if ddy240<=0
7 v4 T5 L. p* { 3 f* R; y) q0 w9 q7 W7 Q: O
count6 `( R/ S# u/ z" N
4 s2 f! h: _, j2 r3 e7 X& o
if r(N)>2 {: }8 J( J9 X( x) d
7 z F# i& q/ S' o( A) N g
pkexamine dx240 dy240
' ~& L0 L6 f" }* @
& B( a" z* l+ [; g local tempminp=r(tomc)+ i7 T) U( c( Y6 T% E
restore
8 A7 p' ^" p) m* C$ O* k) h }# y* @* ]3 w+ l4 M! D( V
0 z# t- A" K9 M" r- a
else {
& s+ N& |' F. `' a! y
, i" r. V& I' _; o di "cannot find minp"
0 i, r& A( d6 s
" m+ Q& t( m k3 j/ `' z. i1 z2 ^ restore
3 J j; s' @. h6 A. J/ ?# _% Z sum dx240
+ N6 S6 s& n' g# ?8 {3 W8 w local tempminp=r(mean)# f4 L7 D$ t% B! `5 @( h5 \. @
% C( G6 h- h& g; R% P
}
4 A7 `1 h; i' m: ~ } s/ `* Y" A* h
else {$ I: C! @! i" J8 c# t/ X
+ U7 N4 w0 X* L- V3 g/ q keep if ddy240<=r(min)
; m+ F/ L$ t1 u1 ~0 r# s
9 o2 n% s E$ M! i2 { sum dx2402 d; i( F4 F* c/ D9 j$ H4 a. C7 U( {
# D5 B9 N2 z8 d, c3 n# u6 ] local tempminp=r(min)+ D6 e0 A0 A- A& ^3 Z
restore
* a2 G( m/ k7 Z/ r5 D }9 b7 b7 O/ s6 [
3 u& T4 F Q3 W; g' v- e
4 d5 n* `; e# y$ H& D5 |" n, n
' ~0 ^0 I: j8 U' M1 Z- B& q/ j& @( i gen minp=`tempminp' in 1
* f8 S& \; _: R$ y9 W4 `: @ *240 minp
2 H# o, B4 y+ f. B; V; D& r+ q# Q& {2 |- {
c+ \0 |( K9 ]7 h" T9 Z# t; x' B
N6 T/ p, C2 h# {
preserve : U8 f' {9 s9 J
7 m* y! A# t& f- m) { sum v5 [aw =avol], Q/ U7 {3 g0 V- g
! e- l8 [) L8 ? W; s3 Y keep if dx240>r(mean)2 x% ~: @. }/ T; _! M7 ?! i+ t
' ^8 w' H9 Y( ^$ J* \6 i9 r# p9 ] sum ddy240
- N8 f- C4 y4 H/ G % `, O( t; r' Z( S2 L; p" R
if r(max)>0 {
9 H% Y' s9 a' l. g* o% {3 |1 b $ x3 _1 K' x# G. O% s; o
keep if ddy240>=0
& M4 z( b+ s( w/ j- M # f: }% _. l; L7 @6 V
count2 i1 O, T) M3 u
/ V# ]0 G6 _2 s9 k/ Y; m4 {& f
if r(N)>2 {3 V+ |* i6 m; i4 N2 n
, }7 _$ T/ Q$ F pkexamine dx240 dy240
: Z8 s% U0 ^" \! ^1 C8 C
" _- P) H0 S/ ?* l) f; `4 p+ f# ^ local tempmaxp=r(tomc)
4 F* |* P3 J- k1 g0 ^ restore
# } S9 m) Z. x6 h& S, s }
: M2 |6 G* `6 t0 u 8 k2 s/ X6 A3 h6 T R
- J/ Y; Y$ g# J! X else {
* F9 Y5 O) ? G* p; m3 `% a restore
' K& b4 T, ?4 e# F di "cannot find maxp": c5 }4 ~: t0 A+ g
9 N: \; [2 ^( f+ v6 v. ~6 a: Q3 I
) c9 D1 T, S: A( u; @2 M% L; R" h. n5 {# a
sum dx240
5 \2 L# c s& ?0 S( y8 { local tempmaxp=r(mean)! z( z4 s7 ?- I" R* p5 L* g
) M; ?" l# H2 `1 `0 R% a
}
% W+ h% R/ G1 k* P$ O n8 P
! I/ a: K N$ W( u. u6 K' O }) m& J5 `% {; N# ]- ~$ w. r. R% P
- }! e$ [( [# n3 C8 p* C" Z" } else {
1 h3 C& _2 ^( B0 g5 v
3 L4 ]# R& O$ A2 O$ B keep if ddy240>=r(max)/ i5 C& p- [# x9 B" r* q' \
$ ~9 I. g- n+ v7 ]) q$ ?% p% w sum dx240
- ]4 x# E0 N2 }+ P $ `! [4 e9 |7 t) l- q% }" X
local tempmaxp=r(max)
, e1 O2 v6 e" l$ q% P3 A% S1 H# e restore
/ [0 Y0 f2 b1 t A }
9 ~6 I0 D9 \3 a& y" U' f0 B
! y9 q7 E3 z* j/ x9 i @& O* C2 R
3 `% X, n# v" h' b. y
% B, y2 B9 p' e gen maxp=`tempmaxp' in 1
- e' }$ A! r1 T' l9 n
8 D0 R% l Y$ z3 m7 o+ v *240maxp
) v: Z1 V: ~+ |. C
9 x' V( ^ P& m' I9 {8 a) { 6 X2 v' B$ T3 n" Z+ O6 \
*-------------ddy240pminp左侧高峰值-----
+ y2 m% G6 O0 y6 E7 t# d
+ e6 o* ?% Y) y4 [9 i preserve
0 w6 c' q$ Q6 ^: r6 E
k* L% |. \, k5 T1 Q T keep if dx240<`tempminp'
, A1 S& a8 {1 T) q ! J+ `% B7 N, x
keep if ddy240>0) K- l$ u1 p4 b) z- H3 p8 E
0 W7 ~5 n0 o, o. I% A count
8 D$ w/ b9 }) ^ w; s2 w- o Z% ] % C, ]" E2 @, B: `. Y
if r(N)>2 {
5 X8 Y; U$ M* ~5 D# ^, l' g( L
1 i& Z$ S' O8 z pkexamine dx240 ddy240% c4 [! `. u" l. U: _( h
0 ^2 I5 u; Z5 _0 t4 }/ m
local tempminphddy240=r(tomc)
/ e7 n1 u' u& Y" q6 W restore c% h) o6 r" L3 Z) Z- N0 n- Z! S' T
}
0 O8 _' C$ V8 P- C: F
, r6 Y+ o' I: O5 ^! L, s6 t% q6 i) c else {
0 n5 W0 l& D- B4 p restore # n5 }# u+ B; k0 U7 s
di "cannot find pminphddy240"" j$ p% V, F/ R) r5 h( n2 Q4 L
2 t+ q- X+ B; C# f
3 y4 z& u3 S: ~: ^3 S
sum dx240
. R- c" b+ s* n local tempminphddy240=r(mean)
7 }4 ~2 {4 O5 c+ t+ q
$ D- I5 s0 \0 E3 z8 K* R" H( e ) k. f" g8 {& J
}* I+ x. X/ |: T9 r% k% q9 G* V
7 K9 H) g [2 |8 p / h! m% }& f1 d; }
* q4 E( O, W* z# I4 q# w6 T) p
& _$ O4 i# [ `: W& H4 J/ D) j ' y) ~! F3 R. O$ x8 N/ d P8 L
?8 f' b2 u" }$ m$ f
gen pminphddy240=`tempminphddy240' in 1
9 z4 A [/ D2 k8 h ! ?: }1 R) p u
) x* {5 e$ ~7 ~& U *-------------ddy240pminp右侧低峰值 -----------------+ t0 n- @ ~7 k
preserve
9 ?, v8 f$ T5 H! w
$ @' s# I4 `5 ~2 y keep if dx240>`tempminp'- Z; w8 h# e! ~
% j# f' I9 j' p$ {% \% ~ ^
keep if dx240<`tempmaxp'
9 r4 S' Y: i9 [ K2 n6 ?) c
2 F) s! h. W6 Q1 A9 ` keep if ddy240<0
$ p$ z( R5 b! V% j
& o! _, g6 m3 P& s gen temddy240=-ddy240
) o& L) o- w, `$ Q% R6 A: v7 a
; c) `! K, \1 O0 F count4 ~" _' k4 ~* l$ `( E( W# r2 |
8 U: `$ P- H( G6 h5 X+ z( t. E if r(N)>2 {& d1 S) F h( F/ f
: I& Q6 c/ B5 i0 _! O6 x) L [
pkexamine dx240 temddy240
3 I- c! S2 I2 c- d/ d: z* v
: J/ \8 P& ^% w. @& A' c4 e local tempminplddy240=r(tomc)3 H1 q2 m; w* w' d* u6 x* V3 Q
restore. E% ^1 _! v6 a! x; p6 H, l
}6 i5 U5 e# d* S6 |) F# E
7 h5 V: Q O9 S" G& l" F
else {
2 f* k& A# ^& G" B6 z ) K5 G3 b$ b/ ?5 s3 x7 k
di "cannot find pminplddy240"
1 A; M5 v1 E) U/ G8 I restore
% x( F) U! A# j! n4 C1 P/ ^4 _6 O ) Q2 W; J0 @3 E9 {
sum dx240
& t3 `' ]! }$ @# L0 H3 H2 x! v5 z local tempminplddy240=r(mean)5 |; J! l# I5 z" l1 T/ M1 \
" u- {/ T$ T j% K) M1 q) ^ 2 i; N E4 b7 \
}
4 U5 C* A$ F4 F: \
7 v8 J- O/ `4 {. d 3 I) _* h. u' S# `# H, [
6 {+ d8 x, v$ [. G! ] p& L$ e 4 u U! H8 j8 O, B5 I8 Q; V# ]
. s+ ~4 L2 V2 U' b7 W" |, Q
gen pminplddy240=`tempminplddy240' in 1+ }! p3 q1 a" T' X
% g. ]% h W1 ~ c
*-------------ddy240pmaxp左侧高峰值 -------------------
( x' ^$ s9 C5 i2 b' p" P 6 m* `* Y( ^ ]
preserve 5 `. Q9 ?; e0 m' q% l6 s
! f$ U* ]8 I5 b" ]9 K: B keep if dx240>`tempminp'/ o2 i1 U- f5 L+ Z8 g3 l2 Y
5 n9 m. ]0 B; V9 c0 S4 ^
keep if dx240<`tempmaxp'
+ c a6 [) B6 j* ^8 x ' e$ {3 [7 Z5 s
keep if ddy240>0
2 E2 z6 S5 Y; A. y; \ count
: J' b/ [7 l' }- `* B" w
' {/ J8 L2 A* { a' J/ s/ i if r(N)>2 {3 N* x3 I, v; h
, W1 _0 T3 G& X* j' ^. h
pkexamine dx240 ddy240
' G, o% D% Z% z5 p0 \* u - x/ l) [0 Q& B+ `4 m F
local tempmaxphddy240=r(tomc)
) [- K3 t2 y/ c1 |, o 8 I! a7 V% q* r, I5 s3 x
restore' i+ M! |) {( ]; I
}
% c& k, x$ z4 j0 } 4 Q" ]" i O: q- A# w0 v1 @6 V
else {
! ?7 N1 q+ m: x% p2 a
4 T6 v- S7 K3 f9 ^6 x) `$ `6 _ di "cannot find pmaxphddy240"# f1 K# m7 |$ j$ b
restore+ m/ d1 N {% f, i* C d
# t: @; M# \2 J9 P& H; L
sum dx240
2 i* s3 \+ H i- E local tempmaxphddy240=r(mean) " V1 m; O e$ Y% M M( \
$ k8 \1 i6 r0 M$ n1 m. ]8 n
! A5 L; i0 p' n8 m }: {' G9 e# U" Z% ^
' l$ b/ l: e, q2 M8 r* R
7 @0 S; Q$ K8 E2 ?) F1 _. Y
- \0 o. C2 ~! [4 L; ~/ \7 g) h
- \1 y8 }$ ]8 Z, E! w P
# l; F; G& A& h' h* g4 | - Y: |0 W1 q5 l' u; P% |
gen pmaxphddy240=`tempmaxphddy240' in 1& _' K3 V$ n/ f8 ?* m
- ?+ ~$ c% A* m- H! b, H6 C
* M# e3 x! ~: X2 |' H! F *-------------ddy240pmaxp右侧低峰值 -------------------
/ }' h1 e' N4 q; i) F6 v8 E! H ; p0 @& P- n( s$ I
preserve : T/ a& S/ h ^' n; R5 p
) _3 f; @& N0 s4 q, j) x
keep if dx240>`tempmaxp'
. R3 _- C y: z; ]$ m
6 h0 \# P @% ^ gen temddy240=-ddy240+ p" Y3 ?7 u. ]+ F1 b& f# `
; b( r3 \& k' h: U( c
keep if temddy240>0
5 v Z+ v7 p6 \) a+ V 2 U3 b8 v: X6 l5 W7 a; y) T& B
count
: |4 v* W: Q# @0 L% a8 O % S( {: \3 k# ]" f+ A
if r(N)>2 {7 q3 _! o+ t+ y: I d
/ Q; A$ E0 L4 j: T5 I |& \% I6 x pkexamine dx240 temddy240
: `2 \: N4 j2 f4 Y9 `) f% H
. u2 w% D# q [9 x3 E: |) L* T local tempmaxplddy240=r(tomc)
6 {7 O7 X! |6 o. f2 [( n$ d restore
" }; \$ j1 F- X/ k }, Q3 K1 S5 Z9 J
; W0 `7 S q1 r! |: z8 }. k else {2 ?3 X7 L2 D9 O% B% P: x4 u) Q
restore0 R7 k6 y0 A# A1 J/ @
di "cannot find pmaxlhddy240"9 ]2 ]; \- f5 P- B4 ]
6 A6 g" ~! U/ I! Z6 ~
1 K$ R( \& T: ~3 ?1 ]" Y6 M
sum dx240
- I- u' ]4 |) @6 W) {8 L. H local tempmaxplddy240=r(mean) in 1
7 |4 N% s$ K# {. v9 f5 Y; x. L% o
* i1 @+ c. z8 J2 \
5 k- e+ r" r m& p9 ?% X' F1 n/ z }; ^- W! L/ f3 r" ~6 c# A
, u7 z) w, _6 ^8 v8 Z
8 {5 a: @: D3 d6 t, ^2 L
+ l' |- g- y5 F7 U0 ] ) L" e0 p6 |3 _% f+ I5 e( `
. C. m0 X, F! G2 l
' s3 H5 \) Z0 f0 J gen pmaxplddy240=`tempmaxphddy240' in 1
4 L1 B" h9 p+ v) \) m0 _$ H
7 q0 h; K5 m4 y$ V, p *-------------------------------------& [% Y/ o6 J. X Y, Y, W0 r& ?
3 j' E4 q4 H1 W2 |, X gen price5d=v5 in 1/209 N5 Z$ U6 z" [+ @' I6 G r. V* K2 {
4 T7 t1 t/ V7 h) L8 h
gen price5yy=_n in 1/20. j& k+ {6 c' E' Z4 i
5 A( Y" l8 Y; n$ x- ~- k4 O gen price5y=price5yy*(dy240max-dy240min)/205 O- l( C% f. H4 v" d/ Y: `
7 i1 O0 |6 O- i, K: o *price5y &price5d
( `5 p* j1 a+ z3 j# w9 p
9 `, y1 V L0 ` gen priceny=price5y in 13 D0 s( W [: R+ e3 q/ z
4 x4 |& d! X8 W2 L! B0 J gen pricen=v5 in 1/ z2 U p) y( _6 J: q7 `. Q
* @, }, U3 O8 ^ k5 Y& `
) t) m- K8 n) ~9 b* k3 S( j *priceny &pricen
% y' E1 Q s( O ! q" @- x5 Y8 f: N7 Q$ H2 S
$ Q1 p! ~8 p$ ] *-------------------------graph------------------
9 [+ x" Q3 m; c$ T8 p% q 6 Y! y. g4 U) 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)
* r( Y' R) s) N9 r8 H! |2 x' y& k' `9 [
* ---------可选项目----------------------
! H/ E5 S0 r3 z+ j8 F/ t*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)); l- w7 `: O9 r! o
}: i6 O, @7 }$ H3 i; F' R3 F
end
5 Z; t0 y/ f0 X |
|