|
|
maodeng 发表于 2013-1-28 13:13 ![]()
& E; z! ^1 P; a& H9 W) }. hello 3002369 b) E. J0 w/ ?" c$ k' _
statement out of context Q" w/ a* l# _9 u" x* J
r(119);
% t4 s2 a' ^5 X" r抱歉,最近太忙了
+ z. g9 x6 K5 m d
& z o& M3 ?- o0 ~( M: ~300236 我用下面的程序试过,没问题
2 t. L( @' i% k2 r4 b
6 t/ U) v* T0 ]; z" I+ P你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试+ ^1 \# D% L) o0 J# T7 G( k2 j! u
( H5 T7 H, m% c; x( s% U }
capture program drop hello
?3 k) P" R( b; ~
( v' w* C- b% Q. n( M1 {) g, Uprogram hello( X5 B: `. O6 L* F6 h
& t. V5 n* N$ M+ c. d
quietly {
. M2 `* x8 E5 y
7 L+ ], Y T5 P+ y! p1 h o7 ]clear+ L+ `, f: q) P: i! ]9 E
7 j% z# o# U0 _* D
cd D:\stock\test\source$ X* Z6 p; ~7 I K# y7 q4 v
2 t G9 m2 g$ o! I" @% ^insheet using `1'.txt
. G/ t; F( B* r7 T5 X% J3 b
5 `3 C7 h/ ~" Y/ A keep if v5>0
5 N1 g3 J1 O$ n- m* k; S$ F" v
- T# R2 ]( n4 C gen vt=_n
, x1 [/ `7 y$ V# b; }+ z3 b: j9 ] 8 q7 @9 _ i) h% d: C
tsset vt ]% h; J. l. O
' x0 `! M- X/ M N gen zf=D1.v5
8 C$ l* p4 n6 @- v, W( F# b
$ t* D+ h7 U( v% P gsort -v1! C/ m/ o2 W/ `! y3 X
% c1 M/ k& I6 ^0 p2 l7 t gen avol=v7/v5
+ l3 o) V0 R5 c. J O: k! A, b
" y3 E' p3 K ?- ~9 B keep if avol>0) r$ l7 x6 z2 |' K9 R5 G
4 B: V$ P3 A, p8 I8 ~: g
drop vt
1 A9 w! ~ ]7 q& b % v) p' f2 _" t* F- d) ?3 X
gen vt=_n
5 E! W+ I9 Z% Y) K& |
9 h& c: R) p1 U5 e3 p6 G; j tsset vt
, r9 |% [" T6 U# W
5 @* k c g5 [( v v4 W; H1 N sum v5 [aw =avol]
8 O6 O6 w# S8 J/ U4 u6 h: s% s, S' G7 T( p
gen amean=r(mean) in 11 V. E- o' ]0 _8 w+ P7 T- a
& p0 q A: P8 n' h# { * 总加权平均值 amean
1 C- h( O" D8 |% R$ k4 W1 x( M 8 f. I, t: H' M6 h* O4 m' `
, P' i5 [" U* O- |8 K. j r
keep in 1/240
% p" ~% D6 T* V; ?+ V: D; I0 f4 a; S
; Q a- u9 z, I1 |0 o8 h sum v5 [aw =avol]
# d: ^8 Z; a# r
( g& J( T! t, W: J) A4 ? gen mean240=r(mean) in 15 O+ V1 \( f1 ~! B
7 P1 i, @% v' ~4 O. D *240加权平均值 mean240! _8 D$ Z# ^$ |& X6 R, D1 y
2 R5 w" A2 L+ _; }- J7 P& B9 Z
set obs 500
/ i' Y. a* i# O5 P2 K3 y
9 u; X$ K8 U q9 Z kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph8 a% o$ Y+ ?7 V" n6 h
9 ]: A9 }& T T) _6 b4 }' |. O
*240 kdensity(dx240 dy240), d, o. O4 K2 U- z
}# i3 k. l! u1 _
sum dy240
- y' V8 g: T5 v
* z: V; }4 K- K gen yxis=r(max) in 1
1 @8 M$ i, K, _" e % R: V* k2 N- a# E# g
gen yxis2=yxis/2( U v: x! d3 r) S6 \" _
% H J: h! g% x
*yxis
, r8 Z* s) e0 b; s7 E # v- ^) G: R, z2 D
gen dy240max=r(max)3 p6 t9 i/ [" F
0 T- E3 m. x& c
gen dy240minp=r(min)
. S" z% A7 |6 \# I6 b- V
B k8 A* P& B2 [ \ gen vtt=_n
( O: X4 A' ~+ _8 e
$ M* }2 J8 z4 c0 m% G. |/ q tsset vtt( F& l+ p0 d1 n+ m5 ~( M
- |7 V0 H, F: B3 x) l
gen ddy240=D1.dy240/D1.dx240
" K; x+ |6 m- b( Q) K7 h # w6 r) E' Q& m, `
sum ddy240
. s! a( f4 o% e3 |) u4 A W
4 L# l- s' d' { gen ddy240max=r(max)
6 ]) E& @" y2 H& V6 L6 l6 S
! [- _, X Z' m3 I+ X4 g gen ddy240min=r(min)" l# _0 D8 X M2 w. ^% G7 }# X
0 p9 L# N' P$ m: G% ~9 D# l gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)2 A$ m: z( V# w' |
: x( V% L) ~) w9 y* V F sum ddy240g) E; a7 g& F' c) { j
# j; C! P2 u2 X
gen yxis3=r(min) in 1
- m S2 ~8 A( o) {* l$ d0 J L ! t9 v. B+ b* B, v. M L6 q0 p
gen yxis4=0 in 1+ @2 X8 s, }" }# T
* N0 [+ u" k' |) I9 z% Z G1 P
*ddy240g : ]0 ~: u5 b# C8 P3 U9 b& J
% F/ C0 K. e! R3 m) m9 f3 v$ c $ x$ b' J) f+ ]: ~9 z6 N2 r- W% F% U
preserve / l) A2 L- t h+ B/ F- q- }! N
* f2 z. M& H6 U( m0 z7 W$ F
sum v5 [aw =avol]
& N- |$ Q8 Y% K4 K! p' A% Q1 n! r
1 `3 @ x) b, J( ]; P; m7 q- Z keep if dx240<r(mean)
" W/ ~- P5 m. r# L 4 b; ?) _) M! l/ K2 z
sum ddy240, B) N% [$ G7 ^, l4 ^ T. |- }
& ?+ g2 Z7 j$ l7 V" w) F" l* p- ]' L if r(min)<0 {+ ?0 q- j1 a4 V9 `4 H
* X) D# e) C+ C% s% v/ C8 d, w keep if ddy240<=0; {' V3 f: |8 m3 `
; |9 X( y0 K# d9 N) x7 h: L count5 ]8 E7 b. V2 y6 r4 r( m6 x
( _- V7 h# Y* I# S& ?3 P- N/ d if r(N)>2 {
% a9 K) B+ M3 T
+ N/ ?: h3 T0 N pkexamine dx240 dy240% _% c8 J- F2 x% D$ k) w- o
7 w `8 D" ]* x1 U* m' I+ Z) d; E. [
local tempminp=r(tomc)& u$ I* @' K, z& X; u1 {
restore
2 G3 k2 I5 t5 G( F2 |, } }
4 {3 Q, O' W9 b6 M0 K! m4 Q7 ^ D3 t z" {. I" E7 Q# O) l
else {' S% a9 H6 `8 L5 O6 H b5 f& S
1 I4 \+ [7 o& f+ X$ |) O$ B
di "cannot find minp"
( H6 W4 X/ O. N) R7 h4 S5 }; i . \+ v7 B/ O$ f( E
restore
: T9 e; `, \0 x' B sum dx240
9 B1 {) N! P$ E/ h local tempminp=r(mean). h* M/ o' U0 [' `( \
1 g$ N% d" \! k/ c }# j" n3 V' E0 N) \
}
8 z2 j5 K8 _! l4 B% @3 [ J else {
# f2 t" T1 y8 e7 c1 q5 K/ J ; T: u9 g* C6 o; d6 ^, b
keep if ddy240<=r(min)
4 E' T$ [9 x' k6 B# O
$ J) q4 m9 a6 \9 [2 z sum dx240
6 q& n' v l; k2 N( }' N2 e2 X
8 ]1 `0 M( V: ~% k4 Q! X* B$ _. V2 P local tempminp=r(min)6 Z: U* L% d+ R! J+ s9 h4 ?
restore
$ Y0 `/ U) A: C1 F9 D/ B# p8 e }
1 @5 O; s1 [' c! j3 p1 j3 J; q
* T p% P f- V0 F; Y4 @# L/ K8 ~7 b
) {" g4 s/ k7 I) [( m gen minp=`tempminp' in 10 i: t; _5 E3 U z4 {% H
*240 minp
I% g }% F5 l; S( v: X4 u7 [ N; \% I1 Q, y" s" j
' s: n* Z2 q7 a# y4 k: U; K 5 g5 R3 Z; S: t" q! n4 q$ y
preserve . b5 p y: T# o8 e& ^2 I
0 x7 N6 p; y( P9 R, M& k
sum v5 [aw =avol]
i# C' F1 h K% J: u
; e; w$ \2 x2 H0 N; _5 Q8 c4 [ keep if dx240>r(mean)
/ }* Z4 e* D$ [7 o& v$ K 3 o( [6 w( U3 H, s; \4 _
sum ddy2406 x2 ^& j' r/ ?" R2 v5 a' W# Q1 f
& e, @' ^" M w* r. ~) N6 {. ?0 p
if r(max)>0 {3 c( m5 q9 ]: k; H2 {1 z3 H
* q% A- D! }; X I! r3 ]) k" ]3 u
keep if ddy240>=0
4 O, {3 }) h% F. |/ M ( w+ m/ R8 ]" T! ]6 ]0 T
count5 p2 p5 m1 r9 ?- f; _
" E; B2 R. P- P0 r4 V if r(N)>2 {& Q6 z9 T8 A3 v/ Z5 P* V. [8 F
+ E# Z6 \7 k' v4 n# g! G
pkexamine dx240 dy240
, ?1 L1 m0 \7 m1 ?* A- k6 F 3 G1 Z/ X' l3 F" z+ e% b0 t
local tempmaxp=r(tomc)
! Q3 r9 b; b" n6 F* D* W restore 6 S2 s# d* w+ U$ @% N" }
}
. \% g. x6 ?; R0 Y / D, j; M/ n5 d) L2 z( h7 ~
0 ], L5 j) H3 s- o$ ?
else {
+ Q4 d7 E8 R) N9 E/ { restore & O( {9 w# ~. M% I* v' z9 T
di "cannot find maxp"' S8 Q% i4 O1 G2 m
# A# e& \. e+ e8 T7 k, {2 \6 J D
/ C$ B p- P4 V5 ~! |
sum dx240/ A: p: l/ h( J" q9 b
local tempmaxp=r(mean)
2 r' s" F& Z9 N8 S5 U K
. h9 P3 w3 Q8 m2 P( w5 p' `0 E }; p5 ?1 ]- ] ?5 Z# y% D8 v T
4 b( M: i4 b; t t
}
3 @4 j0 |9 q* J% O) ~( T: V : E; Z9 D4 ?- @) c$ ^
else {
8 _1 w9 i7 z3 \" Y
7 `& K9 _5 I! o' k# k7 @/ S keep if ddy240>=r(max)
- G- Z& Z% H, V) O/ R , Q. C* p* m. ~4 C) O8 O% a
sum dx240) @: y, S" x1 A: d% {! h( s
- r! t" w( H# M$ W$ r local tempmaxp=r(max) ( p* Q L3 f9 }/ F/ M9 @* b3 W
restore
% T& j- n! t" l. g5 A }' K5 W |. c% c2 y8 c& C7 |7 g6 P& \
8 c% G0 N. w! b7 h$ {9 b0 _9 }% L* ]* f" D
, O& _3 x* i! X* x1 k2 X
, z6 H% b# j; C7 W* Z5 t9 e
2 D4 a" l4 p# p( y gen maxp=`tempmaxp' in 19 t# l& u( e. c
! W- v6 B: n# B; m* z
*240maxp
4 ?) p9 _: ]! k8 Z ' w' ]9 `3 t$ D/ X$ d/ m. i! S
2 T7 w6 P9 G8 J6 I *-------------ddy240pminp左侧高峰值-----7 V% l1 {$ |5 f m. K2 \, L/ B
" c- l' C; x* a* ~; t, u8 J/ m3 E9 a) o
preserve
% B* O( D( a6 a$ N0 m' @ 8 I* m1 V& A5 R0 g0 M9 G1 B- V# j
keep if dx240<`tempminp'
8 a/ k* F" A6 J" ~3 o
8 S0 V2 G6 t E, \, T2 i keep if ddy240>0
1 T' ?& H1 S: e8 V* `
4 ]) x6 l- P& ^$ E) k, i6 p' {" O count
/ {! a& R+ `1 Z4 P$ K 1 R6 Y" u7 k) M( ?# z# u! g7 S
if r(N)>2 {' D3 |" m1 S6 O9 i: `4 O+ R* H
8 f8 B5 W( H3 j6 w& y; W3 a% E1 ` pkexamine dx240 ddy240! V' T5 |0 D8 l1 Y8 A
% e! S7 N7 a- L# y7 { local tempminphddy240=r(tomc) 7 O- B2 o* u# n% P2 T. b) ]% _
restore& d" u8 V8 e3 L3 T# V0 t
}( F; Y# H/ e8 X9 M7 M% x E: _9 f
5 k, ~3 {, x& `5 p/ Y4 I$ ] else {
* t* { D( U5 H) q' Q, h restore 1 x# Q2 U0 u2 N" X
di "cannot find pminphddy240"# `; m" s# x5 H2 S ^1 @
- c4 T4 h/ Q1 I% A* A) l: Y+ j
8 }, I8 ^1 x g0 t7 a
sum dx240. Q6 h2 R5 k6 s; w/ U
local tempminphddy240=r(mean)
[9 m2 I- @- s/ X- @. F5 r& n0 L7 E 3 r" Y; m8 m; t# B
2 K) O1 `$ E5 _2 Q# D
}
5 @9 ?' b- q- e9 c8 Q4 u
) \* \7 k) s8 K- }( P- d8 {
^& L* o& _6 y0 K0 A1 P/ [ * x9 J! P% k6 G# F1 P
{ R5 t! @4 K* v% n6 c
/ t/ ^1 [# g8 H+ O" h
) q f% E2 j& L0 @ gen pminphddy240=`tempminphddy240' in 1
( D- {4 U2 u$ I$ w* r# D9 a* L# l) H / {. M3 c- c+ N) c" i2 G
) }9 b6 h; W' L% K2 C) ?" m *-------------ddy240pminp右侧低峰值 ----------------- e1 D, \* @. ~) J' S* m
preserve
8 Q# j# V& E/ @% U% _* ~ - g. t C' l" `$ Q
keep if dx240>`tempminp'& S) E( O" J: t6 u+ m
) b. b, z$ i A. F% O* d9 I4 I
keep if dx240<`tempmaxp'! T6 D; ` G" Q$ Z
0 y5 r3 a# J! C! Y2 c$ I' y; G
keep if ddy240<07 T) g! u* O( E: V! _: d
5 L+ s8 F6 p# G. N' O( {
gen temddy240=-ddy240+ e) {/ S$ `5 C. u. u! q. c" l/ {
* m. b/ T: J9 O5 a9 D count5 L7 h% p! m- D) b# m9 t
7 j. M, ?1 K- b7 T1 O if r(N)>2 {1 [6 S3 c4 A) |5 a0 D0 @
4 r$ P6 j: q) w2 z$ N3 i' w pkexamine dx240 temddy2404 e( n0 i2 M* F! R0 [6 `$ P) w
; D5 [* B0 _: W L2 ~; G. Y
local tempminplddy240=r(tomc)) P' R$ U" x, h% e% h
restore7 F. d/ v& v. ?6 z6 H
}9 C' |$ S% f/ g# u3 } B
( c6 }& R4 l. s/ C
else {
3 {) T; T& y4 [ 5 p5 V0 }1 f2 ^" e3 y) w. m1 A
di "cannot find pminplddy240"; V; W0 H# d; E( W5 H4 s# K
restore
8 q2 i0 D5 H! w6 B7 v) Z & I8 f( z5 f2 U [
sum dx240 P& P: @/ m7 B' m) q
local tempminplddy240=r(mean)
: A" ?, k! p+ Y" g5 L$ I# i5 v 7 d( o: W0 S& R- K/ J7 {4 a
+ ]9 Q- O$ y! S' I0 H( ~/ ` }4 r" }8 q. T2 e' L
) h7 j+ c& c% |/ M% P
- Y2 i: u9 @2 y/ y2 [8 Z
% W* a( ]7 Y: t+ h2 N - ~8 _" @1 a) f+ N
% I6 V, {5 l) f. p( i gen pminplddy240=`tempminplddy240' in 16 _& E% s8 q( h: r4 `' i6 ~& ]
5 d$ T4 @, p1 Q, L7 J *-------------ddy240pmaxp左侧高峰值 -------------------
9 M) q' q2 O! G) I0 u; j
5 ~6 [, m0 |1 t, ]: x preserve
8 D2 ?! e \7 C1 z& O4 \+ G5 ? 9 v$ V2 Y3 h. ~' s
keep if dx240>`tempminp') \. | S& {$ S& x* K( O$ h6 F
/ _; r' U* }, }. a) Z
keep if dx240<`tempmaxp'
+ ]! B6 ~& [& _5 S. T9 P. n
& r% T' U- T& O% W. J keep if ddy240>0 Z& w2 s; _* E6 q- v; x! [
count
; {# L6 L; q2 t9 p1 `9 }2 H9 s . c0 _) {- A( e! \( r# ^
if r(N)>2 {5 m0 B3 w7 q6 u
% d2 }) y, I2 e& q1 f0 Q pkexamine dx240 ddy240) s% K% i* @* R! F: C
- V4 L' u! u9 K7 h* v1 M# @9 h% x local tempmaxphddy240=r(tomc)
# B. u% W2 ~4 P: ?# [
3 R1 O8 [; q( }9 ]# ?, M. T restore' n1 ~/ N" ~# i+ v7 }$ P+ R N
}* J3 l( r+ D, T2 ~* |* L
) U. y* b3 h) f8 ~9 \ else {/ Z& N2 J: Z5 q3 A' q. q* C4 Y& F7 `
# f; V, w( Y- s di "cannot find pmaxphddy240"
) p2 q5 \5 `8 q8 G+ _ restore; J* ?2 B9 d+ t3 G2 Y- U$ t1 W
# M5 A! C" X" ?* t/ M# r
sum dx2406 r. e8 a7 O% `4 _' W% z
local tempmaxphddy240=r(mean) " S0 K9 W- A- z0 q
* C- w5 G% R6 U j. f
& D2 K& P+ v3 M1 |# a }1 c/ j' N( y) L7 Q$ t
* t2 e+ n% k3 Q; S! r
+ B' D# P7 I3 z0 M6 I: }$ p, l
5 W+ l* j# ]+ y. S) Q3 a : ?: e& \; W0 C3 f3 X' i6 y
0 |6 O; ]$ I$ A+ u 5 I# O) l/ l% U0 D
gen pmaxphddy240=`tempmaxphddy240' in 1
! I6 w) N( Y6 |& K( @
# }1 t% Y) j$ e - P7 P$ w( x2 W/ C; ^
*-------------ddy240pmaxp右侧低峰值 -------------------. c7 M% U8 }* Z7 R6 Y" _& \. A
& k) X9 |% {* a* ?. N
preserve
5 J, Z# i; g3 R6 j. A0 v5 p * |. T; F1 _$ x
keep if dx240>`tempmaxp'! t2 [" S8 b8 C1 s
$ @/ H1 v- [2 U9 x) A, x
gen temddy240=-ddy2400 K h3 E7 D( M9 I5 m- c' b8 B5 p( @
6 t9 M7 l X2 p* S6 y$ F* l keep if temddy240>0
$ ~6 ?$ `' q, Y
9 Q5 A; u8 _% ^9 f) @ count2 F# t) @2 v/ |( R( K
" C! V) i& y9 H: r* i" Y& A2 {
if r(N)>2 {+ n# I8 J5 _6 z" [% g" q
! h" e$ A4 u& m R2 f pkexamine dx240 temddy240
% E' W$ A3 v8 U. `! G1 O3 o6 V
. Q/ T+ C5 b/ v# U- K: t$ } local tempmaxplddy240=r(tomc)
0 J, C! q4 Y7 O4 J: J restore. D) {# v0 o! k; K4 d
}, T9 @& X) w6 ~; S/ l
* M i; V* S { else {% D, G% u6 T r: D& P% I) m! [3 u
restore
) k& U% T' J1 O3 C4 g/ j/ e di "cannot find pmaxlhddy240"
* O, r1 q B: z; y . c" L2 ~# b5 d
8 O9 R/ ]7 k% y+ ] sum dx240. g. k( Y$ W u2 ^! N" ~2 }
local tempmaxplddy240=r(mean) in 1. f- t) i% B+ B3 S
3 T; Q' K: M3 u, P' L
/ @. |! k7 o5 ? T+ P# a9 k8 ^
}
: s9 D: h) [8 ?) f/ e
9 T, |$ O3 R8 g$ y 9 J* C5 }8 ?8 G
9 @4 k4 T, |7 r" p! _- Q E
1 {# Q1 m( v- e" N$ A
9 v, O3 ? k! R' Y9 n& o
6 C9 r& I; C. E0 W gen pmaxplddy240=`tempmaxphddy240' in 1# M: y8 W- j' X4 n
6 A+ R3 L/ } F3 T1 ` *-------------------------------------
) H1 b/ a* a7 j' {& L; U! r0 U1 y + s2 l) ~1 q" P( O& f
gen price5d=v5 in 1/20$ i( Z- V& s3 t% U/ M
' K: N7 L9 v, M5 a# w- i2 z+ W/ @
gen price5yy=_n in 1/20$ m, ^$ y3 z) K$ ]' V$ H8 Q. K
) Z* F$ T4 {7 k! ` gen price5y=price5yy*(dy240max-dy240min)/20* ], p' A$ E8 r, T
& w# |$ ~8 c3 p& U8 H, p
*price5y &price5d
! ?. a! L, ~! T8 j # `! s- [0 Z4 S) w/ e
gen priceny=price5y in 1$ `7 `! L) I* Y/ Y
0 b) L% |# M7 g0 }
gen pricen=v5 in 1/ Y9 v7 Y4 Y/ v9 ~
6 w N4 |3 S1 _2 _. X
2 K) v5 {3 H& r, ?& ^& A *priceny &pricen) \9 }# ~' D% h i0 O# Z# e3 I- a
4 f2 I+ W+ z, S$ o+ l
% G: w6 N3 {3 B) @ *-------------------------graph------------------
( U2 r$ f& p* { ' H y, H* a1 {/ j
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): ^: a4 f, g6 G3 l2 t2 Q/ n
- L- o& E- g* Z5 J
* ---------可选项目----------------------
9 X7 O0 H& R7 J*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))3 K$ z, r4 c: c9 n. g9 F: x
}
2 b; m" j4 N2 M+ h( uend
: f$ i% m/ t3 K, @1 Q9 C |
|