|
maodeng 发表于 2013-1-28 13:13 . m9 G9 V- {/ D# H3 B+ p& ^
. hello 300236
8 R+ F7 {2 X( w. c; ^, q& [statement out of context' e9 ^( u; S9 K% t; ~ ]; C ~
r(119);
. @$ N7 w7 w4 z0 P抱歉,最近太忙了/ u7 e- m; W; g5 h# t
, G$ o0 z3 E2 Z' Y r300236 我用下面的程序试过,没问题0 h1 d8 E- l( b* M' m: P
& ?5 n1 P3 M2 M. o" E, _
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
5 t; n# E% {' \$ w
9 ~/ W& q7 s" N2 ycapture program drop hello) u# z/ d; U$ V% w7 W( S
* V) { g6 t% N' X, {' n8 f0 m. \, _program hello" [( j) M3 e# P4 \# e# U2 {: ^
, o6 Q* S, O7 i6 C6 X% K$ O$ T8 R quietly {
, I9 A4 }' U8 s, y# U0 o: [2 o" H0 O( I6 h: ]5 ^
clear* `2 n8 h; h% x1 l# @* N( b x
4 b0 }, u7 X8 W7 Z+ z
cd D:\stock\test\source
9 V/ D& s8 k2 c O/ k p7 u |! O% ]# z/ E3 p2 c5 F
insheet using `1'.txt% F4 |# i+ {0 p0 M
( b. v) j: ?4 J keep if v5>0
% c) Y- U/ T8 ? w2 s t6 e % L- O, v. F4 T2 y( q6 F
gen vt=_n
& ^+ g. x5 J! B9 Y3 f4 A3 v: p
& W2 ^, x1 o2 ^# Y" W" c* L1 O tsset vt
4 Y4 P5 {0 ]* J5 c$ i2 [2 t; w z! S5 c; C0 Q+ Q
gen zf=D1.v5& Z" f- q6 D. Q! m$ @
$ _ v3 }. c) a) Z' n gsort -v1" r B# L* { p( j* ~- E
3 P! O A* ]7 D, g1 X' M gen avol=v7/v58 @& i* A" Y8 F4 }6 Q$ ]5 S' M
0 J6 K0 d" n h( i! G
keep if avol>0
/ [8 E# ~% ~5 S 0 ~5 ?- W; \4 h7 |; O. t4 B0 W% K
drop vt
' A0 ~- p$ @3 K) s- q# \4 l
1 N0 E! A/ [3 h1 p/ B. o gen vt=_n
: k% D0 W( P& @1 A) h
& M3 M* ?, g+ ~ tsset vt1 U7 U2 z# Y! _8 u& o
; \/ ?: t/ Y; {7 A) m5 x
sum v5 [aw =avol]
$ k, V/ r3 e+ z7 x( V1 V+ _3 ` R+ i' E8 j& t3 V" f
gen amean=r(mean) in 1
- i4 f: B. V, E: A- f p
3 ]% n, f$ Q8 C$ g/ z * 总加权平均值 amean6 L. v# H6 t Q/ f
. N6 S% `0 t0 }6 Z' d
/ H1 g) C$ E$ v" @. D2 t keep in 1/240& Y) Y5 [9 e' l0 J1 i2 P, H- C
5 T& \/ ^3 M8 H1 [- [
sum v5 [aw =avol]! `4 L) R# C% r+ K* K$ _5 |/ a
4 ]4 P- ?9 R- l( ]
gen mean240=r(mean) in 1" R/ S+ V; u. x6 Y; c, k. ?' ~
- K9 c; O; \- Y& _0 ~ *240加权平均值 mean240: q' d' _, |7 }8 G& [$ O5 y" m
1 b" I8 y) i8 d7 }, z# \
set obs 500 x# Y0 q3 r, m) }* d: ~! r0 W- }
/ p$ r4 i% j6 m1 L% j
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
$ s, F: V) m1 n0 V. b+ O$ Y X
g& a3 k: g5 I1 @8 c% ?4 a *240 kdensity(dx240 dy240)
1 V% B# @: I Y0 l4 H4 G- W+ r $ H9 e) V% ?% R5 `: k5 ^
sum dy240
" Y6 i- l& u0 s* ~( x2 I, [' t( M 9 Z; {, h* o' I* T v$ x! I, G
gen yxis=r(max) in 17 m( W( w2 ^! h- o9 f
* z) H0 M9 P4 V8 Z( a* O# O4 }
gen yxis2=yxis/2- w" U( y) f4 C* p1 p3 {
+ i7 q) y& U8 q
*yxis
/ f1 s* k# f6 A1 C8 U
5 `/ H+ n& H- ~0 ? gen dy240max=r(max)' ]6 { u, O/ V* i0 y( m6 a
1 [) c% A& B: G u5 k2 {
gen dy240minp=r(min): e( J1 v) c) B1 @6 j7 ?7 [1 P, a: p
0 F% `; H; g2 Q& f6 x5 J
gen vtt=_n
: K( O; @; ]1 b2 a [% o8 v$ w7 f5 [, o4 t1 i. m
tsset vtt
2 K$ e1 R2 J2 y- B3 ^# k8 Q) {& h' z8 h& n5 f
gen ddy240=D1.dy240/D1.dx240
& `0 R9 Z# `: x; `
6 T) \- \1 e6 T sum ddy2405 K1 {) [) u) F/ |2 y1 J& h
* l6 I; N: \' g; H* A gen ddy240max=r(max)
7 ?! K+ `, d8 B, P& I4 m
) r, Z1 I# J* i( ] gen ddy240min=r(min)! O: B3 ~! o" W; H8 [' s/ E
# ]- I3 z7 B6 D1 n0 g% D. C# ? V5 ? gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
# t3 [1 I$ ^. F! N8 O
4 E% E1 S0 l5 g sum ddy240g
: _& D. ?8 k |! p
* e: E, x) ?+ D, [6 D gen yxis3=r(min) in 1
7 X5 Y1 G2 Z' L; u" c% ?- D9 O 6 i' h- U! A7 ?! U
gen yxis4=0 in 15 p! _0 Y" [7 l" N$ L( x
% Q O1 |9 l% g) V* ] ~; J" E
*ddy240g
4 R0 ?5 x. ]( K4 d0 p) b * p% `" c7 }$ F0 N/ A6 o3 h
~' `+ l- x$ |- b
preserve - E- x1 n( h) z! N( Y
6 e r6 f) T5 E8 C6 Z, k" v Z sum v5 [aw =avol]
; _( T. R! ^; i% E- Q4 J + e% Q O/ A/ m* |
keep if dx240<r(mean)6 K9 d3 q5 ?/ ~8 @* s% ^
; O4 B7 e P2 L. q sum ddy240
2 I& Z# y3 `% ~/ N. }
6 v7 f$ P) h! R8 s/ L4 L if r(min)<0 {: _! g* I& O- C I! O6 f) Q) ^
! a% ^6 V4 F3 j* A2 v
keep if ddy240<=0 s$ e( F& b7 r# D( k, g( p
. S& ^% e' B0 N, R W& e* w count5 Q+ R& I+ l; j; {
* ]: H/ L# e5 A) q- m if r(N)>2 {
7 ?3 N ]- P& t3 T \" i: @ . w& o+ l( ?# t; l
pkexamine dx240 dy240( e# X# v* K# a5 ?. t
. L/ R+ y0 @+ a5 }) H T local tempminp=r(tomc)
- f$ y/ [& J) w3 q& L restore : p* L$ {8 z, y F* O2 T) Y1 c H l
}
) r! Z* M4 N* k4 |- k6 E b 9 Q: u4 r7 h$ p
else {) K& y( u, f8 @
' l' `) W4 [7 e6 P- g0 H1 p di "cannot find minp"
?$ B, I! w9 ~2 x+ b& @! J4 L
8 M: C% d: @+ b5 t/ @; R; C restore / a+ t! x+ A" N
sum dx240
/ l P8 X5 R& G. O$ Y local tempminp=r(mean)
# n e( s8 V. o { ! N& y' {7 N4 f) r
}, ]6 F) N6 p' I9 O# S
}6 _) W+ c' L1 G2 U7 R; @+ [; s
else {; `3 A# t- E# v& q0 a- ^
" ?% x% F" m, G9 w0 k
keep if ddy240<=r(min)
3 _0 \! Z+ m7 x' a5 x6 _
* g r6 y$ m% Z+ N6 T2 O: |4 @ sum dx240! C, m' k8 `- y+ V1 y! ~4 r2 @
" H1 B$ a3 B% x" s local tempminp=r(min)
2 Y) w# |7 k1 V0 H restore
1 P. x8 [- l" A8 S8 @$ R& [6 _0 j }! U3 K# S* q- h+ D
2 T: k0 I# B6 b$ H
. r" {/ L9 r+ a& L; c
7 y( r+ i2 {9 z8 o. m- O3 @ gen minp=`tempminp' in 13 u$ S4 B! Y" x; J P, S
*240 minp* F$ |( e( ~& V9 I
! u A$ M: N7 p; u& Y
" ~. N/ i; D' g
. B) q/ p/ e4 g7 I( K preserve
: z5 G( g: ]( o0 O4 {8 ` - J$ W/ U5 F2 G/ P2 Y: `* e
sum v5 [aw =avol]
/ e, ?! ]7 L/ s: g1 d6 R
: k* N. `1 d% Y3 p1 q keep if dx240>r(mean)- ]* L8 H2 V5 O0 o( s7 E
0 W: x9 b0 w V( x% I0 Z E8 R
sum ddy240
: u( O- b+ l. R, } $ s* Y5 T2 R6 M
if r(max)>0 {
) O% a$ j8 U# I& o8 B
$ q, t' L! b8 X* O3 v2 U0 i, N; L keep if ddy240>=0
, f6 @1 L$ g5 W! Q1 Z0 ]; H # s6 E( ]7 N r1 F- U
count( k6 i4 E8 c! z- L0 I: I
5 E. |2 v; P. ^# q i3 I# j0 M
if r(N)>2 {0 q* u1 ]4 [: f- v5 x' D) S" ], f
" O* I) @! _' q# a, E pkexamine dx240 dy240
6 p$ [5 ~* l) C- W: R7 j# A
! w- _9 k: P% h4 Y9 {1 w( g4 \ local tempmaxp=r(tomc) # Y: x" Q6 Y: `) l* F+ h
restore
8 ^$ u' `( o) g0 w: b }5 _; Q1 F0 T1 }# x
2 a6 i% D+ W# A, J& [1 ?6 [7 M3 s
& `* k8 f E, r+ f else {# `" \ V2 E, X/ s+ y9 a" i
restore : a8 X5 I5 R* T T2 _
di "cannot find maxp"& f- }, I3 a2 K8 q# b0 F/ c4 G8 H0 c2 t
0 G* G" j% t4 z# N6 A
8 m( K! {! k% c2 z+ G sum dx240
* o% D. P8 ?8 w4 t: ^ local tempmaxp=r(mean)- d6 @ r3 F' L7 q" Q5 k/ W+ Z! x" ~
0 w* ?+ b( ]* i1 T' }! P0 ?; } }' q; c" J: {! J$ a* }( l
/ n/ }' J& n) r$ F }
, W% O4 b/ m- f7 p: B! E- e; r- @ . h* C% S& } B! d* D
else {
- _8 E/ k: \1 |- h0 a 6 F0 A/ t+ L! M% p$ l
keep if ddy240>=r(max)
0 I* V3 O1 A5 q Y, o. g
! ]0 n! J2 l% u5 w sum dx2402 H# v/ ?8 c$ h5 k) ?
/ ] D0 j' f! } local tempmaxp=r(max)
8 q2 [ h: A% r" k( |2 @: G/ A restore
/ _# v" ^ J2 _. X$ S }
9 g9 \" m9 P8 e+ x! F) t
, t# e. O# I1 r) v0 c' m" B% o9 l' _: e
9 m2 w3 p( q- x* T2 V9 y
, i& Y( b3 U; u gen maxp=`tempmaxp' in 1
; h0 L+ R9 O$ W+ Q: L& a ) R; I+ X) A: o
*240maxp O6 E0 ~& B" S* E
1 H% V* \/ ` Y! H+ K- R
3 I- _( ^6 n$ E- J+ ?5 `7 e
*-------------ddy240pminp左侧高峰值-----
8 A+ z. q2 A$ o ' y7 C: _! b h% S
preserve
- @ `' y: x9 T; h5 J ) q5 l0 f+ B! c P+ M$ n' [* p
keep if dx240<`tempminp'5 W$ }* E' E0 L% ^5 ^3 D4 _
+ \9 n6 e w; {, O" z' ` keep if ddy240>0+ T9 Q$ V1 g7 F3 D, u. o
+ {/ E6 a8 E! O2 t/ | count
6 X; P6 k4 a/ ^. ~+ C , d/ B+ J6 i. c% i9 v
if r(N)>2 {% M% V `$ k( `
% n" V, @: @- }
pkexamine dx240 ddy240
& E2 ^( b G$ h0 d- ~$ p 2 j. @' ~7 ~& v& R
local tempminphddy240=r(tomc) ) U1 `; I g& P. M3 X$ g% H$ \
restore" I6 V" O7 k' n/ G
}1 S+ E+ j3 t, l u
6 o* M) P0 e Z4 i9 y ? else {9 k* q( p( w8 F# J' G: q
restore
# G; d, Q( E4 L5 t di "cannot find pminphddy240"6 @9 K C# @6 \( ` M5 G/ U5 k
$ T; i0 h* c) |
$ ?0 ]$ B: ?5 ?, u, M* u sum dx2402 ]7 x# B' L7 b0 w' `. V5 w5 E
local tempminphddy240=r(mean) 7 t5 T' v' V" ?" j- o q
% F& S5 f1 o2 S
) u& w! G4 C& Z! U9 n: e: N }
3 h& y" l( p |; W5 n" h1 [( Z
" h+ Y. B+ w" ~1 }6 }9 R
* R O8 G7 g! v3 G7 ?
( O: q! _, Q+ \- O8 Z# l1 C % P* I; \! ]& k5 u' P
+ ~. _* u8 Y1 R7 }# G 5 a( t/ a6 d5 o8 S" [
gen pminphddy240=`tempminphddy240' in 1
- a$ m7 r' O. y: K- u ) W0 B* d$ T1 b; }9 Q
7 D( x" G% S8 q3 w# s+ S* E+ z
*-------------ddy240pminp右侧低峰值 -----------------0 C& ]0 g1 E7 U) Z' S
preserve
( @. F7 e$ N/ y4 J- R0 w' u
% D ]% y, x0 o0 Q. Z keep if dx240>`tempminp'3 J6 w3 M4 L2 e0 h
# {3 H- V; ]+ e$ G- B0 w keep if dx240<`tempmaxp'! d4 |# J/ d3 p9 `. a! x- t9 {
. |8 ^/ }7 H8 V- I5 I3 A keep if ddy240<0) |3 s* T5 j5 ^! e
2 o/ F$ @% Z; U- P( i
gen temddy240=-ddy240- \& U' T( U3 @: ]( u, L
9 F7 s B/ r. |0 F" h! R count2 z4 e3 r* B, }% }( M4 U9 ~+ `
! f2 s+ l w" ^5 K) o3 U if r(N)>2 {) J$ B1 x+ {$ m# f& n3 C* V
, p6 ]* K2 |# }
pkexamine dx240 temddy240
% E5 `* q8 f; n* J; s! H5 w
% {6 `7 Q! v7 R$ P, B( y, N- {, J local tempminplddy240=r(tomc)
2 ^& H) U, A/ b' r restore- @* \2 l( Y0 Z( ~/ ]
}
* n, s0 ?9 Y, z; |' o 0 P: d# W$ i, ^8 O
else {
/ u+ j. Q) D. k" R$ a7 ]& K 2 _& }* `# [+ d' v/ w$ J4 G+ Y9 ~3 F
di "cannot find pminplddy240"- M. M9 b3 v& l. M
restore
4 D# T* S, M* C0 r+ D' v
1 Y2 n; v" g q9 U8 p sum dx2402 q# ~& Q' Z$ Z% B9 H B4 F& O
local tempminplddy240=r(mean)6 f4 i; w, E5 h" D/ H- f4 l- ^
& G8 Q" k5 k {8 _4 \# g
. ], q% F) L3 f0 w. g }
2 r. y3 l& w1 h- i# H # I- W* n* V$ \; K& W8 t: T
2 S; w. L$ @' i9 b) I $ M) d: \ q+ p+ C
) e4 f+ J% a0 B4 |- q- I
; B/ e+ w1 S/ H; N0 f gen pminplddy240=`tempminplddy240' in 18 O6 _/ C: ?7 g
% V. o7 h) b" ~9 ? *-------------ddy240pmaxp左侧高峰值 -------------------
$ d) U6 ~. E+ [6 Y& P3 @ 2 P1 {& \2 T& E$ O
preserve
3 F: N, M# |, R9 E6 Y3 K/ a
" F0 P& ~+ V1 i9 o* T9 c; i) L' p keep if dx240>`tempminp'
; |/ \. s5 u6 x" F + u5 U1 w3 O; D( z7 n; z+ ^; C2 u
keep if dx240<`tempmaxp'
; o( N; M( X/ K: D
- A0 ]" ^# T* X keep if ddy240>0
! U7 |$ |* t+ X4 E$ S( _& r& K, c count
f( M( M$ I4 F' d0 {( q
, g% Q5 w# o m) B if r(N)>2 {) T. P- l5 y; ]! j& A
5 B6 X2 W5 g- [4 O# Q& p$ v9 s pkexamine dx240 ddy240
( A7 D+ A7 C! i0 T1 l3 ^
- _: t* W* w5 o# b+ x local tempmaxphddy240=r(tomc) # D" ~1 U$ S2 @) w1 B8 l
$ |4 `% R0 T. F9 P
restore
4 a0 I) o. |, U! m r# T/ _ }
6 J, {4 I# `$ I % J0 Y+ G( g6 ^5 ^6 w) K0 j- K! E8 Z
else {
9 J' G+ D' k' G' R2 Z6 i6 d
/ f! V9 N% T( j; r; U3 l$ _7 t8 U di "cannot find pmaxphddy240"
( x0 A' X+ h. r( q8 [1 L restore
8 k5 F: U: W3 [6 L
+ }0 c+ p7 S' z& _2 X sum dx240
- A9 C" n4 B' e local tempmaxphddy240=r(mean) # _4 s3 E* [; K/ S
5 _% h' h6 r, Y4 W1 c/ w' n7 d
( k% l) q3 _2 `( b* J) k }2 B' i, E( @1 Q
3 M8 N# `4 d9 Y8 q' W% E
, w" p: S/ y" ]! f& x/ w
^' a* s2 X; `0 o3 y
! ?/ B5 H7 q* l" R6 h" ~
$ O8 A' u" U# Y2 \ Y # ~4 f) A. B) e1 N( V& M/ L
gen pmaxphddy240=`tempmaxphddy240' in 1* y8 [' k4 H6 u" b& W
4 {0 [: V) v I" w& G& J9 p8 a ' g6 L$ @" C$ D( j% o
*-------------ddy240pmaxp右侧低峰值 -------------------6 c" h7 F. {, i
8 |7 t4 W1 H" q0 ~
preserve / y9 A. ?& l' o$ }
2 U+ q) Q- d: a' j- r" z* O keep if dx240>`tempmaxp'3 D: ?1 p+ C; _2 z+ Q6 M. ]
- Z/ a$ \: q- R; m$ a5 u! H1 }
gen temddy240=-ddy240- I t+ g9 h+ ^8 f' W5 o# {) J
. g) m& X1 _, y+ j j keep if temddy240>0
4 D! l( E6 H" m; F( r7 M
P4 W# Z) ?# y. v# y0 ? count5 A ~/ Z" I$ I" b
" R% y6 }1 B( U, H& n
if r(N)>2 {* e; z/ J/ J* L2 y2 L% d
; b* f# ?0 c; k' F
pkexamine dx240 temddy240" Z+ A8 B+ |7 Y9 @5 F% K( g
]; S3 @0 V- E/ v
local tempmaxplddy240=r(tomc)
# \0 X6 j3 S( f1 Y$ L restore( N# O5 ` @- `" n% |- |
}
: `' C3 y9 c/ J N- g* }7 G
l3 O8 w5 }1 A5 v: q: e else {" W2 G7 W0 ?0 t. N: o x
restore
3 D$ G! H l8 @ di "cannot find pmaxlhddy240"
1 k& ]- i' g* o0 m# T) b7 C" o . w! L# `) W% M* Q) e( J2 k- S
" Z& B" n* w5 {( I; ?, f, R sum dx240: { \1 G9 D5 j+ O
local tempmaxplddy240=r(mean) in 1+ y- Y" c/ d ^/ b( T" t
1 u4 i# Z& H Q! g, p9 t
3 `& `. b: Q7 Q. c7 K: A }1 ]8 P z) ?8 v3 o! q3 l
6 m" m2 Q6 L; h; t
$ Y4 M$ ~$ V+ W9 r
; ~5 p" I, j* E3 W" ]6 D% t t
6 }- v, g9 z. V$ R4 p- F' D9 {* \
; K5 v0 v6 `* m* M# }
: b/ b7 \6 D$ \ gen pmaxplddy240=`tempmaxphddy240' in 1
! L2 A2 @( L" e
- M& o- e7 [9 \" i- \" f4 Y1 S *-------------------------------------9 {5 w5 O4 F; A, F
6 b9 L- Q1 n: V5 b# x
gen price5d=v5 in 1/202 z. |0 D& F" ? I& k+ d% h
! ^( U+ x* O2 T: f gen price5yy=_n in 1/20; Q4 h! z# C& O& T6 i7 h* u
" _% s% E" t/ l3 l A( w& \
gen price5y=price5yy*(dy240max-dy240min)/201 t4 f: v4 m3 F' u7 @
$ N& e, T0 Z/ j5 a4 M+ h0 j) Q *price5y &price5d
6 k; p# y) w+ ]3 F) p% ?- _ ( x; u8 ~3 t7 ~& ]
gen priceny=price5y in 1
: t* s- K+ C- P9 s4 O ) `" p2 r$ Q. y/ Y* h! K1 \2 ]
gen pricen=v5 in 1
- U4 t6 l: Z* D. o, z$ |* }1 a; I U; }' t
; ~2 a/ H3 D H& w+ h; u *priceny &pricen
! h9 h; S- ?5 p( V/ W - A: A: U6 C: V& j: `* P& L3 k
6 {9 u9 ]/ y% L `' g *-------------------------graph------------------! V6 N9 O9 g/ {4 v
& c& e0 _$ U* s# I8 p& ~& C( A d( 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)4 G* J9 b2 b0 x! Q2 k
9 u( ^0 e( R7 n6 x* ---------可选项目----------------------0 q. P+ _4 j4 G4 e
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
8 `5 z/ K! g) w9 ^! M7 p4 i0 T9 [}
0 l0 |% C- t5 ]8 k+ q: o' M& \end
1 J. W- ]& e8 ?/ e5 |7 B |
|